using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Dto; 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 DevComponents.DotNetBar.Controls; using DevComponents.Editors; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Casic.Birmm.RbFreqStandMeasure.info { public partial class DetailDlg : 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 #region 样式常量定义 private readonly Color titleBackColor = Color.FromArgb(63, 132, 215); // #3F64D7 private readonly Color tableForeColor = Color.White; private readonly Font titleFont = new Font("微软雅黑", 14F, FontStyle.Regular, GraphicsUnit.Pixel, 134); private readonly Color inputBlack = Color.FromArgb(51, 51, 51); // #333333 private readonly Color inputDefault = Color.FromArgb(204, 204, 204); // #CCCCCC #endregion DataTable tableOriginData = new DataTable(); DataTable tableTimes = new DataTable(); DetectionService detectionService = new DetectionServiceImpl(); DetectionItemService detectionItemService = new DetectionItemServiceImpl(); CounterDataService counterDataService = new CounterDataServiceImpl(); long deviceId = -1; string startTime = ""; string endTime = ""; string resultStr = ""; public Action HideMaskAction { get; set; } public DetailDlg(long deviceId) { InitializeComponent(); this.deviceId = deviceId; LoadTimes(deviceId); if (tableTimes.Rows.Count > 0) { startTime = Convert.ToDateTime(dataGridView_times.Rows[0].Cells[1].Value).ToString("yyyy-MM-dd HH:mm:ss"); endTime = Convert.ToDateTime(dataGridView_times.Rows[0].Cells[2].Value).ToString("yyyy-MM-dd HH:mm:ss"); resultStr = dataGridView_times.Rows[0].Cells[3].Value.ToString(); LoadData(deviceId, "1", startTime, endTime); tabPageEvent("tab_stability"); } } // 关闭对话框 private void btnClose_Click(object sender, EventArgs e) { this.HideMaskAction(); } // 数据列表 private void LoadData(long deviceId, string detectionItem, string startTime, string endTime) { tableOriginData = new DataTable(); // 设置表格的列 tableOriginData.Columns.Add("序号", Type.GetType("System.String")); tableOriginData.Columns.Add("时间", Type.GetType("System.String")); tableOriginData.Columns.Add("相对频率偏差", Type.GetType("System.String")); // 获取当前页的数据 List<DetectionDto> queryList = detectionService.search(deviceId, detectionItem, startTime, endTime); if (null != queryList && queryList.Count > 0) { int index = 1; foreach (DetectionDto detection in queryList) { tableOriginData.Rows.Add(index, detection.LogTime, detection.Frequency); index++; } label_noData.Visible = false; dataGridView_Data.DataSource = tableOriginData; // width=425px dataGridView_Data.Columns[0].Width = 60; dataGridView_Data.Columns[1].Width = 185; dataGridView_Data.Columns[2].Width = 180; dataGridView_Data.Columns[0].ReadOnly = true; dataGridView_Data.Columns[1].ReadOnly = true; dataGridView_Data.Columns[2].ReadOnly = true; dataGridView_Data.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_Data.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_Data.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; } else { dataGridView_Data.DataSource = null; label_noData.Visible = true; } } private void LoadData_Counter(long deviceId) { tableOriginData = new DataTable(); // 设置表格的列 tableOriginData.Columns.Add("序号", Type.GetType("System.String")); tableOriginData.Columns.Add("输出值", Type.GetType("System.String")); tableOriginData.Columns.Add("测量值", Type.GetType("System.String")); tableOriginData.Columns.Add("灵敏度", Type.GetType("System.String")); tableOriginData.Columns.Add("测量时间", Type.GetType("System.DateTime")); // 获取当前页的数据 List<CounterData> queryList = counterDataService.getList(deviceId, "", "", ""); if (null != queryList && queryList.Count > 0) { int index = 1; foreach (CounterData counterData in queryList) { tableOriginData.Rows.Add(index, counterData.OutValue, counterData.Value, counterData.Sensitivity,counterData.LogTime); index++; } label_noData.Visible = false; dataGridView_Data.DataSource = tableOriginData; // width=425px dataGridView_Data.Columns[0].Width = 50; dataGridView_Data.Columns[1].Width = 100; dataGridView_Data.Columns[2].Width = 100; dataGridView_Data.Columns[3].Width = 100; dataGridView_Data.Columns[4].Width = 120; dataGridView_Data.Columns[0].ReadOnly = true; dataGridView_Data.Columns[1].ReadOnly = true; dataGridView_Data.Columns[2].ReadOnly = true; dataGridView_Data.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_Data.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_Data.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; } else { dataGridView_Data.DataSource = null; label_noData.Visible = true; } } // 检测记录列表 private void LoadTimes(long deviceId) { dataGridView_times.Columns.Clear(); dataGridView_times.Rows.Clear(); 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("result", Type.GetType("System.String")); // 获取当前页的数据 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.ToString("yyyy-MM-dd HH:mm:ss"), detection.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); index++; } label_noTimes.Visible = false; dataGridView_times.DataSource = tableTimes; // width=407px dataGridView_times.Columns[0].Width = 47; dataGridView_times.Columns[1].Width = 180; dataGridView_times.Columns[2].Width = 180; dataGridView_times.Columns[3].Visible = false; dataGridView_times.Columns[0].ReadOnly = true; dataGridView_times.Columns[1].ReadOnly = true; dataGridView_times.Columns[2].ReadOnly = true; dataGridView_times.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView_times.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; } else { dataGridView_times.DataSource = null; label_noTimes.Visible = true; } } private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { string tabPageName = tabControl1.SelectedTab.Name; tabPageEvent(tabPageName); } private void dataGridView_times_CellClick(object sender, DataGridViewCellEventArgs e) { int rowIndex = e.RowIndex; startTime = Convert.ToDateTime(dataGridView_times.Rows[rowIndex].Cells[1].Value).ToString("yyyy-MM-dd HH:mm:ss"); endTime = Convert.ToDateTime(dataGridView_times.Rows[rowIndex].Cells[2].Value).ToString("yyyy-MM-dd HH:mm:ss"); resultStr = dataGridView_times.Rows[rowIndex].Cells[3].Value.ToString(); tabPageEvent(tabControl1.SelectedTab.Name); } private void tabPageEvent(string tabPageName) { panel_result.Controls.Clear(); switch (tabPageName) { case "tab_stability": { LoadData(deviceId, "1", startTime, endTime); groupBox3.Text = "频率稳定度"; stability result = new stability(); result.label_stability.Text = resultStr; result.Show(); panel_result.Controls.Add(result); break; } case "tab_accuracy": { LoadData(deviceId, "2", startTime, endTime); groupBox3.Text = "频率准确度"; accuracy result = new accuracy(); result.label_accuracy.Text = resultStr; result.Show(); panel_result.Controls.Add(result); break; } case "tab_bootFeature": { LoadData(deviceId, "3", startTime, endTime); groupBox3.Text = "开机特性"; bootFeature result = new bootFeature(); result.label_bootFeature.Text = resultStr; result.Show(); panel_result.Controls.Add(result); break; } case "tab_ageRate": { LoadData(deviceId, "4", startTime, endTime); groupBox3.Text = "日老化率"; ageRate result = new ageRate(tableOriginData); if (resultStr.Split(',').Length > 1) { result.label_k.Text = resultStr.Split(',')[0]; result.label_r.Text = resultStr.Split(',')[1]; } result.Show(); panel_result.Controls.Add(result); break; } case "tab_counter": { LoadData_Counter(deviceId); groupBox3.Text = "计数器范围及灵敏度"; //ageRate result = new ageRate(tableOriginData); //result.Show(); break; } default: break; } } } }