using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using HslCommunication.LogNet; using MainForm.ClassFile; using MainForm.ClassFile.ProjectClass; using Newtonsoft.Json; namespace MainForm { public delegate void AlarmMessageHandler(LogType logType, string message); public partial class Form_Alarm : Form { #region 变量 // public event AlarmMessageHandler MessageEvent; // public static DataTable dt = new DataTable(); public static DataSet sourceData = null; /// /// 查询条件 /// private string StartDate = string.Empty; private string EndDate = string.Empty; private string DataBaseName = string.Empty; private string TableName = string.Empty; private string Item = string.Empty; private string EquipmentCode = string.Empty; private string SendStatus = string.Empty; private string QuerySQL = string.Empty; // 数据库连接字符串 private string ConnString = string.Empty; // 页面dv控件样式 bool ViewFirstColumn = false; int ColumnWidth0 = 120; int ColumnWidth1 = 120; int ColumnWidth2 = 120; int ColumnWidth3 = 120; int ColumnWidth4 = 120; int ColumnWidth5 = 120; // private Dictionary DicProcess = new Dictionary(); private Dictionary DicCheckOne = new Dictionary(); private Dictionary DicAlarm = new Dictionary(); ILogNet logNet = new LogNetDateTime(GlobalContext.WorkLogDir, GenerateMode.ByEveryDay); #endregion 变量 public Form_Alarm() { InitializeComponent(); dateTimePicker1.Value = DateTime.Now.AddDays(-1); dateTimePicker2.Value = DateTime.Now; //增加label到字典 DicProcess.Add("装胶圈", new LabelTextBox { LabelObj = label1, TextBoxObj = total1 }); DicProcess.Add("电性能测试", new LabelTextBox { LabelObj = label2, TextBoxObj = total2 }); DicProcess.Add("导通性测试", new LabelTextBox { LabelObj = label3, TextBoxObj = total3 }); DicProcess.Add("气密测试", new LabelTextBox { LabelObj = label4, TextBoxObj = total4 }); DicProcess.Add("激光标记", new LabelTextBox { LabelObj = label5, TextBoxObj = total5 }); DicProcess.Add("CCD检测", new LabelTextBox { LabelObj = label6, TextBoxObj = total6 }); //DicProcess.Add("", new LabelTextBox { LabelObj = label7, TextBoxObj = total7 }); //DicProcess.Add("装胶圈", new LabelTextBox { LabelObj = label8, TextBoxObj = total8 }); //DicProcess.Add("装绝缘体", new LabelTextBox { LabelObj = label9, TextBoxObj = total9 }); //DicProcess.Add("CCD检测", new LabelTextBox { LabelObj = label10, TextBoxObj = total10 }); //DicProcess.Add("电性能测试", new LabelTextBox { LabelObj = label11, TextBoxObj = total11 }); //DicProcess.Add("激光标记", new LabelTextBox { LabelObj = label12, TextBoxObj = total12 }); //增加label到字典 DicCheckOne.Add("装胶圈", new LabelTextBox { LabelObj = label1, TextBoxObj = total1 }); DicCheckOne.Add("电性能测试", new LabelTextBox { LabelObj = label2, TextBoxObj = total2 }); DicCheckOne.Add("导通性测试", new LabelTextBox { LabelObj = label3, TextBoxObj = total3 }); DicCheckOne.Add("气密测试", new LabelTextBox { LabelObj = label4, TextBoxObj = total4 }); //DicCheckOne.Add("激光标记", new LabelTextBox { LabelObj = label5, TextBoxObj = total5 }); DicCheckOne.Add("CCD检测", new LabelTextBox { LabelObj = label6, TextBoxObj = total6 }); //DicCheckOne.Add("", new LabelTextBox { LabelObj = label7, TextBoxObj = total7 }); //增加label到字典 DicAlarm.Add(GlobalContext.LineCode, new LabelTextBox { LabelObj = label1, TextBoxObj = total1 }); InitDBName(); if (dataBaseName.Items.Count > 0) { dataBaseName.SelectedIndex = dataBaseName.Items.Count - 1; } dataTableName.SelectedIndex = 0; equipment.SelectedIndex = 0; station.SelectedIndex = 0; comboBoxSendStatus.SelectedIndex = 0; ResetTotal(); //设置变量的初始值 StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd"); EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd"); TableName = "ProcessData"; EquipmentCode = equipment.Text; SendStatus = comboBoxSendStatus.Text; Item = station.Text; ResetTotal(); } private void Form_Alarm_Load(object sender, EventArgs e) { } public void InitDBName() { dataBaseName.Items.Clear(); foreach (string dirName in GetDirName()) { dataBaseName.Items.Add("DB" + dirName); } if (dataBaseName.Items.Count > 0) { dataBaseName.SelectedIndex = dataBaseName.Items.Count - 1; UpdateConnString(); } } private void UpdateConnString() { DataBaseName = dataBaseName.Items[dataBaseName.SelectedIndex].ToString(); ConnString = @"server= " + GlobalContext.Server + ";database= " + DataBaseName + ";uid=" + GlobalContext.User + ";pwd=" + GlobalContext.PassWord; } /// /// 查询按钮 /// private void BeginQuery_Click(object sender, EventArgs e) { try { ResetTotal(); string ziduan = string.Empty; DataSet ds = new DataSet(); DataTable dtTemp; switch (TableName) { case "ProcessData": ProcessData processData = new ProcessData(); processData.Equipment_code = EquipmentCode; processData.Testitem = Item; QuerySQL = processData.ToStringQuery(StartDate, EndDate, SendStatus); ziduan = "测试项目"; ds = SQLHelper.Query(QuerySQL, null, ConnString); dtTemp = new DataTable(); //新定义一个table foreach (DataColumn dc in ds.Tables["ds"].Columns) { //if (dc.ColumnName != "加工数据") //{ // DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType); // dtTemp.Columns.Add(dataColumn); //} //else //{ // DataColumn dataColumn; // dataColumn = new DataColumn("加工数据", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("参数名称", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("参数值", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("参数单位", typeof(string)); // dtTemp.Columns.Add(dataColumn); // if (ds.Tables["ds"].Rows.Count > 0) // { // var data = ds.Tables["ds"].Rows[0]["加工数据"]; // List dataObj = JsonConvert.DeserializeObject>(data.ToString()); // if (dataObj != null) // { // for (int i = 0; i < dataObj.Count; i++) // { // dataColumn = new DataColumn(dataObj[i].Parameter_name, typeof(string)); // dtTemp.Columns.Add(dataColumn); // } // } // } //} DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType); dtTemp.Columns.Add(dataColumn); } //复制到新的table中 foreach (DataRow dr in ds.Tables["ds"].Rows) { List items = new List(); items = JsonConvert.DeserializeObject>(dr["加工数据"].ToString()); if (items == null) { DataRow dataRow = dtTemp.NewRow(); dataRow["主键"] = dr["主键"]; dataRow["设备编号"] = dr["设备编号"]; dataRow["测试项目"] = dr["测试项目"]; dataRow["车间订单号"] = dr["车间订单号"]; dataRow["产品型号"] = dr["产品型号"]; dataRow["产品序列号"] = dr["产品序列号"]; dataRow["MES接口数据"] = dr["MES接口数据"]; dataRow["Iot接口数据"] = dr["Iot接口数据"]; dataRow["员工ID"] = dr["员工ID"]; dataRow["测试时间"] = dr["测试时间"]; dataRow["MES上传状态"] = dr["MES上传状态"]; dataRow["Iot上传状态"] = dr["Iot上传状态"]; dataRow["加工数据"] = dr["加工数据"]; //dataRow["参数名称"] = ""; //dataRow["参数值"] = ""; //dataRow["参数单位"] = ""; dtTemp.Rows.Add(dataRow); } else { DataRow dataRow = dtTemp.NewRow(); dataRow["主键"] = dr["主键"]; dataRow["设备编号"] = dr["设备编号"]; dataRow["车间订单号"] = dr["车间订单号"]; dataRow["批次号"] = dr["批次号"]; dataRow["产品序列号"] = dr["产品序列号"]; dataRow["测试项目"] = dr["测试项目"]; dataRow["员工ID"] = dr["员工ID"]; dataRow["测试时间"] = dr["测试时间"]; dataRow["上传状态"] = dr["上传状态"]; dataRow["加工数据"] = dr["加工数据"]; //dataRow["参数名称"] = t.Parameter_name; //dataRow["参数值"] = t.Parameter_value; //dataRow["参数单位"] = t.Parameter_unit; foreach (var t in items) { if (!dtTemp.Columns.Contains(t.Parameter_name)) { DataColumn dataColumn = new DataColumn(t.Parameter_name, typeof(string)); dtTemp.Columns.Add(dataColumn); } dataRow[t.Parameter_name] = t.Parameter_value + " " + t.Parameter_unit; } dtTemp.Rows.Add(dataRow); } } dataGridView.DataSource = dtTemp; dataGridView.Columns[0].Visible = ViewFirstColumn; dataGridView.Columns[6].Visible = ViewFirstColumn; break; case "OneCheckData": OneCheckData oneCheckData = new OneCheckData(); oneCheckData.Equipment_code = EquipmentCode; oneCheckData.Procedure_name = Item; QuerySQL = oneCheckData.ToStringQuery(StartDate, EndDate, SendStatus); ziduan = "工序名称"; ds = SQLHelper.Query(QuerySQL, null, ConnString); dtTemp = new DataTable(); //新定义一个table foreach (DataColumn dc in ds.Tables["ds"].Columns) { //if (dc.ColumnName != "点检数据") //{ // DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType); // dtTemp.Columns.Add(dataColumn); //} //else //{ // DataColumn dataColumn; // dataColumn = new DataColumn("点检数据", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("点检名称", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("点检内容", typeof(string)); // dtTemp.Columns.Add(dataColumn); // dataColumn = new DataColumn("点检结果", typeof(string)); // dtTemp.Columns.Add(dataColumn); //} DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType); dtTemp.Columns.Add(dataColumn); } //复制到新的table中 foreach (DataRow dr in ds.Tables["ds"].Rows) { List items = new List(); items = JsonConvert.DeserializeObject>(dr["点检数据"].ToString()); if (items == null) { DataRow dataRow = dtTemp.NewRow(); dataRow["主键"] = dr["主键"]; dataRow["产线编号"] = dr["产线编号"]; dataRow["产线名称"] = dr["产线名称"]; dataRow["设备编号"] = dr["设备编号"]; dataRow["设备名称"] = dr["设备名称"]; dataRow["车间订单号"] = dr["车间订单号"]; dataRow["工序编号"] = dr["工序编号"]; dataRow["工序名称"] = dr["工序名称"]; dataRow["员工ID"] = dr["员工ID"]; dataRow["员工姓名"] = dr["员工姓名"]; dataRow["点检时间"] = dr["点检时间"]; dataRow["上传状态"] = dr["上传状态"]; dataRow["点检数据"] = dr["点检数据"]; //dataRow["点检名称"] = ""; //dataRow["点检内容"] = ""; //dataRow["点检结果"] = ""; dtTemp.Rows.Add(dataRow); } else { DataRow dataRow = dtTemp.NewRow(); dataRow["主键"] = dr["主键"]; dataRow["产线编号"] = dr["产线编号"]; dataRow["产线名称"] = dr["产线名称"]; dataRow["设备编号"] = dr["设备编号"]; dataRow["设备名称"] = dr["设备名称"]; dataRow["车间订单号"] = dr["车间订单号"]; dataRow["工序编号"] = dr["工序编号"]; dataRow["工序名称"] = dr["工序名称"]; dataRow["员工ID"] = dr["员工ID"]; dataRow["员工姓名"] = dr["员工姓名"]; dataRow["点检时间"] = dr["点检时间"]; dataRow["上传状态"] = dr["上传状态"]; dataRow["点检数据"] = dr["点检数据"]; //dataRow["点检名称"] = t.Onecheck_name; //dataRow["点检内容"] = t.Onecheck_content; //dataRow["点检结果"] = t.Onecheck_result; foreach (var t in items) { if (!dtTemp.Columns.Contains(t.Onecheck_name)) { DataColumn dataColumn = new DataColumn(t.Onecheck_name, typeof(string)); dtTemp.Columns.Add(dataColumn); } dataRow[t.Onecheck_name] = t.Onecheck_result; } dtTemp.Rows.Add(dataRow); } } dataGridView.DataSource = dtTemp; dataGridView.Columns[0].Visible = ViewFirstColumn; dataGridView.Columns[8].Visible = ViewFirstColumn; break; //case "WorkingData": WorkingData workingData = new WorkingData(); workingData.Equipment_code = EquipmentCode; QuerySQL = workingData.ToStringQuery(StartDate, EndDate); ziduan = "设备编号"; ds = SQLHelper.Query(QuerySQL, null, ConnString); dataGridView.DataSource = ds.Tables["ds"]; dataGridView.Columns[0].Visible = ViewFirstColumn; break; case "LineWorkingData": LineWorkingData_ThisTime lineWorkingData = new LineWorkingData_ThisTime(); lineWorkingData.LineName = GlobalContext.LineCode; QuerySQL = lineWorkingData.ToStringQuery(StartDate, EndDate); ziduan = "线体名称"; ds = SQLHelper.Query(QuerySQL, null, ConnString); dataGridView.DataSource = ds.Tables["ds"]; dataGridView.Columns[0].Visible = ViewFirstColumn; break; case "AlarmData": AlarmData alarmData = new AlarmData(); //alarmData.LineName = GlobalContext.LineCode; QuerySQL = alarmData.ToStringQuery(StartDate, EndDate); ziduan = "报警类型"; ds = SQLHelper.Query(QuerySQL, null, ConnString); dataGridView.DataSource = ds.Tables["ds"]; dataGridView.Columns[0].Visible = ViewFirstColumn; break; default: break; } dataGridView.Columns[0].Width = ColumnWidth0; dataGridView.Columns[1].Width = ColumnWidth1; dataGridView.Columns[2].Width = ColumnWidth2; dataGridView.Columns[3].Width = ColumnWidth3; dataGridView.Columns[4].Width = ColumnWidth4; dataGridView.Columns[5].Width = ColumnWidth5; //统计 var queryResults = from p in ds.Tables[0].AsEnumerable() orderby p.Field(ziduan) descending group p by p.Field(ziduan) into g select new { Item = g.Key, Total = g.Count() }; var temp = queryResults.ToList(); //如果是单机和整线就不显示统计 switch (TableName) { case "ProcessData": foreach (var t in DicProcess) { t.Value.LabelObj.Visible = true; t.Value.LabelObj.Text = t.Key; t.Value.TextBoxObj.Visible = true; foreach (var item in temp) { string eCode = item.Item.Trim(); string total = item.Total.ToString(); if (eCode == t.Key) { t.Value.TextBoxObj.Text = total; } } } break; case "OneCheckData": foreach (var t in DicCheckOne) { t.Value.LabelObj.Visible = true; t.Value.LabelObj.Text = t.Key; t.Value.TextBoxObj.Visible = true; foreach (var item in temp) { string eCode = item.Item.Trim(); string total = item.Total.ToString(); if (eCode == t.Key) { t.Value.TextBoxObj.Text = total; } } } break; case "WorkingData": ResetTotal(); break; case "LineWorkingData": ResetTotal(); break; case "AlarmData": foreach (var t in DicAlarm) { t.Value.LabelObj.Visible = true; t.Value.LabelObj.Text = t.Key; t.Value.TextBoxObj.Visible = true; foreach (var item in temp) { string eCode = item.Item.Trim(); string total = item.Total.ToString(); if (eCode == t.Key) { t.Value.TextBoxObj.Text = total; } } } break; default: break; } } catch (Exception ex) { string str = ex.StackTrace; logNet.WriteError("软件发生致命异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message); MessageBox.Show(ex.Message.ToString()); } } /// /// 获取字典名称 /// /// public List GetDirName() { List dirNames = new List(); try { DirectoryInfo mainDir = new DirectoryInfo(SQLHelper.DBDir); DirectoryInfo[] dirs = mainDir.GetDirectories(); foreach (var dir in dirs) { dirNames.Add(dir.Name); } } catch (Exception ex) { string str = ex.StackTrace; logNet.WriteError("软件发生致命异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message); MessageBox.Show(ex.Message.ToString()); } return dirNames; } /// /// 统计初始化 /// private void ResetTotal() { total1.Text = "0"; total2.Text = "0"; total3.Text = "0"; total4.Text = "0"; total5.Text = "0"; total6.Text = "0"; total7.Text = "0"; total8.Text = "0"; total9.Text = "0"; total10.Text = "0"; total11.Text = "0"; total12.Text = "0"; total13.Text = "0"; total14.Text = "0"; total15.Text = "0"; total16.Text = "0"; total1.Visible = false; total2.Visible = false; total3.Visible = false; total4.Visible = false; total5.Visible = false; total6.Visible = false; total7.Visible = false; total8.Visible = false; total9.Visible = false; total10.Visible = false; total11.Visible = false; total12.Visible = false; total13.Visible = false; total14.Visible = false; total15.Visible = false; total16.Visible = false; label1.Visible = false; label2.Visible = false; label3.Visible = false; label4.Visible = false; label5.Visible = false; label6.Visible = false; label7.Visible = false; label8.Visible = false; label9.Visible = false; label10.Visible = false; label11.Visible = false; label12.Visible = false; label13.Visible = false; label14.Visible = false; label15.Visible = false; label16.Visible = false; } /// /// 编辑数据 /// private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { textBox1.Text = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } } /// /// 手动上传MES /// private void buttonSendMES_Click(object sender, EventArgs e) { Task.Run(SendProcess); } private void SendProcess() { try { List updatedIds = new List(); // 记录本次已上传的Id,防止重复上传 foreach (DataGridViewRow dataGridViewRow in dataGridView.Rows) { int upload = 0; string id = dataGridViewRow.Cells[0].Value.ToString().Trim(); if (!updatedIds.Contains(id)) { string jsonstr; int ret; switch (TableName) { case "ProcessData": var processData = new[] { new{ Equipment_code = dataGridViewRow.Cells[1].Value.ToString().Trim(), Workorder_code = dataGridViewRow.Cells[2].Value.ToString().Trim(), //Batch_number = dataGridViewRow.Cells[3].Value.ToString().Trim(), Sn = dataGridViewRow.Cells[4].Value.ToString().Trim(), Testitem = dataGridViewRow.Cells[5].Value.ToString().Trim(), Write_user = dataGridViewRow.Cells[6].Value.ToString().Trim(), Test_time = dataGridViewRow.Cells[7].Value.ToString().Trim(), Parameter_values = JsonConvert.DeserializeObject(dataGridViewRow.Cells[9].Value.ToString().Trim()), } }; //上传mes jsonstr = JsonConvert.SerializeObject(processData); if (GlobalContext.IsSendProcessData) { string url = @"HTTP://" + GlobalContext.ServerHost + @"/api/ProductionLine/ProcessData"; string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr); // HttpUitls.Post(url, jsonstr); upload = mesRet == "成功" ? 1 : 0; AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[1]?.Value?.ToString() + "]上传加工数据到MES服务器---" + mesRet); } //本地数据 ret = SQLHelper.ExecuteSQL(ProcessData.ToStringUpdateStatusByID(upload,0, id), null, ConnString); if (upload == 1) updatedIds.Add(id); break; case "OneCheckData": var oneCheckData = new { Line_code = dataGridViewRow.Cells[1].Value.ToString().Trim(), Line_name = dataGridViewRow.Cells[2].Value.ToString().Trim(), Equipment_code = dataGridViewRow.Cells[3].Value.ToString().Trim(), Equipment_name = dataGridViewRow.Cells[4].Value.ToString().Trim(), Workorder_code = dataGridViewRow.Cells[5].Value.ToString().Trim(), Procedure_code = dataGridViewRow.Cells[6].Value.ToString().Trim(), Procedure_name = dataGridViewRow.Cells[7].Value.ToString().Trim(), Onecheck_empcode = dataGridViewRow.Cells[8].Value.ToString().Trim(), Onecheck_empname = dataGridViewRow.Cells[9].Value.ToString().Trim(), Onecheck_time = dataGridViewRow.Cells[10].Value.ToString().Trim(), Oneckeck_values = JsonConvert.DeserializeObject(dataGridViewRow.Cells[12].Value.ToString().Trim()), }; //上传mes jsonstr = JsonConvert.SerializeObject(oneCheckData); if (GlobalContext.IsSendCheckOneData) { string url = @"HTTP://" + GlobalContext.ServerHost + @"/api/ProductionLine/OneCheckData"; string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr); upload = mesRet == "成功" ? 1 : 0; AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[3].Value.ToString().Trim() + "]上传点检数据到MES---" + mesRet); } //本地数据保存 ret = SQLHelper.ExecuteSQL(OneCheckData.ToStringUpdateStatusByID(upload, id), null, ConnString); if (upload == 1) updatedIds.Add(id); break; case "AlarmData": ////上传mes //var alarmData = new[] //{ // new // { // Equipment_code = dataGridViewRow.Cells[1].Value.ToString().Trim(), // AlarmName = dataGridViewRow.Cells[2].Value.ToString().Trim(), // AlarmDesc = dataGridViewRow.Cells[3].Value.ToString().Trim(), // AlarmType = dataGridViewRow.Cells[4].Value.ToString().Trim(), // StartTime = dataGridViewRow.Cells[5].Value.ToString().Trim(), // EndTime = dataGridViewRow.Cells[6].Value.ToString().Trim(), // PersistTime = dataGridViewRow.Cells[7].Value.ToString().Trim() // } //}; //jsonstr = JsonConvert.SerializeObject(alarmData); //if (GlobalContext.IsSendAlarmData) //{ // string url = @"HTTP://" + GlobalContext.ServerHost + ":" + GlobalContext.ServerPort + @"/api/ProductionLine/AlarmData"; // string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr); // HttpUitls.Post(url, jsonstr); // upload = mesRet == "成功" ? 1 : 0; // AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[1].Value.ToString().Trim() + "]上传报警数据到MES服务器---" + mesRet); //} ////本地数据 //ret = SQLHelper.ExecuteSQL(AlarmData.ToStringUpdateStatusByID(upload, id), null, ConnString); MessageBox.Show("本线使用MES直采报警信息,不需要上位机上传!"); break; default: break; } Thread.Sleep(20); } } updatedIds.Clear(); //BeginQuery_Click(BeginQuery, EventArgs.Empty); // 刷新表格 } catch (Exception ex) { string str = ex.StackTrace; logNet.WriteError("上传MES异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message); MessageBox.Show("上传MES异常!异常信息:" + ex.Message.ToString()); } } #region 查询条件控件 private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd"); EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd"); ResetTotal(); } private void dateTimePicker2_ValueChanged(object sender, EventArgs e) { StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd"); EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd"); ResetTotal(); } private void station_SelectedValueChanged(object sender, EventArgs e) { EquipmentCode = equipment.Items[equipment.SelectedIndex].ToString(); dataGridView.DataSource = null; ResetTotal(); } private void dataBaseName_SelectedValueChanged(object sender, EventArgs e) { UpdateConnString(); ResetTotal(); } private void comboBoxSendStatus_SelectedValueChanged(object sender, EventArgs e) { if (comboBoxSendStatus.SelectedIndex == 2) { buttonSendMES.Visible = true; } else { buttonSendMES.Visible = false; } SendStatus = comboBoxSendStatus.Items[comboBoxSendStatus.SelectedIndex].ToString(); dataGridView.DataSource = null; ResetTotal(); } private void dataTableName_SelectedValueChanged(object sender, EventArgs e) { comboBoxSendStatus.Items.Clear(); comboBoxSendStatus.Items.Add("All"); comboBoxSendStatus.Items.Add("已上传"); comboBoxSendStatus.Items.Add("未上传"); equipment.Items.Clear(); equipment.Items.Add("All"); station.Items.Clear(); station.Items.Add("All"); switch (dataTableName.SelectedIndex) { case 0: //加工数据和 equipment.Items.Add(GlobalContext.LineCode + "-S1"); equipment.Items.Add(GlobalContext.LineCode + "-S2"); equipment.Items.Add(GlobalContext.LineCode + "-S3"); equipment.Items.Add(GlobalContext.LineCode + "-S4"); equipment.Items.Add(GlobalContext.LineCode + "-S5"); equipment.Items.Add(GlobalContext.LineCode + "-S6"); //equipment.Items.Add(GlobalContext.LineCode + "-S7"); //equipment.Items.Add(GlobalContext.LineCode + "-S8"); //equipment.Items.Add(GlobalContext.LineCode + "-S9"); //equipment.Items.Add(GlobalContext.LineCode + "-S10"); //equipment.Items.Add(GlobalContext.LineCode + "-S11"); //equipment.Items.Add(GlobalContext.LineCode + "-S12"); foreach (var t in DicProcess) { station.Items.Add(t.Key); } // comboBoxSendStatus.Visible = true; labelSendStatus.Visible = true; station.Visible = true; gongxu.Visible = true; break; case 1: //点检数据 equipment.Items.Add(GlobalContext.LineCode + "-S1"); equipment.Items.Add(GlobalContext.LineCode + "-S2"); equipment.Items.Add(GlobalContext.LineCode + "-S3"); equipment.Items.Add(GlobalContext.LineCode + "-S4"); //equipment.Items.Add(GlobalContext.LineCode + "-S5"); equipment.Items.Add(GlobalContext.LineCode + "-S6"); //equipment.Items.Add(GlobalContext.LineCode + "-S7"); //equipment.Items.Add(GlobalContext.LineCode + "-S8"); //equipment.Items.Add(GlobalContext.LineCode + "-S9"); //equipment.Items.Add(GlobalContext.LineCode + "-S10"); //equipment.Items.Add(GlobalContext.LineCode + "-S11"); //equipment.Items.Add(GlobalContext.LineCode + "-S12"); foreach (var t in DicCheckOne) { station.Items.Add(t.Key); } comboBoxSendStatus.Visible = true; labelSendStatus.Visible = true; station.Visible = true; gongxu.Visible = true; break; //case 2: // //单机数据 // foreach (var t in DicAlarm) // { // equipment.Items.Add(t.Key); // } // comboBoxSendStatus.Visible = false; // labelSendStatus.Visible = false; // station.Visible = false; // gongxu.Visible = false; // break; case 2: //整线数据 comboBoxSendStatus.Visible = false; labelSendStatus.Visible = false; station.Visible = false; gongxu.Visible = false; break; case 3: //报警数据 foreach (var t in DicAlarm) { equipment.Items.Add(t.Key); } // comboBoxSendStatus.Visible = false; labelSendStatus.Visible = false; station.Visible = false; gongxu.Visible = false; break; default: break; } equipment.SelectedIndex = 0; comboBoxSendStatus.SelectedIndex = 0; station.SelectedIndex = 0; switch (dataTableName.SelectedIndex) { case 0: //加工数据 TableName = "ProcessData"; ViewFirstColumn = true; ColumnWidth0 = 120; ColumnWidth1 = 120; ColumnWidth2 = 150; ColumnWidth3 = 100; ColumnWidth4 = 120; ColumnWidth5 = 120; break; case 1: //点检数据 TableName = "OneCheckData"; ViewFirstColumn = true; ColumnWidth0 = 120; ColumnWidth1 = 100; ColumnWidth2 = 100; ColumnWidth3 = 120; ColumnWidth4 = 120; ColumnWidth5 = 120; break; //case 2: // //单机数据 // TableName = "WorkingData"; // ViewFirstColumn = true; // ColumnWidth0 = 120; // ColumnWidth1 = 100; // ColumnWidth2 = 100; // ColumnWidth3 = 100; // ColumnWidth4 = 100; // ColumnWidth5 = 100; // break; case 2: //整线数据 TableName = "LineWorkingData"; ViewFirstColumn = true; ColumnWidth0 = 100; ColumnWidth1 = 120; ColumnWidth2 = 120; ColumnWidth3 = 120; ColumnWidth4 = 120; ColumnWidth5 = 120; break; case 3: //报警数据 TableName = "AlarmData"; ViewFirstColumn = true; ColumnWidth0 = 100; ColumnWidth1 = 120; ColumnWidth2 = 120; ColumnWidth3 = 120; ColumnWidth4 = 100; ColumnWidth5 = 100; break; default: break; } dataGridView.DataSource = null; ResetTotal(); } #endregion 查询条件控件 private void AddMessage(LogType logType, string msg) { MessageEvent?.Invoke(logType, msg); } private void station_SelectedValueChanged_1(object sender, EventArgs e) { Item = station.Items[station.SelectedIndex].ToString(); dataGridView.DataSource = null; } /// /// 导出 /// private void btnOutExcel_Click(object sender, EventArgs e) { try { if (dataGridView.DataSource == null || dataGridView.Rows.Count < 1) { MessageBox.Show("导出内容不可为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xlsx"; saveDialog.Filter = "Excel文件|*.xlsx"; saveDialog.FileName = dataTableName.Text + " " + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx"; DialogResult dialogResult = saveDialog.ShowDialog(); if (dialogResult == DialogResult.OK) { string filename = saveDialog.FileName; DataTable dt = (DataTable)dataGridView.DataSource; dt.TableName = dataTableName.Text; NPOIHelper.WriteExcel(dt, filename); } } catch (Exception ex) { string str = ex.StackTrace; logNet.WriteError("导出Excle异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message); MessageBox.Show("导出Excle异常!异常信息:" + ex.Message.ToString()); } } #region UI处理 // 设备编号-工序绑定 private void equipment_SelectedIndexChanged(object sender, EventArgs e) { switch (TableName) { case "ProcessData": case "OneCheckData": if (station.Items.Count >= equipment.Items.Count) { station.SelectedIndex = equipment.SelectedIndex; } break; default: break; } } private void station_SelectedIndexChanged(object sender, EventArgs e) { switch (TableName) { case "ProcessData": case "OneCheckData": if (equipment.Items.Count >= station.Items.Count) { equipment.SelectedIndex = station.SelectedIndex; } break; default: break; } } #endregion UI处理 } }