using JJMediSys.cs; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; using static JJMediSys.AlertForm; namespace JJMediSys { public partial class STATSRules : Form { [DllImport("user32.dll")]//*********************拖动无窗体的控件 public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; public STATSRules() { InitializeComponent(); } public struct Rule { public string Type { get; set; } //类型XM项目 SG试管 public string Name { get; set; } public string Details { get; set; } public string SendKS { get; set; } public List DetailItem { get; set; } public string INUSE { get; set; } //1启用 } public List rules; private void STATSRules_Load(object sender, EventArgs e) { int x = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2; int y = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2; this.Location = new Point(x, y); BDel.Visible = false; RadXM.Checked = true; RadJYK.Checked = true; listView1.Columns.Add("规则类型", 100); listView1.Columns.Add("规则名称", 100); listView1.Columns.Add("规则明细", 300); listView1.Columns.Add("送检科室", 100); listView1.Columns.Add("启用标志", 100); rules = LoadRule(); foreach (Rule rule in rules) { listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"), rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") })); } } public static List LoadRule() { List rules = new List(); string Rulestr = ConfigFileReader.GetValue("/configuration/appSettings/add[@key='STATSRules']"); string[] Rules = Rulestr.Split('|'); foreach (string temp in Rules) { if(temp!="") { string[] Details = temp.Split('^'); if(Details.Length==5) { Rule rule = new Rule(); rule.Type = Details[0]; rule.Name = Details[1]; rule.Details = Details[2]; rule.SendKS = Details[3]; rule.INUSE = Details[4]; rule.DetailItem = Details[2].Split(';').ToList().Where(item => !string.IsNullOrWhiteSpace(item)).ToList(); rules.Add(rule); } } } return rules; } private void STATSRules_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) { BDel.Visible = true; string Type = this.listView1.SelectedItems[0].SubItems[0].Text; if(Type.Equals("项目")) { RadXM.Checked = true; } else { RadSG.Checked = true; } RuleName.Text = this.listView1.SelectedItems[0].SubItems[1].Text; RuleDetail.Text = this.listView1.SelectedItems[0].SubItems[2].Text; string SendKS = this.listView1.SelectedItems[0].SubItems[3].Text; if (SendKS.Equals("检验科")) { RadJYK.Checked = true; } else { RadQT.Checked = true; } if (this.listView1.SelectedItems[0].SubItems[4].Text.Equals("启用")) { InUse.Checked = true; } else { InUse.Checked = false; } } else { BDel.Visible = false; } } private void BDel_Click(object sender, EventArgs e) { string TagRuleName = RuleName.Text;//this.listView1.SelectedItems[0].SubItems[0].Text; bool isfinded = false; foreach (Rule rule in rules) { if(rule.Name.Equals(TagRuleName)) { rules.Remove(rule); isfinded = true; break; } } if(isfinded) { MessageBox.Show("没有找到原始规则"); return; } string Rulestr = ""; listView1.Items.Clear(); foreach (Rule rule in rules) { listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"),rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") })); Rulestr = Rulestr + rule.Type + "^" + rule.Name + "^" + rule.Details + "^" + rule.SendKS + "^" + rule.INUSE + "|"; } ConfigFileReader.SetValue("/configuration/appSettings/add[@key='STATSRules']", Rulestr); AlertForm.ShowAlert("删除成功", AlertType.Success, 3); } private void BSave_Click(object sender, EventArgs e) { if(RuleName.Text==""|| RuleDetail.Text=="") { MessageBox.Show("请先设置规则参数"); return; } foreach (Rule rule in rules) { if (rule.Name.Equals(RuleName.Text)) { rules.Remove(rule); break; } } Rule rule1 = new Rule(); if(RadXM.Checked) { rule1.Type = "XM"; } else { rule1.Type = "SG"; } if (RadJYK.Checked) { rule1.SendKS = "检验科"; } else { rule1.SendKS = "其他"; } rule1.Name = RuleName.Text; rule1.Details = RuleDetail.Text; rule1.INUSE = InUse.Checked?"1":"0"; rules.Add(rule1); string Rulestr = ""; listView1.Items.Clear(); foreach (Rule rule in rules) { listView1.Items.Add(new ListViewItem(new string[] { (rule.Type == "XM" ? "项目" : "试管"),rule.Name, rule.Details,rule.SendKS, (rule.INUSE == "1" ? "启用" : "未启用") })); Rulestr = Rulestr + rule.Type+"^"+rule.Name + "^" + rule.Details + "^" + rule.SendKS + "^" + rule.INUSE + "|"; } ConfigFileReader.SetValue("/configuration/appSettings/add[@key='STATSRules']", Rulestr); AlertForm.ShowAlert("保存成功", AlertType.Success, 3); } } }