using HKCardManager.UserPages; using HKLib.Dto; using HKLib.Interfaces; using HKLib.SQLHelper; using System.Text.RegularExpressions; using HKHelper; using UHFHelper; namespace HKCardManager { public partial class Form1 : Form { public Form1() { InitializeComponent(); DbContext.InitTable(); splitContainer1.SplitterDistance = 240; DataGridViewInit(); ShowPage(new PersonnelEntryPage()); Task.Factory.StartNew(() => { var res = UHFCardHelper.GetInstance().OpenPort(); if (res != null && res.Res) MessageLogNotify.GetInstance.Show("制卡设备已连接!"); else MessageLogNotify.GetInstance.ShowError($"制卡设备未连接!"); }); this.SizeChanged += Form1_SizeChanged; this.button1.SizeChanged += Button1_SizeChanged; this.splitContainer2.SplitterMoved += SplitContainer1_SizeChanged; MessageLogNotify.GetInstance.Info = new Action((s, br) => { this.Invoke(() => { dataGridView1.Rows.Insert(0, new string[] { "", $"{DateTime.Now.ToString("HH:mm:ss")} {s}" }); dataGridView1.Rows[0].DefaultCellStyle.ForeColor = br; dataGridView1.Rows[0].DefaultCellStyle.Padding = new Padding(0, 0, 0, 10); }); }); } private void SplitContainer1_SizeChanged(object? sender, EventArgs e) { if (tempUserControl != null) { tempUserControl.Width = this.panel1.Width; tempUserControl.Height = this.panel1.Height; } } private void DataGridViewInit() { dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; dataGridView1.AutoGenerateColumns = false;//禁止自动添加列 dataGridView1.AllowUserToResizeColumns = false;//是否可以调整列的大小 dataGridView1.AllowUserToResizeRows = false;//是否可以调整行的大小 dataGridView1.BorderStyle = BorderStyle.None;//DataGridView边框样式 dataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None; dataGridView1.SelectionChanged += DataGridView1_SelectionChanged; } private void DataGridView1_SelectionChanged(object? sender, EventArgs e) { dataGridView1.ClearSelection();//禁止选择行 } private void Write(string msg) { //bool条件默认为配置文件里面定义,可以自定义任何保存数据条件 //bool temp = Convert.ToBoolean(iniFile.IniReadValue("设置", "保存运行信息", AppDomain.CurrentDomain.BaseDirectory + "设置.ini")); //if (temp) //{ // string logPath = Path.GetDirectoryName(Application.ExecutablePath); // // System.IO.StreamWriter sw = System.IO.File.AppendText(logPath + "/" + DateTime.Now.ToString("yyMMdd") + ".txt"); // System.IO.StreamWriter sw = System.IO.File.AppendText(logPath + "\\log\\" + DateTime.Now.ToString("yyMMdd") + ".txt"); // sw.WriteLine(DateTime.Now.ToString("HH:mm:ss ") + msg); // sw.Close(); // sw.Dispose(); //} } private void AddListToListBox(ListBox rtbox, string text, Brush foreColor, bool addTime = true) { rtbox.DrawMode = DrawMode.OwnerDrawVariable; rtbox.Font = new Font("楷体", 12); if (rtbox.ItemHeight != 24) { rtbox.ItemHeight = 1; rtbox.DrawItem += ((sender, e) => //控件重绘事件 { if (e.Index == -1) return; e.DrawBackground(); ListBoxItem item = (ListBoxItem)rtbox.Items[e.Index]; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { e.DrawFocusRectangle(); Brush b = Brushes.Khaki;//设置选中项颜色 e.Graphics.FillRectangle(b, e.Bounds); } if (item != null) { Brush brush = item.ForeColor; Rectangle r = e.Bounds; r.Height = e.Bounds.Height; r.Width = e.Bounds.Width + 100; e.Graphics.DrawString(item.Text, e.Font, brush, r, StringFormat.GenericDefault); } else { e.Graphics.DrawString(item.Text, e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault); } }); } rtbox.ItemHeight = 25;//设置单行高度 if (rtbox.InvokeRequired) { rtbox.Invoke(new Action((rtb, str, color, addtime) => AddListToListBox(rtb, str, color, addtime)), rtbox, text, foreColor, addTime); return; } //text = string.Format("{0}-{1}", rtbox.Items.Count.ToString("000"), text); if (addTime) { //text = string.Format("[{0}]:{1}", DateTime.Now.ToString("HH:mm:ss"), text); text = $"{DateTime.Now.ToString("HH:mm:ss")}:{text}"; } if (rtbox.Items.Count > 0) rtbox.Items.Insert(0, new ListBoxItem(text, foreColor)); else rtbox.Items.Add(new ListBoxItem(text, foreColor)); try { Write(text); } catch { } //清除过多的数据 if (rtbox.Items.Count > 100) { int count = rtbox.Items.Count - 100; List temp = new List(); for (int i = 100; i < rtbox.Items.Count; i++) { if (rtbox.Items.Count >= i - 1) temp.Add(rtbox.Items[i]); } foreach (object obj in temp) { rtbox.Items.Remove(obj); } } //rtbox.SelectedIndex = rtbox.Items.Count - 1; //if (rtbox.Items.Count > 100) //{ // int count = rtbox.Items.Count - 100; // List temp = new List(); // for (int i = 0; i < count; i++) // { // temp.Add(rtbox.Items[i]); // } // foreach (object obj in temp) // { // rtbox.Items.Remove(obj); // } //} //rtbox.SelectedIndex = rtbox.Items.Count - 1; } private void Button1_SizeChanged(object? sender, EventArgs e) { groupBox1.Width = button1.Width; groupBox2.Width = button1.Width; groupBox3.Width = button1.Width; groupBox4.Width = button1.Width; button2.Left = 10; button2.Width = (groupBox1.Width - 20); button3.Left = 10; button3.Width = (groupBox1.Width - 20); button4.Left = 10; button4.Width = (groupBox2.Width - 20); button5.Left = 10; button5.Width = (groupBox2.Width - 20); button6.Left = 10; button6.Width = (groupBox2.Width - 20); button7.Left = 10; button7.Width = (groupBox2.Width - 20); button9.Left = 10; button9.Width = (groupBox3.Width - 20); button10.Left = 10; button10.Width = (groupBox3.Width - 20); button11.Left = 10; button11.Width = (groupBox3.Width - 20); button12.Left = 10; button12.Width = (groupBox4.Width - 20); } UserControl tempUserControl; private void Form1_SizeChanged(object? sender, EventArgs e) { if (tempUserControl != null) { tempUserControl.Width = this.panel1.Width; tempUserControl.Height = this.panel1.Height; } splitContainer1.SplitterDistance = 240; if (this.WindowState == FormWindowState.Maximized || this.WindowState == FormWindowState.Normal) { Task.Factory.StartNew(() => { Thread.Sleep(100); this.Invoke(() => { if (tempUserControl != null) { tempUserControl.Width = this.panel1.Width; tempUserControl.Height = this.panel1.Height; } splitContainer1.SplitterDistance = 240; }); }); } } //人员录入 private void button2_Click(object sender, EventArgs e) { ShowPage(new PersonnelEntryPage()); } //机构录入 private void button3_Click(object sender, EventArgs e) { ShowPage(new InstitutionalEntryPage()); } //发卡 private void button5_Click(object sender, EventArgs e) { ShowPage(new CarMangerPage()); } //销户,挂失,解挂 private void button4_Click(object sender, EventArgs e) { ShowPage(new CancellationPage(), ((Button)sender)?.Tag.ToString()); } //月餐段汇总表 private void button11_Click(object sender, EventArgs e) { ShowPage(new ReportFormPage(), ((Button)sender)?.Tag.ToString()); } //餐段设置 private void button12_Click(object sender, EventArgs e) { ShowPage(new MealSegmentSetPage()); } private void ShowPage(UserControl userControl, string? name = "") { panel1.Controls.Clear(); userControl.Width = panel1.Width; userControl.Height = panel1.Height; tempUserControl = userControl; userControl.Tag = name; userControl.Show(); panel1.Controls.Add(userControl); } private void button8_Click(object sender, EventArgs e) { ShowPage(new AdvertisingSetPage()); } private async void button13_Click(object sender, EventArgs e) { if (UHFCardHelper.GetInstance().ComOpen) { try { var res = UHFCardHelper.GetInstance().ReadCard(); if (string.IsNullOrEmpty(res)) { MessageBox.Show("提示!!!\n 请放入卡片,在选择销卡..."); MessageLogNotify.GetInstance.Show("请放入卡片"); return; } if (res.Equals("666") || res.Equals("888") || res.Equals("999")) { MessageBox.Show("超级卡不能被注销"); return; } var result = await HKLibHelper.GetUserList(""); UserListDto users = null; result.ForEach(item => { if (item.Cards.FirstOrDefault(t => t.CardNum.Equals(res)) != null) { users = item; return; } }); if (users != null) { await HKLibHelper.CardStutasChange(new CardStutasDto() { keywrod = users.Name, Stutas = 3, }); } var resz = MessageBox.Show($"提示!!!\n 当前卡号{res},确定销卡?", "提示", MessageBoxButtons.YesNo); if (resz == DialogResult.Yes) { var res1 = UHFCardHelper.GetInstance().WriteCard("000"); MessageBox.Show(res1.Res ? "000为默认新卡卡号,销卡成功" : "销卡失败"); } } catch (Exception) { MessageBox.Show("销卡成功"); } } else { MessageBox.Show("提示!!!\n 设备未连接..."); MessageLogNotify.GetInstance.ShowWarning("设备未连接"); } } } }