using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model; using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service; using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service.Impl; using Casic.Birmm.RbFreqStandMeasure.tools; using Casic.Birmm.RbFreqStandMeasure.Tools; using DevComponents.DotNetBar.Controls; using DevComponents.Editors; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.IO.Ports; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Casic.Birmm.RbFreqStandMeasure.info { public partial class ExportDlg : Form { #region 无边框拖动效果/最小化窗口/关闭窗口 [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; private void panel1_MouseDown(object sender, MouseEventArgs e) { //拖动窗体 ReleaseCapture(); SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } #endregion DictService dictService = new DictServiceImpl(); DetectionItemService detectionItemService = new DetectionItemServiceImpl(); public string detectType = ""; public long deviceId=-1; DataTable tableTimes = new DataTable(); private DetectionService detectionService = new DetectionServiceImpl(); CheckBox ckBox; public Action HideMaskAction { get; set; } public ExportDlg(long devId) { InitializeComponent(); deviceId = devId; } private void ExportDlg_Shown(object sender, EventArgs e) { LoadTimes(); } // 检测记录列表 private void LoadTimes() { dataGridView_times.Columns.Clear(); dataGridView_times.Rows.Clear(); DataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn(); columncb.HeaderText = ""; columncb.Name = "cb_check"; columncb.TrueValue = true; columncb.FalseValue = false; columncb.DataPropertyName = "IsChecked"; dataGridView_times.Columns.Add(columncb); ckBox = new CheckBox(); ckBox.Text = ""; ckBox.Checked = false; System.Drawing.Rectangle rect = dataGridView_times.GetCellDisplayRectangle(0, -1, true); ckBox.Size = new System.Drawing.Size(13, 13); ckBox.BackColor = Color.White; ckBox.Location = new Point(18, 8); ckBox.Click += new EventHandler(ckBox_CheckedChanged); dataGridView_times.Controls.Add(ckBox); ckBox.BringToFront(); tableTimes = new DataTable(); // 设置表格的列 tableTimes.Columns.Add("序号", Type.GetType("System.String")); tableTimes.Columns.Add("开始时间", Type.GetType("System.String")); tableTimes.Columns.Add("结束时间", Type.GetType("System.String")); tableTimes.Columns.Add("accuracy", Type.GetType("System.String")); tableTimes.Columns.Add("stability", Type.GetType("System.String")); tableTimes.Columns.Add("boot", Type.GetType("System.String")); tableTimes.Columns.Add("age", Type.GetType("System.String")); tableTimes.Columns.Add("通道", Type.GetType("System.String")); tableTimes.Columns.Add("stability1", Type.GetType("System.String")); tableTimes.Columns.Add("stability10", Type.GetType("System.String")); tableTimes.Columns.Add("stability20", Type.GetType("System.String")); tableTimes.Columns.Add("stability100", Type.GetType("System.String")); tableTimes.Columns.Add("id", Type.GetType("System.Int64")); // 获取当前页的数据 List<DetectionItem> queryList = detectionItemService.search(deviceId, false); if (null != queryList && queryList.Count > 0) { int index = 1; foreach (DetectionItem detection in queryList) { tableTimes.Rows.Add(index, detection.StartTime, detection.EndTime, detection.Accuracy, detection.Stability, detection.BootFeature, detection.AgeRate, detection.Channel, detection.Stability1, detection.Stability10, detection.Stability20, detection.Stability100,detection.Id); LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "detection.Id :" + detection.Id); index++; } dataGridView_times.DataSource = tableTimes; // width=407px dataGridView_times.Columns[0].Width = 40; dataGridView_times.Columns[1].Width = 40; dataGridView_times.Columns[2].Width = 120; dataGridView_times.Columns[3].Width = 120; dataGridView_times.Columns[4].Visible = false; dataGridView_times.Columns[5].Visible = false; dataGridView_times.Columns[6].Visible = false; dataGridView_times.Columns[7].Visible = false; dataGridView_times.Columns[8].Width = 50; dataGridView_times.Columns[9].Visible = false; dataGridView_times.Columns[10].Visible = false; dataGridView_times.Columns[11].Visible = false; dataGridView_times.Columns[12].Visible = false; dataGridView_times.Columns[13].Visible = false; dataGridView_times.Columns[1].ReadOnly = true; dataGridView_times.Columns[2].ReadOnly = true; dataGridView_times.Columns[3].ReadOnly = true; dataGridView_times.Columns[4].ReadOnly = true; dataGridView_times.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[3].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[4].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[7].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[8].SortMode = DataGridViewColumnSortMode.NotSortable; } else { dataGridView_times.DataSource = null; } ckBox.Checked = true; selectAll(); } // 全选事件 private void ckBox_CheckedChanged(object sender, EventArgs e) { selectAll(); } private void selectAll() { dataGridView_times.EndEdit(); if (ckBox.CheckState == CheckState.Checked) { for (int i = 0; i < this.dataGridView_times.Rows.Count; i++) { DataGridViewCheckBoxCell checkBox = (DataGridViewCheckBoxCell)dataGridView_times.Rows[i].Cells[0]; checkBox.Value = true; } } else { for (int i = 0; i < this.dataGridView_times.Rows.Count; i++) { DataGridViewCheckBoxCell checkBox = (DataGridViewCheckBoxCell)dataGridView_times.Rows[i].Cells[0]; checkBox.Value = false; } } } // 关闭对话框 private void btnAddDevCancel_Click(object sender, EventArgs e) { this.HideMaskAction(); } private void btnExitDev_Click(object sender, EventArgs e) { this.HideMaskAction(); } private void roundButton1_Click(object sender, EventArgs e) { this.HideMaskAction(); } private void btn_reDetec_Click(object sender, EventArgs e) { bool selected = false; foreach (DataGridViewRow row in dataGridView_times.Rows) { DataGridViewCheckBoxCell checkBox = (DataGridViewCheckBoxCell)row.Cells[0]; string re = checkBox.Value.ToString(); if (re.Equals("True")) { selected = true; break; } } if (!selected) { MessageBox.Show("请选择要导出的检测记录!"); return; } string strFilePath = ConfigHelper.GetAppConfig("exportPath") + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv"; StreamWriter strmWriterObj = new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8); strmWriterObj.WriteLine(label_devName.Text + " - " + label_devType.Text + "-" + "测试数据及结果"); foreach (DataGridViewRow row in dataGridView_times.Rows) { DataGridViewCheckBoxCell checkBox = (DataGridViewCheckBoxCell)row.Cells[0]; string re = checkBox.Value.ToString(); if (re.Equals("True")) { string startTime = row.Cells[2].Value.ToString(); string endTime = row.Cells[3].Value.ToString(); strmWriterObj.WriteLine("测试时间:" + startTime + "," + endTime); for (int type = 1; type < 8; type++) //1-STABILITY,2-ACCURACY,3-BOOT_FEATURE,4-AGE_RATE { string typeStr = type + ""; if (type == 1) typeStr = "1-1"; if(type == 2) typeStr = "1-10"; if (type == 3) typeStr = "1-20"; if (type == 4) typeStr = "1-100"; if(type == 5) typeStr = "2"; if (type == 6) typeStr = "3"; if (type == 7) typeStr = "4"; // 获取数据 List<Detection> List = detectionService.search(deviceId, typeStr, startTime, endTime,Convert.ToInt64(row.Cells[13].Value)); LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "List.count :" + List.Count +";itemid="+ Convert.ToInt64(row.Cells[13].Value)+ ";typeStr"+ typeStr+";devid="+ deviceId); if (null != List && List.Count > 0) { string detecItemName = ""; switch (typeStr) { case "1-1": detecItemName = "1s频率稳定度 :"+row.Cells[9].Value.ToString(); break; case "1-10": detecItemName = "10s频率稳定度 :" + row.Cells[10].Value.ToString(); break; case "1-20": detecItemName = "20s频率稳定度 :" + row.Cells[11].Value.ToString(); break; case "1-100": detecItemName = "100s频率稳定度 :" + row.Cells[12].Value.ToString(); break; case "2": detecItemName = "频率准确度:" + row.Cells[4].Value.ToString(); break; case "3": detecItemName = "开机特性:" + row.Cells[6].Value.ToString(); break; case "4": detecItemName = "日老化率:" + row.Cells[7].Value.ToString(); break; default: break; } strmWriterObj.WriteLine(detecItemName); int index = 1; foreach (Detection detection in List) { string strBufferLine = index + "," + detection.LogTime + "," + detection.Frequency; strmWriterObj.WriteLine(strBufferLine); index++; } } } } } CounterDataService counterDataService = new CounterDataServiceImpl(); List<CounterData> query = counterDataService.getHistory(deviceId, "", ""); if (null != query && query.Count > 0) { strmWriterObj.WriteLine("计数器范围及灵敏度"); strmWriterObj.WriteLine("序号,输出值,测量值,灵敏度,时间"); int index2 = 1; foreach (CounterData counterData in query) { string strBufferLine = index2 + "," + counterData.OutValue + "," + counterData.Value + "," + counterData.Sensitivity + "," + counterData.LogTime; strmWriterObj.WriteLine(strBufferLine); index2++; } } strmWriterObj.Close(); MessageBox.Show("导出成功,存放位置:" + strFilePath); this.HideMaskAction(); } } }