public int num = 0; /// <summary> /// 关闭背光 /// </summary> public void CloseOtherBackLight() { string path = GFun.GetDataDir() + "CloseOtherBackLight.xml"; bool isok = true; if (File.Exists(path)) isok = true; else isok = false; if (num == 0) { isok = false; } if (isok == false) { FHost.CloseBackLight(0xFF, false); XmlDocument CloseBackLight = new XmlDocument(); XmlNode node = CloseBackLight.CreateElement("CloseOtherBackLight"); CloseBackLight.AppendChild(node); List<int> other = new List<int>(); string cmdStr = "Select EtnCode from Patient"; using (SqlCeCommand cmd = new SqlCeCommand(cmdStr, DbOprt.Conn)) { using (SqlCeDataReader dr = cmd.ExecuteReader()) { string txt = string.Empty; while (dr.Read()) { string BedNo = Convert.ToString(dr["EtnCode"]); try { other.Add(Convert.ToInt16(BedNo)); } catch (System.Exception ex) { Excp.WriteExcp(ex); } } } } for (int i = 0; i < other.Count; i++) { XmlNode bedno = CloseBackLight.CreateNode(XmlNodeType.Element, "BedNo", null); bedno.InnerText = other[i].ToString(); node.AppendChild(bedno); } CloseBackLight.Save(path); foreach (int item in other) { FHost.OpenBackLight((short)item); } } else { XmlDocument BedNo = new XmlDocument(); BedNo.Load(path); XmlNode root = BedNo.DocumentElement; List<int> XMLBedNo = new List<int>(); foreach (XmlNode xmlNode in root.ChildNodes) { XMLBedNo.Add(Convert.ToInt16(xmlNode.InnerText)); } List<int> SQLBedNo = new List<int>(); string cmdStr = "Select EtnCode from Patient"; using (SqlCeCommand cmd = new SqlCeCommand(cmdStr, DbOprt.Conn)) { using (SqlCeDataReader dr = cmd.ExecuteReader()) { string txt = string.Empty; while (dr.Read()) { string BedID = Convert.ToString(dr["EtnCode"]); try { SQLBedNo.Add(Convert.ToInt16(BedID)); } catch (System.Exception ex) { Excp.WriteExcp(ex); } } } } List<int> Open = new List<int>(); List<int> Close = new List<int>(); for (int i = 0; i < XMLBedNo.Count; i++) { if (!SQLBedNo.Contains(XMLBedNo[i])) { Close.Add(XMLBedNo[i]); } } for (int i = 0; i < SQLBedNo.Count; i++) { if (!XMLBedNo.Contains(SQLBedNo[i])) { Open.Add(SQLBedNo[i]); } } foreach (var item in Open) { FHost.OpenBackLight((short)item); } foreach (var item in Close) { FHost.CloseBackLight((short)item, false); } File.Delete(path); XmlDocument CloseBackLight = new XmlDocument(); XmlNode node = CloseBackLight.CreateElement("CloseOtherBackLight"); CloseBackLight.AppendChild(node); for (int i = 0; i < SQLBedNo.Count; i++) { XmlNode bedno = CloseBackLight.CreateNode(XmlNodeType.Element, "BedNo", null); bedno.InnerText = SQLBedNo[i].ToString(); node.AppendChild(bedno); } CloseBackLight.Save(path); } num++; }