From d4a658d6412d2804a47c8268aa83dc8fdea2499f Mon Sep 17 00:00:00 2001 From: "HM-CN\\zhengxuan.zhang" Date: Thu, 28 Aug 2025 21:51:13 +0800 Subject: [PATCH] =?UTF-8?q?#013=20=E6=96=B0=E5=A2=9E=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=EF=BC=9B=E8=A7=A3=E6=9E=90=E6=88=96=E6=8F=90=E5=8F=96=E6=9C=89?= =?UTF-8?q?=E6=95=88=E5=86=85=E5=AE=B9=E5=A4=B1=E8=B4=A5=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0=E6=BA=90\error=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=EF=BC=8C=E9=81=BF=E5=85=8D=E5=BD=B1=E5=93=8D=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E6=9C=8D=E5=8A=A1=EF=BC=9B3=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Analysis/App.config | 16 +- ...{AboutSoftwareInfo.cs => AboutSoftware.cs} | 4 +- ....designer.cs => AboutSoftware.designer.cs} | 4 +- ...utSoftwareInfo.resx => AboutSoftware.resx} | 0 Analysis/CjlrForm/FSoftwareSetup.cs | 5 +- Analysis/CjlrForm/FileSorter.cs | 132 ++-- Analysis/DAL/CjlrDAL.cs | 64 +- Analysis/Define/Define.cs | 2 +- Analysis/FormMain.cs | 593 +++++++++--------- Analysis/FormMain.designer.cs | 560 +++++++++-------- Analysis/FormMain.resx | 174 ++--- Analysis/NXSAnalysis.csproj | 10 +- Analysis/Program.cs | 6 +- Analysis/Properties/AssemblyInfo.cs | 4 +- Analysis/bin/x64/Debug/Debug.txt | 80 ++- .../bin/x64/Debug/File/AnalysisConfig.ini | 2 +- Analysis/bin/x64/Debug/NSAnalysis.exe | Bin 1817600 -> 1817600 bytes Analysis/bin/x64/Debug/NSAnalysis.exe.config | 16 +- Analysis/bin/x64/Debug/NSAnalysis.pdb | Bin 337408 -> 339456 bytes CheryFianlAssemblyLine.sln | 2 +- 20 files changed, 890 insertions(+), 784 deletions(-) rename Analysis/CjlrForm/{AboutSoftwareInfo.cs => AboutSoftware.cs} (95%) rename Analysis/CjlrForm/{AboutSoftwareInfo.designer.cs => AboutSoftware.designer.cs} (99%) rename Analysis/CjlrForm/{AboutSoftwareInfo.resx => AboutSoftware.resx} (100%) diff --git a/Analysis/App.config b/Analysis/App.config index dc1fe32..a2fa42f 100644 --- a/Analysis/App.config +++ b/Analysis/App.config @@ -1,30 +1,30 @@ - + - - + + - + - + - - + + - + \ No newline at end of file diff --git a/Analysis/CjlrForm/AboutSoftwareInfo.cs b/Analysis/CjlrForm/AboutSoftware.cs similarity index 95% rename from Analysis/CjlrForm/AboutSoftwareInfo.cs rename to Analysis/CjlrForm/AboutSoftware.cs index cdeb76b..8d33274 100644 --- a/Analysis/CjlrForm/AboutSoftwareInfo.cs +++ b/Analysis/CjlrForm/AboutSoftware.cs @@ -12,9 +12,9 @@ using Telerik.WinControls.UI; namespace NSAnalysis { - public partial class AboutSoftwareInfo : Telerik.WinControls.UI.ShapedForm + public partial class AboutSoftware : Telerik.WinControls.UI.ShapedForm { - public AboutSoftwareInfo() + public AboutSoftware() { InitializeComponent(); } diff --git a/Analysis/CjlrForm/AboutSoftwareInfo.designer.cs b/Analysis/CjlrForm/AboutSoftware.designer.cs similarity index 99% rename from Analysis/CjlrForm/AboutSoftwareInfo.designer.cs rename to Analysis/CjlrForm/AboutSoftware.designer.cs index 352c269..e7d7ad5 100644 --- a/Analysis/CjlrForm/AboutSoftwareInfo.designer.cs +++ b/Analysis/CjlrForm/AboutSoftware.designer.cs @@ -1,6 +1,6 @@ namespace NSAnalysis { - partial class AboutSoftwareInfo + partial class AboutSoftware { /// /// Required designer variable. @@ -28,7 +28,7 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutSoftwareInfo)); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutSoftware)); this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); this.label2 = new System.Windows.Forms.Label(); this.labTitle = new System.Windows.Forms.Label(); diff --git a/Analysis/CjlrForm/AboutSoftwareInfo.resx b/Analysis/CjlrForm/AboutSoftware.resx similarity index 100% rename from Analysis/CjlrForm/AboutSoftwareInfo.resx rename to Analysis/CjlrForm/AboutSoftware.resx diff --git a/Analysis/CjlrForm/FSoftwareSetup.cs b/Analysis/CjlrForm/FSoftwareSetup.cs index 3e0c3ac..d88f2cc 100644 --- a/Analysis/CjlrForm/FSoftwareSetup.cs +++ b/Analysis/CjlrForm/FSoftwareSetup.cs @@ -1,5 +1,4 @@ -using BaseFunction; -using System; +using System; using System.Drawing; using System.IO; using System.Windows.Forms; @@ -53,7 +52,7 @@ namespace NSAnalysis private void rtbnSaveSetup_Click(object sender, EventArgs e) //保存 { //获取控件状态 - ConfigDfn.iEnableSort = cbFileSorter.Checked ; + ConfigDfn.iEnableSort = cbFileSorter.Checked; ConfigDfn.iAnalysisCSVFlag = cbAnalysisCSV.Checked ? 1 : 0; ConfigDfn.strReportPath = rtbReportPath.Text.Trim(); diff --git a/Analysis/CjlrForm/FileSorter.cs b/Analysis/CjlrForm/FileSorter.cs index 4f184f3..995e6bf 100644 --- a/Analysis/CjlrForm/FileSorter.cs +++ b/Analysis/CjlrForm/FileSorter.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Data; using System.Globalization; using System.IO; -using System.Net.NetworkInformation; using System.Text; namespace NSAnalysis @@ -43,6 +42,12 @@ namespace NSAnalysis public void ProcessFiles() { var tasks = GetTaskRecords(); + // 增加空检查 + if (tasks == null || tasks.Rows.Count == 0) + { + Trace("没有找到任何任务记录,处理终止。"); + return; + } foreach (DataRow task in tasks.Rows) { string modelName = task["modelsName"].ToString(); @@ -52,7 +57,7 @@ namespace NSAnalysis string targetDir = task["targetFile"].ToString(); // 打印信息 - Trace($"Processing Task - Source: {sourceDir}, Target: {targetDir}, ModelCode: {modelCode} Position: {position}"); + Trace($"[ProcessFiles] 正在执行分发任务 - 源路径: {sourceDir}, 目标路径: {targetDir}, 匹配字符: {modelCode} 位置:{position}"); if (Directory.Exists(sourceDir)) { ProcessDirectory(sourceDir, targetDir, modelCode, modelName, position); @@ -60,29 +65,6 @@ namespace NSAnalysis else { Trace($"[ProcessFiles] 源文件地址不存在或错误: {sourceDir}"); - - ////记录到数据库 - //try - //{ - // //插入分发详情 - // CjlrTaskReleaseDetailModel detailModel = new CjlrTaskReleaseDetailModel - // { - // ModelsName = modelName, // 这里可以根据需要填写车型名称 - // ModelsCode = modelCode, - // Position = position, // 这里可以根据需要填写位置 - // SourceFile = "", - // TargetFile = "", - // TaskFileName = "", - // TaskStatus = 2, // 假设1表示已处理, 2表示未处理 - // TaskDetail = $"源文件地址不存在或错误: {sourceDir}", - // CreateDate = DateTime.Now - // }; - // _dal.InsertTaskDetail(detailModel); - //} - //catch (Exception ex) - //{ - // Trace($"[ProcessFiles] 记录错误到数据库失败: {ex.Message}"); - //} } } } @@ -127,11 +109,14 @@ namespace NSAnalysis // 解析入库 AnalysisNxsCSV(file); + // 如果未启用分发功能,直接返回 if (!ConfigDfn.iEnableSort) { return; } - // 分发逻辑 + + #region 分发逻辑 + if (MatchCsvValue(file, matchStr, readRowIndex, readColIndex)) { string destFile = Path.Combine(targetDir, Path.GetFileName(file)); @@ -188,6 +173,8 @@ namespace NSAnalysis Trace($"记录错误到数据库失败: {ex.Message}"); } } + + #endregion 分发逻辑 } } @@ -217,7 +204,7 @@ namespace NSAnalysis if (colIndex < 0 || colIndex >= columns.Length) return false; - return columns[colIndex].Trim().Equals(targetValue); + return columns[colIndex].Trim().Contains(targetValue); //改为包含 } catch (Exception ex) { @@ -306,6 +293,26 @@ namespace NSAnalysis return; } + + // 解析数据之前,备份原始数据,如果已存在备份文件,则覆盖, 备份到 程序根目录\Backup 文件夹 + try + { + string backupDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Backup"); + if (!Directory.Exists(backupDir)) + { + Directory.CreateDirectory(backupDir); + } + string backupFilePath = Path.Combine(backupDir, Path.GetFileName(filePath)); + File.Copy(filePath, backupFilePath, true); // 如果存在则覆盖 + MyBase.TraceWriteLine("已备份文件到: " + backupFilePath); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("备份文件时发生错误:" + ex.Message); + // 继续处理,不返回 + } + + try { using (var reader = new StreamReader(filePath)) @@ -326,8 +333,8 @@ namespace NSAnalysis continue; // 跳过空行或注释行 } - // 跳过前两行(如果有标题行或其他非数据行) - if (values.Length < 22) + // 跳过前两行(如果有标题行或其他非数据行),理论应该有19列 + if (values.Length < 19) { MyBase.TraceWriteLine("CSV行数据不完整,跳过该行:" + line); continue; // 跳过不完整的行 @@ -358,13 +365,10 @@ namespace NSAnalysis ToleranceName0 = values[12], ToleranceLower0 = values[13], ToleranceUpper0 = values[14], - ToleranceName1 = values[15], - ToleranceLower1 = values[16], - ToleranceUpper1 = values[17], - NominalValue = values[18], - MeasureDate = DateTime.ParseExact(values[19], "yyyyMMdd", CultureInfo.InvariantCulture), - MeasureTime = TimeSpan.ParseExact(values[20], "hhmmss", CultureInfo.InvariantCulture), - SequenceNum = int.Parse(values[21]) + NominalValue = values[15], + MeasureDate = DateTime.ParseExact(values[16], "yyyyMMdd", CultureInfo.InvariantCulture), + MeasureTime = TimeSpan.ParseExact(values[17], "hhmmss", CultureInfo.InvariantCulture), + SequenceNum = int.Parse(values[18]) }; records.Add(record); @@ -374,6 +378,20 @@ namespace NSAnalysis catch (Exception ex) { MyBase.TraceWriteLine("导入CSV文件时发生错误:" + ex.Message); + + // 将错误信息通过事件传递出去 + emitProcessStep($"---> 2、导入CSV文件时发生错误: {ex.Message}"); + + // 1、解析出错的,移动到 源路径文件夹\Error 文件夹 + string errorDir = Path.Combine(Path.GetDirectoryName(filePath), "Error"); + if (!Directory.Exists(errorDir)) + { + Directory.CreateDirectory(errorDir); + } + string errorFilePath = Path.Combine(errorDir, Path.GetFileName(filePath)); + File.Move(filePath, errorFilePath); + // 记录到日志 + MyBase.TraceWriteLine("已将文件移动到错误文件夹: " + errorFilePath); return; } @@ -384,6 +402,8 @@ namespace NSAnalysis { var firstRecord = records[0]; ConfigDfn.strMeasureTime = firstRecord.MeasureDate.ToString("yyyy-MM-dd") + " " + firstRecord.MeasureTime.ToString(@"hh\:mm\:ss"); + // 记录时间 + MyBase.TraceWriteLine("测量时间:" + ConfigDfn.strMeasureTime); // 获取车号 MyBase.TraceWriteLine("--------------------------------------------------------"); @@ -406,8 +426,15 @@ namespace NSAnalysis { // 使用下划线分隔 GroupName,提取最后一部分作为位置 var parts2 = firstRecord.GroupName.Split('_'); - - ConfigDfn.strEquipPosition = parts2.Length > 1 ? parts2[parts2.Length - 1] : firstRecord.GroupName; // 如果没有下划线,直接使用原值 + if (parts2.Length > 1 && !string.IsNullOrEmpty(parts2[1])) + { + // 提取下划线后第一个字符 + ConfigDfn.strEquipPosition = parts2[1].Substring(0, 1); + } + else + { + ConfigDfn.strEquipPosition = firstRecord.GroupName; // 如果没有下划线,直接使用原值 + } } // 打印提取后位置 @@ -415,21 +442,24 @@ namespace NSAnalysis MyBase.TraceWriteLine("测量时间:" + ConfigDfn.strMeasureTime); - emitProcessStep($"---> 1、解析到, 车号:{ConfigDfn.strEquipNo} 车型:{ConfigDfn.strCarModel} 位置:{ConfigDfn.strEquipPosition} 测量时间:{ConfigDfn.strMeasureTime}"); + emitProcessStep($"---> 1、解析到, 车号: {ConfigDfn.strEquipNo} 车型: {ConfigDfn.strCarModel} 位置: {ConfigDfn.strEquipPosition} 测量时间: {ConfigDfn.strMeasureTime}"); } else { - MyBase.TraceWriteLine("没有找到有效的测量记录,无法设置测量时间。"); + MyBase.TraceWriteLine("没有找到有效的测量记录,无法设置测量时间。CSV文件导入到数据库失败!"); + //将错误信息 + emitProcessStep($"---> 2、没有找到有效的测量记录,无法设置测量时间。CSV文件导入到数据库失败!"); - // 将文件移动到 未导入文件夹,如果不存在则新建该文件夹 - //string strNotImportPath = ConfigDfn.strFileFolder + "\\NextSenseCSVNotImport\\"; - //if (!Directory.Exists(strNotImportPath)) - //{ - // Directory.CreateDirectory(strNotImportPath); - //} - //string destFilePath = Path.Combine(strNotImportPath, Path.GetFileName(filePath)); - //File.Move(filePath, destFilePath); - //MyBase.TraceWriteLine("将文件移动到未导入文件夹,路径为:" + destFilePath); + // 2、解析未出错(有可能整个文件被跳过),但没有有效数据的,移动到 源路径文件夹\Error 文件夹 + string errorDir = Path.Combine(Path.GetDirectoryName(filePath), "Error"); + if (!Directory.Exists(errorDir)) + { + Directory.CreateDirectory(errorDir); + } + string errorFilePath = Path.Combine(errorDir, Path.GetFileName(filePath)); + File.Move(filePath, errorFilePath); + // 记录到日志 + MyBase.TraceWriteLine("已将文件移动到错误文件夹: " + errorFilePath); return; } @@ -440,11 +470,9 @@ namespace NSAnalysis _dal.InsertOrUpdateCJLRMeaData(record); } - MyBase.TraceWriteLine("CSV文件导入到数据库成功!"); - // 记录处理文件到数据库 _dal.InsertProcessedFile(filePath); - + MyBase.TraceWriteLine("CSV文件导入到数据库成功!"); emitProcessStep($"---> 2、CSV文件导入到数据库成功"); #region 处理单侧统计信息 diff --git a/Analysis/DAL/CjlrDAL.cs b/Analysis/DAL/CjlrDAL.cs index d3de834..ef44258 100644 --- a/Analysis/DAL/CjlrDAL.cs +++ b/Analysis/DAL/CjlrDAL.cs @@ -97,7 +97,7 @@ namespace NSAnalysis.DAL } // 从CJLR_MeaData 中查询 总测量项 Good测量项 NoGood测量项 Reject测量项 FPY - public DataTable SelectMeasureResultByCarID(string strCarID,string strGroupName) + public DataTable SelectMeasureResultByCarID(string strCarID, string strGroupName) { string strSql = @" SELECT @@ -125,9 +125,6 @@ NULLIF( { new SqlParameter("@CarID", strCarID), new SqlParameter("@GroupName", strGroupName) - - - }; DataTable dt = SQLHelper.ExecuteQuery(strSql, parameters, CommandType.Text); @@ -161,14 +158,12 @@ NULLIF( SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@CarID", strCarID) - - - }; DataTable dt = SQLHelper.ExecuteQuery(strSql, parameters, CommandType.Text); return dt; } + // 每个测量点的上下限和偏差分析(包含合并的测量时间) public DataTable SelectMeasureDataByCarID(string strCarID) { @@ -179,8 +174,8 @@ NULLIF( NominalValue, -- 计算上下限 - NominalValue + ToleranceLower1 AS LowerLimit, - NominalValue + ToleranceUpper1 AS UpperLimit, + ToleranceLower0 AS LowerLimit, + ToleranceUpper0 AS UpperLimit, Classification, -- 合并日期和时间 CAST(MeasureDate AS DATETIME) + CAST(MeasureTime AS DATETIME) AS MeasureDateTime @@ -201,16 +196,16 @@ NULLIF( public DataTable SelectTMeasureDataByCarIDAndTime(string strCarID, string strStartTime, string strEndTime) { StringBuilder strSql = new StringBuilder(@" - SELECT -ProductNum, - PointName, - Model, - DimensionName, - DimensionValue, - NominalValue, - NominalValue + ToleranceLower1 AS LowerLimit, - NominalValue + ToleranceUpper1 AS UpperLimit, - Classification, + SELECT + ProductNum, + Model, + PointName, + DimensionName, + NominalValue, + ToleranceLower0 AS LowerLimit, + ToleranceUpper0 AS UpperLimit, + DimensionValue, + Classification, CAST(MeasureDate AS DATETIME) + CAST(MeasureTime AS DATETIME) AS MeasureDateTime FROM CJLR.dbo.CJLR_MeaData WHERE 1=1 @@ -269,7 +264,6 @@ ProductNum, return SQLHelper.ExecuteQuery(sql, paras, CommandType.Text); } - #endregion #region Insert Function @@ -293,7 +287,7 @@ ProductNum, new SqlParameter("@sourceFile", model.SourceFile ?? (object)DBNull.Value), new SqlParameter("@targetFile", model.TargetFile ?? (object)DBNull.Value), new SqlParameter("@status", model.Status ?? (object)DBNull.Value), - new SqlParameter("@create_date", model.CreateDate == default ? + new SqlParameter("@create_date", model.CreateDate == DateTime.MinValue ? DateTime.Parse("2024-01-31 14:37:00"): model.CreateDate), new SqlParameter("@is_delete", model.IsDelete), new SqlParameter("@readType", model.ReadType) @@ -323,7 +317,7 @@ ProductNum, new SqlParameter("@taskFileName", model.TaskFileName ?? (object)DBNull.Value), new SqlParameter("@taskStatus", model.TaskStatus), new SqlParameter("@taskDetail", model.TaskDetail ?? (object)DBNull.Value), - new SqlParameter("@createDate", model.CreateDate == default ? DateTime.Now : model.CreateDate) + new SqlParameter("@createDate", model.CreateDate == DateTime.MinValue ? DateTime.Now : model.CreateDate) }; object result = SQLHelper.ExecuteNonQuery(strSql, parameters, CommandType.Text); @@ -389,8 +383,8 @@ ProductNum, new SqlParameter("@ToleranceLower1", record.ToleranceLower1), new SqlParameter("@ToleranceUpper1", record.ToleranceUpper1), new SqlParameter("@MeasPointNominal", record.NominalValue), - new SqlParameter("@Date", record.MeasureDate == default ? DateTime.Now : record.MeasureDate), - new SqlParameter("@Time", record.MeasureTime == default ? DateTime.Now.TimeOfDay : record.MeasureTime), + new SqlParameter("@Date", record.MeasureDate == DateTime.MinValue ? DateTime.Now : record.MeasureDate), + new SqlParameter("@Time", record.MeasureTime == TimeSpan.Zero ? DateTime.Now.TimeOfDay : record.MeasureTime), new SqlParameter("@SeqNr", record.SequenceNum), new SqlParameter("@CreatedAt", DateTime.Now ) }; @@ -436,9 +430,6 @@ ProductNum, ToleranceName0 = @ToleranceName0, ToleranceLower0 = @ToleranceLower0, ToleranceUpper0 = @ToleranceUpper0, - ToleranceName1 = @ToleranceName1, - ToleranceLower1 = @ToleranceLower1, - ToleranceUpper1 = @ToleranceUpper1, NominalValue = @MeasPointNominal, SequenceNum = @SeqNr, CreatedAt = @CreatedAt @@ -457,9 +448,6 @@ ProductNum, new SqlParameter("@ToleranceName0", record.ToleranceName0 ?? (object)DBNull.Value), new SqlParameter("@ToleranceLower0", record.ToleranceLower0), new SqlParameter("@ToleranceUpper0", record.ToleranceUpper0), - new SqlParameter("@ToleranceName1", record.ToleranceName1 ?? (object)DBNull.Value), - new SqlParameter("@ToleranceLower1", record.ToleranceLower1), - new SqlParameter("@ToleranceUpper1", record.ToleranceUpper1), new SqlParameter("@MeasPointNominal", record.NominalValue), new SqlParameter("@SeqNr", record.SequenceNum), new SqlParameter("@CreatedAt", DateTime.Now), @@ -475,14 +463,12 @@ ProductNum, PointName, GroupName, ProductNum, Model, Station, Method, Standard, DimensionName, DimensionValue, DimensionUnit, IsManual, Classification, ToleranceName0, - ToleranceLower0, ToleranceUpper0, ToleranceName1, - ToleranceLower1, ToleranceUpper1, NominalValue, MeasureDate, MeasureTime, SequenceNum,CreatedAt + ToleranceLower0, ToleranceUpper0, NominalValue, MeasureDate, MeasureTime, SequenceNum,CreatedAt ) VALUES ( @MeasPointName, @MeasGroupName, @ProdNum, @Model, @Station, @MeasMethod, @TestStandard, @DimensionName, @DimensionValue, @DimensionUnit, @DimensionManualOverride, @DimensionClassification, @ToleranceName0, - @ToleranceLower0, @ToleranceUpper0, @ToleranceName1, - @ToleranceLower1, @ToleranceUpper1, @MeasPointNominal, @Date, @Time, @SeqNr,@CreatedAt + @ToleranceLower0, @ToleranceUpper0,@MeasPointNominal, @Date, @Time, @SeqNr,@CreatedAt )"; SqlParameter[] insertParas = new SqlParameter[] { @@ -501,12 +487,9 @@ ProductNum, new SqlParameter("@ToleranceName0", record.ToleranceName0 ?? (object)DBNull.Value), new SqlParameter("@ToleranceLower0", record.ToleranceLower0), new SqlParameter("@ToleranceUpper0", record.ToleranceUpper0), - new SqlParameter("@ToleranceName1", record.ToleranceName1 ?? (object)DBNull.Value), - new SqlParameter("@ToleranceLower1", record.ToleranceLower1), - new SqlParameter("@ToleranceUpper1", record.ToleranceUpper1), new SqlParameter("@MeasPointNominal", record.NominalValue), - new SqlParameter("@Date", record.MeasureDate == default ? DateTime.Now : record.MeasureDate), - new SqlParameter("@Time", record.MeasureTime == default ? DateTime.Now.TimeOfDay : record.MeasureTime), + new SqlParameter("@Date", record.MeasureDate == DateTime.MinValue ? DateTime.Now : record.MeasureDate), + new SqlParameter("@Time", record.MeasureTime == TimeSpan.Zero ? DateTime.Now.TimeOfDay : record.MeasureTime), new SqlParameter("@SeqNr", record.SequenceNum), new SqlParameter("@CreatedAt", DateTime.Now) }; @@ -592,11 +575,8 @@ ProductNum, #endregion - - #region 记录文件是否已经处理 - // 判断文件是否已处理 public bool IsFileProcessed(string fileName) { diff --git a/Analysis/Define/Define.cs b/Analysis/Define/Define.cs index 3c0e9c9..cd00464 100644 --- a/Analysis/Define/Define.cs +++ b/Analysis/Define/Define.cs @@ -158,7 +158,7 @@ namespace NSAnalysis FileIni.WriteString(strConfigFile, strSection, "SoftwareHelpDocument", strHelpDocumentName); FileIni.WriteString(strConfigFile, strSection, "CNCPictureName", Path.GetFileName(strImagePath)); FileIni.WriteBool(strConfigFile, strSection, "Language", bLanguage); - FileIni.WriteBool(strConfigFile, strSection, "RememberMe", bRememberMe ); + FileIni.WriteBool(strConfigFile, strSection, "RememberMe", bRememberMe); FileIni.WriteString(strConfigFile, strSection, "Password", strPwd); FileIni.WriteBool(strConfigFile, strSection, "EnableSort", iEnableSort); FileIni.WriteInt(strConfigFile, strSection, "AnalysisCSVFlag", iAnalysisCSVFlag); diff --git a/Analysis/FormMain.cs b/Analysis/FormMain.cs index b0a11ac..901bcdc 100644 --- a/Analysis/FormMain.cs +++ b/Analysis/FormMain.cs @@ -1,8 +1,5 @@ using BaseFunction; - using NSAnalysis.DAL; -using NSAnalysis.Model; - using System; using System.Collections.Generic; using System.Data; @@ -16,6 +13,34 @@ using Telerik.WinControls.UI; namespace NSAnalysis { + /// + /// + /// + /// + /// 2025.08.28 + /// ---------------------------------------------- + /// 1、当解析文件时,增加备份到根目录 + /// 2、解析失败或提取有效内容失败,移动到源文件夹的Error文件夹 + /// 3、修复查询结果,显示错误问题 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public partial class FormMain : Telerik.WinControls.UI.ShapedForm { private Timer fileSortTimer = new Timer(); // 定时器,用于定时分发任务 @@ -83,16 +108,6 @@ namespace NSAnalysis rdtpStartTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); rdtpEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); - // 定时处理任务 - fileSortTimer.Interval = 10000; // 每60秒检查一次分发任务 - fileSortTimer.Tick += FileSortTimer_Tick; - fileSortTimer.Start(); - - // 订阅处理中事件 - fileSorter.OnFileParsed += FileSorter_OnFileParsed; - fileSorter.OnProcessStep += FileSorter_OnProcessStep; - - //绑定按钮 lpcSoftwareSetup.labPicture.Click += new EventHandler(lpcSoftwareSetup_Click); lpcSoftwareSetup.labText.Click += new EventHandler(lpcSoftwareSetup_Click); @@ -140,6 +155,39 @@ namespace NSAnalysis } } + private void FormMain_FormClosed(object sender, FormClosedEventArgs e) + { + MyBase.TraceWriteLine("-------------海克斯康面隙分析软件程序关闭---------------------"); + LogDebugDfn.strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); + string CopyFileName = ConfigDfn.strFileFolder + "\\DebugFiles\\" + "Debug(" + LogDebugDfn.strStartTime + " To " + LogDebugDfn.strEndTime + ")" + ".txt"; + if (File.Exists(LogDebugDfn.strDebugFile)) + File.Copy(LogDebugDfn.strDebugFile, CopyFileName); + System.Environment.Exit(0); + } + + private void FormMain_Resize(object sender, EventArgs e) + { + ScaleControls(this); + } + + private void FormMain_Shown(object sender, EventArgs e) + { + // 定时处理任务 + fileSortTimer.Interval = 15000; // 每60秒检查一次分发任务 + fileSortTimer.Tick += FileSortTimer_Tick; + fileSortTimer.Start(); + + // 订阅处理中事件 + fileSorter.OnFileParsed += FileSorter_OnFileParsed; + fileSorter.OnProcessStep += FileSorter_OnProcessStep; + + //记录到日志 + MyBase.TraceWriteLine("-------------海克斯康面隙分析软件程序启动---------------------"); + } + + #endregion 主窗口事件 + + #region 方法 private void ClearLabel() { @@ -231,53 +279,6 @@ namespace NSAnalysis #endregion 分页相关 } - private void FormMain_FormClosing(object sender, FormClosingEventArgs e) - { - if (DialogResult.Yes == MessageBox.Show("警告:您确定要退出该软件系统吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) - { - } - else - { - e.Cancel = true; - } - } - - private void FormMain_FormClosed(object sender, FormClosedEventArgs e) - { - MyBase.TraceWriteLine("-------------海克斯康面隙分析软件程序关闭---------------------"); - LogDebugDfn.strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); - string CopyFileName = ConfigDfn.strFileFolder + "\\DebugFiles\\" + "Debug(" + LogDebugDfn.strStartTime + " To " + LogDebugDfn.strEndTime + ")" + ".txt"; - if (File.Exists(LogDebugDfn.strDebugFile)) - File.Copy(LogDebugDfn.strDebugFile, CopyFileName); - System.Environment.Exit(0); - } - - #endregion 主窗口事件 - - private void tmSystem_Tick(object sender, EventArgs e) - { - rleTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - if (ConfigDfn.iAnalysisCSVFlag == 1) - rleReadCSVStatus.ForeColor = bReadCSVFlag ? Color.Green : Color.White; - bReadCSVFlag = !bReadCSVFlag; - } - - private void FileSortTimer_Tick(object sender, EventArgs e) //分发定时器 - { - // 后台运行,避免阻塞UI - Task.Run(() => - { - try - { - fileSorter.ProcessFiles(); - } - catch (Exception ex) - { - MyBase.TraceWriteLine($"分发任务异常: {ex.Message}"); - } - }); - } - private void DisplayMeasureData(string strCarID) // 其中 string strCarID 是车身ID_L 或 车身ID_R { try @@ -478,189 +479,44 @@ namespace NSAnalysis } } - #region 按钮事件 - - #region datagridview分页功能 - - private void LoadPage() + private void StoreControlRatios(Control container) { - if (currentPage < 1) currentPage = 1; - if (currentPage > pageCount) currentPage = pageCount; - - int beginRecord; //开始指针 - int endRecord; //结束指针 - DataTable dtTemp; - dtTemp = PageTable.Clone();//Clone方法只会复制DataTable的结构(列定义),而不会复制数据行的引用。 - - beginRecord = pageSize * (currentPage - 1); - if (currentPage == 1) beginRecord = 0; - endRecord = pageSize * currentPage; - - if (currentPage == pageCount) endRecord = recordCount; - for (int i = beginRecord; i < endRecord; i++) + foreach (Control ctrl in container.Controls) { - // 使用ImportRow方法将源PageTable的行导入到目标dtTemp - dtTemp.ImportRow(PageTable.Rows[i]); - } + // 存储位置比例 + originalRatios.Add(ctrl, + new PointF((float)ctrl.Left / container.Width, + (float)ctrl.Top / container.Height)); - dgvSelectMeasureData.Rows.Clear(); + // 存储尺寸比例 + originalSizes.Add(ctrl, + new SizeF((float)ctrl.Width / container.Width, + (float)ctrl.Height / container.Height)); - for (int i = 0; i < dtTemp.Rows.Count; i++) - { - dgvSelectMeasureData.Rows.Add(new object[] { dtTemp.Rows[i][0], dtTemp.Rows[i][1], dtTemp.Rows[i][2], dtTemp.Rows[i][3], dtTemp.Rows[i][4], dtTemp.Rows[i][5], dtTemp.Rows[i][6], dtTemp.Rows[i][7], dtTemp.Rows[i][8] }); - } - SetdgvRowBgColor(dgvSelectMeasureData); - for (int i = 0; i < dgvSelectMeasureData.Rows.Count; i++) - { - string strResult = dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Value.ToString(); - if (strResult.ToLower().Contains("ng")) - { - //dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Orange; - dgvSelectMeasureData.Rows[i].DefaultCellStyle.BackColor = Color.Orange; - } - if (strResult.ToLower().Contains("rej")) - { - dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Red; - } - } - labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 - labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 - labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 - } - - private void rbtnFirtstPage_Click(object sender, EventArgs e) - { - if (currentPage == 1) - { return; } - currentPage = 1; - LoadPage(); - } - - private void rbtnPrevPage_Click(object sender, EventArgs e) - { - if (currentPage == 1) - { return; } - currentPage--; - LoadPage(); - } - - private void rbtnNextPage_Click(object sender, EventArgs e) - { - if (currentPage == pageCount) - { return; } - currentPage++; - LoadPage(); - } - - private void rbtnLastPage_Click(object sender, EventArgs e) - { - if (currentPage == pageCount) - { return; } - currentPage = pageCount; - LoadPage(); - } - - private void rddlPageRecorderCount_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) - { - pageSize = int.Parse(rddlPageRecorderCount.Text.Trim()); - //PageSorter(); - } - - #endregion datagridview分页功能 - - private void rbtnSearchMeaserData_Click(object sender, EventArgs e) - { - dgvFPYResult.Visible = false; - chartFPYLine.Visible = false; - rbtnExportCSVReport.Visible = false; - string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; - string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; - string strCarID = rtbPartID.Text.Trim(); - PageTable.Clear(); - PageTable = tmdal.SelectTMeasureDataByCarIDAndTime(strCarID, strStartTime, strEndTime); - if (PageTable.Rows.Count > 0) - { - recordCount = PageTable.Rows.Count; //记录总行数 - pageCount = (recordCount / pageSize); - if ((recordCount % pageSize) > 0) - { - pageCount++; - } - - //默认第一页 - currentPage = 1; - - LoadPage();//调用加载数据的方法 - dgvSelectMeasureData.Visible = true; - rbtnExportCSVReport.Visible = true; - pnlPage.Visible = true; - labSearchResult.Visible = false; - pnlPage.Visible = true; - } - else - { - dgvSelectMeasureData.Visible = false; - labSearchResult.Visible = true; - rbtnExportCSVReport.Visible = false; - pnlPage.Visible = false; + // 递归处理容器控件 + if (ctrl.HasChildren) StoreControlRatios(ctrl); } } - private void rbtSelectFPY_Click(object sender, EventArgs e) + private void ScaleControls(Control container) { - dgvSelectMeasureData.Visible = false; - rbtnExportCSVReport.Visible = false; - pnlPage.Visible = false; - string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; - string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; - string strCarID = rtbPartID.Text.Trim(); - DataTable dtFPY = new DataTable(); - dtFPY = tmdal.SelectTMeasureResultByTime(strCarID, strStartTime, strEndTime); - if (dtFPY.Rows.Count > 0) + foreach (var item in originalRatios) { - dgvFPYResult.Visible = true; - labSearchResult.Visible = false; - rbtnExportCSVReport.Visible = true; - chartFPYLine.Visible = true; - dgvFPYResult.DataSource = dtFPY; - SetdgvRowBgColor(dgvFPYResult); - for (int i = 0; i < dgvFPYResult.Rows.Count; i++) + if (!container.Controls.Contains(item.Key)) continue; + + // 调整位置 + item.Key.Left = (int)(container.Width * item.Value.X); + item.Key.Top = (int)(container.Height * item.Value.Y); + + // 调整大小 + if (originalSizes.TryGetValue(item.Key, out SizeF sizeRatio)) { - if (dgvFPYResult.Rows[i].Cells["SMResult"].Value.ToString().ToLower().Contains("不合格")) - { - dgvFPYResult.Rows[i].Cells["SMResult"].Style.ForeColor = Color.Red; - } + item.Key.Width = (int)(container.Width * sizeRatio.Width); + item.Key.Height = (int)(container.Height * sizeRatio.Height); } - #region 合格率折线图 - - //合格率折线图 - string[] strXDate = new string[dtFPY.Rows.Count]; - double[] dFPYResult = new double[dtFPY.Rows.Count]; - for (int i = 0; i < dtFPY.Rows.Count; i++) - { - strXDate[i] = dtFPY.Rows[i]["CarID"].ToString(); - } - for (int i = 0; i < dtFPY.Rows.Count; i++) - { - double dResult = double.Parse(dtFPY.Rows[i]["FPY"].ToString()); - dFPYResult[i] = dResult * 100.00; - } - chartFPYLine.ChartAreas[0].AxisX.LabelStyle.Angle = -50; //X轴标签倾斜角度设置 - chartFPYLine.ChartAreas[0].AxisY.LabelStyle.Format = "{0:F2}" + "%"; //设置Y轴值的格式化 带% - chartFPYLine.Series[0].Label = "#VAL%"; //设置显示Y的值 - chartFPYLine.Series[0].LabelForeColor = Color.White; - chartFPYLine.Series[0].ToolTip = "车身编号 : #VALX \r\n合格率 : #VAL%"; //鼠标移动到对应点显示数值 - chartFPYLine.Series[0].Points.DataBindXY(strXDate, dFPYResult); - - #endregion 合格率折线图 - } - else - { - dgvFPYResult.Visible = false; - labSearchResult.Visible = true; - rbtnExportCSVReport.Visible = false; - chartFPYLine.Visible = false; + // 递归处理容器控件 + if (item.Key.HasChildren) ScaleControls(item.Key); } } @@ -722,7 +578,220 @@ namespace NSAnalysis File.WriteAllText(filePath, sb.ToString()); } - private void rbtnExportCSVReport_Click(object sender, EventArgs e) + #endregion 方法 + + #region datagridview分页功能 + + private void LoadPage() + { + if (currentPage < 1) currentPage = 1; + if (currentPage > pageCount) currentPage = pageCount; + + int beginRecord; //开始指针 + int endRecord; //结束指针 + DataTable dtTemp; + dtTemp = PageTable.Clone();//Clone方法只会复制DataTable的结构(列定义),而不会复制数据行的引用。 + + beginRecord = pageSize * (currentPage - 1); + if (currentPage == 1) beginRecord = 0; + endRecord = pageSize * currentPage; + + if (currentPage == pageCount) endRecord = recordCount; + for (int i = beginRecord; i < endRecord; i++) + { + // 使用ImportRow方法将源PageTable的行导入到目标dtTemp + dtTemp.ImportRow(PageTable.Rows[i]); + } + + dgvSelectMeasureData.Rows.Clear(); + + for (int i = 0; i < dtTemp.Rows.Count; i++) + { + dgvSelectMeasureData.Rows.Add(new object[] { dtTemp.Rows[i][0], dtTemp.Rows[i][1], dtTemp.Rows[i][2], dtTemp.Rows[i][3], dtTemp.Rows[i][4], dtTemp.Rows[i][5], dtTemp.Rows[i][6], dtTemp.Rows[i][7], dtTemp.Rows[i][8], dtTemp.Rows[i][9] }); + } + + SetdgvRowBgColor(dgvSelectMeasureData); + for (int i = 0; i < dgvSelectMeasureData.Rows.Count; i++) + { + string strResult = dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Value.ToString(); + if (strResult.ToLower().Contains("ng")) + { + //dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Orange; + dgvSelectMeasureData.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + if (strResult.ToLower().Contains("rej")) + { + dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Red; + } + } + labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 + labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 + labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 + } + + private void rbtnFirtstPage_Click(object sender, EventArgs e) //首页 + { + if (currentPage == 1) + { return; } + currentPage = 1; + LoadPage(); + } + + private void rbtnPrevPage_Click(object sender, EventArgs e) //上一页 + { + if (currentPage == 1) + { return; } + currentPage--; + LoadPage(); + } + + private void rbtnNextPage_Click(object sender, EventArgs e) //下一页 + { + if (currentPage == pageCount) + { return; } + currentPage++; + LoadPage(); + } + + private void rbtnLastPage_Click(object sender, EventArgs e) //尾页 + { + if (currentPage == pageCount) + { return; } + currentPage = pageCount; + LoadPage(); + } + + private void rddlPageRecorderCount_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) + { + pageSize = int.Parse(rddlPageRecorderCount.Text.Trim()); + //PageSorter(); + } + + #endregion datagridview分页功能 + + private void tmSystem_Tick(object sender, EventArgs e) + { + rleTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + if (ConfigDfn.iAnalysisCSVFlag == 1) + rleReadCSVStatus.ForeColor = bReadCSVFlag ? Color.Green : Color.White; + bReadCSVFlag = !bReadCSVFlag; + } + + private void FileSortTimer_Tick(object sender, EventArgs e) //分发定时器 + { + // 后台运行,避免阻塞UI + Task.Run(() => + { + try + { + fileSorter.ProcessFiles(); + } + catch (Exception ex) + { + MyBase.TraceWriteLine($"分发任务异常: {ex.Message}"); + } + }); + } + + #region 事件 + + private void rbtnSearchMeaserData_Click(object sender, EventArgs e) //查询测量数据 + { + dgvFPYResult.Visible = false; + chartFPYLine.Visible = false; + rbtnExportCSVReport.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + PageTable.Clear(); + PageTable = tmdal.SelectTMeasureDataByCarIDAndTime(strCarID, strStartTime, strEndTime); + if (PageTable.Rows.Count > 0) + { + recordCount = PageTable.Rows.Count; //记录总行数 + pageCount = (recordCount / pageSize); + if ((recordCount % pageSize) > 0) + { + pageCount++; + } + + //默认第一页 + currentPage = 1; + + LoadPage();//调用加载数据的方法 + dgvSelectMeasureData.Visible = true; + rbtnExportCSVReport.Visible = true; + pnlPage.Visible = true; + labSearchResult.Visible = false; + pnlPage.Visible = true; + } + else + { + dgvSelectMeasureData.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + } + } + + private void rbtSelectFPY_Click(object sender, EventArgs e) //查询合格率 + { + dgvSelectMeasureData.Visible = false; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + DataTable dtFPY = new DataTable(); + dtFPY = tmdal.SelectTMeasureResultByTime(strCarID, strStartTime, strEndTime); + if (dtFPY.Rows.Count > 0) + { + dgvFPYResult.Visible = true; + labSearchResult.Visible = false; + rbtnExportCSVReport.Visible = true; + chartFPYLine.Visible = true; + dgvFPYResult.DataSource = dtFPY; + SetdgvRowBgColor(dgvFPYResult); + for (int i = 0; i < dgvFPYResult.Rows.Count; i++) + { + if (dgvFPYResult.Rows[i].Cells["SMResult"].Value.ToString().ToLower().Contains("不合格")) + { + dgvFPYResult.Rows[i].Cells["SMResult"].Style.ForeColor = Color.Red; + } + } + + #region 合格率折线图 + + //合格率折线图 + string[] strXDate = new string[dtFPY.Rows.Count]; + double[] dFPYResult = new double[dtFPY.Rows.Count]; + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + strXDate[i] = dtFPY.Rows[i]["CarID"].ToString(); + } + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + double dResult = double.Parse(dtFPY.Rows[i]["FPY"].ToString()); + dFPYResult[i] = dResult * 100.00; + } + chartFPYLine.ChartAreas[0].AxisX.LabelStyle.Angle = -50; //X轴标签倾斜角度设置 + chartFPYLine.ChartAreas[0].AxisY.LabelStyle.Format = "{0:F2}" + "%"; //设置Y轴值的格式化 带% + chartFPYLine.Series[0].Label = "#VAL%"; //设置显示Y的值 + chartFPYLine.Series[0].LabelForeColor = Color.White; + chartFPYLine.Series[0].ToolTip = "车身编号 : #VALX \r\n合格率 : #VAL%"; //鼠标移动到对应点显示数值 + chartFPYLine.Series[0].Points.DataBindXY(strXDate, dFPYResult); + + #endregion 合格率折线图 + } + else + { + dgvFPYResult.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + chartFPYLine.Visible = false; + } + } + + private void rbtnExportCSVReport_Click(object sender, EventArgs e) //导出CSV报表 { string strCSVExportPath = ""; string strExportTime = DateTime.Now.ToString("yyyyMMddHHmmssfff"); @@ -782,7 +851,7 @@ namespace NSAnalysis e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); } - private void lpcSoftwareSetup_Click(object sender, EventArgs e) + private void lpcSoftwareSetup_Click(object sender, EventArgs e) //软件设置 { //string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); //if (strInputPwd.Contains("-999.999")) @@ -800,7 +869,7 @@ namespace NSAnalysis //} } - private void lpcToleranceSetup_Click(object sender, EventArgs e) + private void lpcToleranceSetup_Click(object sender, EventArgs e) //分发设置 { //string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); //if (strInputPwd.Contains("-999.999")) @@ -818,66 +887,18 @@ namespace NSAnalysis //} } - private void lpcAboutSoftware_Click(object sender, EventArgs e) + private void lpcAboutSoftware_Click(object sender, EventArgs e) //关于软件 { - AboutSoftwareInfo asi = new AboutSoftwareInfo(); + AboutSoftware asi = new AboutSoftware(); asi.ShowDialog(); } - private void lpcShowLog_Click(object sender, EventArgs e) + private void lpcShowLog_Click(object sender, EventArgs e) //查看日志 { System.Diagnostics.Process.Start("notepad.exe", LogDebugDfn.strDebugFile); } - #endregion 按钮事件 - - private void StoreControlRatios(Control container) - { - foreach (Control ctrl in container.Controls) - { - // 存储位置比例 - originalRatios.Add(ctrl, - new PointF((float)ctrl.Left / container.Width, - (float)ctrl.Top / container.Height)); - - // 存储尺寸比例 - originalSizes.Add(ctrl, - new SizeF((float)ctrl.Width / container.Width, - (float)ctrl.Height / container.Height)); - - // 递归处理容器控件 - if (ctrl.HasChildren) StoreControlRatios(ctrl); - } - } - - private void ScaleControls(Control container) - { - foreach (var item in originalRatios) - { - if (!container.Controls.Contains(item.Key)) continue; - - // 调整位置 - item.Key.Left = (int)(container.Width * item.Value.X); - item.Key.Top = (int)(container.Height * item.Value.Y); - - // 调整大小 - if (originalSizes.TryGetValue(item.Key, out SizeF sizeRatio)) - { - item.Key.Width = (int)(container.Width * sizeRatio.Width); - item.Key.Height = (int)(container.Height * sizeRatio.Height); - } - - // 递归处理容器控件 - if (item.Key.HasChildren) ScaleControls(item.Key); - } - } - - private void FormMain_Resize(object sender, EventArgs e) - { - ScaleControls(this); - } - - + #endregion 事件 } public class AnalysisResult diff --git a/Analysis/FormMain.designer.cs b/Analysis/FormMain.designer.cs index bf7cb40..6865c8a 100644 --- a/Analysis/FormMain.designer.cs +++ b/Analysis/FormMain.designer.cs @@ -32,22 +32,22 @@ namespace NSAnalysis { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); - Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); - Telerik.WinControls.UI.RadListDataItem radListDataItem3 = new Telerik.WinControls.UI.RadListDataItem(); - Telerik.WinControls.UI.RadListDataItem radListDataItem4 = new Telerik.WinControls.UI.RadListDataItem(); - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); + Telerik.WinControls.UI.RadListDataItem radListDataItem5 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem6 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem7 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem8 = new Telerik.WinControls.UI.RadListDataItem(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); this.label2 = new System.Windows.Forms.Label(); this.labTitle = new System.Windows.Forms.Label(); @@ -105,23 +105,14 @@ namespace NSAnalysis this.rbtnExportCSVReport = new Telerik.WinControls.UI.RadButton(); this.rtbPartID = new Telerik.WinControls.UI.RadTextBox(); this.rbtSelectFPY = new Telerik.WinControls.UI.RadButton(); + this.chartFPYLine = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.rdtpStartTime = new Telerik.WinControls.UI.RadDateTimePicker(); this.rdtpEndTime = new Telerik.WinControls.UI.RadDateTimePicker(); this.rbtnSearchMeaserData = new Telerik.WinControls.UI.RadButton(); this.radLabel15 = new Telerik.WinControls.UI.RadLabel(); this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); this.radLabel11 = new Telerik.WinControls.UI.RadLabel(); - this.chartFPYLine = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.dgvSelectMeasureData = new System.Windows.Forms.DataGridView(); - this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.MeasureItemResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvFPYResult = new System.Windows.Forms.DataGridView(); this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -137,6 +128,16 @@ namespace NSAnalysis this.lpcSoftwareSetup = new UserControlClass.LabPictureControl(); this.lpcAboutSoftware = new UserControlClass.LabPictureControl(); this.tmSystem = new System.Windows.Forms.Timer(this.components); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Model = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasureItemResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); this.radTitleBar1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).BeginInit(); @@ -159,13 +160,13 @@ namespace NSAnalysis ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).BeginInit(); this.rpvpSetup.SuspendLayout(); @@ -245,7 +246,7 @@ namespace NSAnalysis this.commandBarSeparator3, this.rleMessageText, this.rleMessage}); - this.radStatusStrip1.Location = new System.Drawing.Point(1, 1002); + this.radStatusStrip1.Location = new System.Drawing.Point(9, 817); this.radStatusStrip1.Name = "radStatusStrip1"; this.radStatusStrip1.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); this.radStatusStrip1.Size = new System.Drawing.Size(1535, 26); @@ -334,7 +335,7 @@ namespace NSAnalysis this.RPV.Location = new System.Drawing.Point(1, 38); this.RPV.Name = "RPV"; this.RPV.SelectedPage = this.rpvpAnalysis; - this.RPV.Size = new System.Drawing.Size(1543, 958); + this.RPV.Size = new System.Drawing.Size(1543, 770); this.RPV.TabIndex = 127; this.RPV.ViewMode = Telerik.WinControls.UI.PageViewMode.NavigationView; ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).DisplayMode = Telerik.WinControls.UI.NavigationViewDisplayModes.Compact; @@ -463,7 +464,7 @@ namespace NSAnalysis this.rpvpAnalysis.ItemSize = new System.Drawing.SizeF(46F, 46F); this.rpvpAnalysis.Location = new System.Drawing.Point(49, 35); this.rpvpAnalysis.Name = "rpvpAnalysis"; - this.rpvpAnalysis.Size = new System.Drawing.Size(1493, 922); + this.rpvpAnalysis.Size = new System.Drawing.Size(1493, 734); this.rpvpAnalysis.Text = " 分析主界面"; // // groupBox4 @@ -483,9 +484,9 @@ namespace NSAnalysis this.groupBox4.Controls.Add(this.label8); this.groupBox4.Controls.Add(this.label12); this.groupBox4.ForeColor = System.Drawing.Color.White; - this.groupBox4.Location = new System.Drawing.Point(991, 255); + this.groupBox4.Location = new System.Drawing.Point(1038, 167); this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(495, 311); + this.groupBox4.Size = new System.Drawing.Size(448, 311); this.groupBox4.TabIndex = 199; this.groupBox4.TabStop = false; this.groupBox4.Text = "解析概览"; @@ -647,9 +648,9 @@ namespace NSAnalysis // panel2 // this.panel2.Controls.Add(this.dgvMeasureContent); - this.panel2.Location = new System.Drawing.Point(3, 255); + this.panel2.Location = new System.Drawing.Point(3, 167); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(968, 664); + this.panel2.Size = new System.Drawing.Size(1019, 561); this.panel2.TabIndex = 216; // // dgvMeasureContent @@ -659,14 +660,14 @@ namespace NSAnalysis this.dgvMeasureContent.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); this.dgvMeasureContent.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvMeasureContent.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvMeasureContent.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle10.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle10.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10; this.dgvMeasureContent.ColumnHeadersHeight = 38; this.dgvMeasureContent.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.PointName, @@ -684,23 +685,23 @@ namespace NSAnalysis this.dgvMeasureContent.Name = "dgvMeasureContent"; this.dgvMeasureContent.ReadOnly = true; this.dgvMeasureContent.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvMeasureContent.RowHeadersDefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle11.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle11.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle11.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.RowHeadersDefaultCellStyle = dataGridViewCellStyle11; this.dgvMeasureContent.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; - dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 10F); - dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - this.dgvMeasureContent.RowsDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle12.Font = new System.Drawing.Font("Segoe UI", 10F); + dataGridViewCellStyle12.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle12.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvMeasureContent.RowsDefaultCellStyle = dataGridViewCellStyle12; this.dgvMeasureContent.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Segoe UI", 10F); this.dgvMeasureContent.RowTemplate.Height = 38; - this.dgvMeasureContent.Size = new System.Drawing.Size(968, 664); + this.dgvMeasureContent.Size = new System.Drawing.Size(1019, 561); this.dgvMeasureContent.TabIndex = 198; // // PointName @@ -728,7 +729,6 @@ namespace NSAnalysis this.NormalVal.Name = "NormalVal"; this.NormalVal.ReadOnly = true; this.NormalVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.NormalVal.Visible = false; // // LowerTolVal // @@ -776,7 +776,7 @@ namespace NSAnalysis this.panel1.Dock = System.Windows.Forms.DockStyle.Top; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1493, 241); + this.panel1.Size = new System.Drawing.Size(1493, 161); this.panel1.TabIndex = 215; // // lbCSVFiles @@ -791,7 +791,7 @@ namespace NSAnalysis this.lbCSVFiles.ItemHeight = 19; this.lbCSVFiles.Location = new System.Drawing.Point(3, 4); this.lbCSVFiles.Name = "lbCSVFiles"; - this.lbCSVFiles.Size = new System.Drawing.Size(1483, 230); + this.lbCSVFiles.Size = new System.Drawing.Size(1483, 154); this.lbCSVFiles.TabIndex = 198; // // rpvpSearch @@ -799,14 +799,13 @@ namespace NSAnalysis this.rpvpSearch.Controls.Add(this.pnlPage); this.rpvpSearch.Controls.Add(this.labSearchResult); this.rpvpSearch.Controls.Add(this.radGroupBox1); - this.rpvpSearch.Controls.Add(this.chartFPYLine); this.rpvpSearch.Controls.Add(this.dgvSelectMeasureData); this.rpvpSearch.Controls.Add(this.dgvFPYResult); this.rpvpSearch.Image = ((System.Drawing.Image)(resources.GetObject("rpvpSearch.Image"))); this.rpvpSearch.ItemSize = new System.Drawing.SizeF(46F, 46F); this.rpvpSearch.Location = new System.Drawing.Point(49, 35); this.rpvpSearch.Name = "rpvpSearch"; - this.rpvpSearch.Size = new System.Drawing.Size(1493, 922); + this.rpvpSearch.Size = new System.Drawing.Size(1493, 734); this.rpvpSearch.Text = " 查询界面"; // // pnlPage @@ -820,7 +819,7 @@ namespace NSAnalysis this.pnlPage.Controls.Add(this.labSumRecorders); this.pnlPage.Controls.Add(this.labSumPages); this.pnlPage.Controls.Add(this.labCurrentPage); - this.pnlPage.Location = new System.Drawing.Point(1, 881); + this.pnlPage.Location = new System.Drawing.Point(3, 689); this.pnlPage.Name = "pnlPage"; this.pnlPage.Size = new System.Drawing.Size(1159, 42); this.pnlPage.TabIndex = 177; @@ -832,14 +831,14 @@ namespace NSAnalysis this.rddlPageRecorderCount.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; this.rddlPageRecorderCount.Font = new System.Drawing.Font("Segoe UI", 12F); this.rddlPageRecorderCount.ForeColor = System.Drawing.Color.White; - radListDataItem1.Text = "20"; - radListDataItem2.Text = "50"; - radListDataItem3.Text = "100"; - radListDataItem4.Text = "200"; - this.rddlPageRecorderCount.Items.Add(radListDataItem1); - this.rddlPageRecorderCount.Items.Add(radListDataItem2); - this.rddlPageRecorderCount.Items.Add(radListDataItem3); - this.rddlPageRecorderCount.Items.Add(radListDataItem4); + radListDataItem5.Text = "20"; + radListDataItem6.Text = "50"; + radListDataItem7.Text = "100"; + radListDataItem8.Text = "200"; + this.rddlPageRecorderCount.Items.Add(radListDataItem5); + this.rddlPageRecorderCount.Items.Add(radListDataItem6); + this.rddlPageRecorderCount.Items.Add(radListDataItem7); + this.rddlPageRecorderCount.Items.Add(radListDataItem8); this.rddlPageRecorderCount.Location = new System.Drawing.Point(718, 9); this.rddlPageRecorderCount.Name = "rddlPageRecorderCount"; // @@ -1058,7 +1057,7 @@ namespace NSAnalysis this.labSearchResult.BackColor = System.Drawing.Color.Transparent; this.labSearchResult.Font = new System.Drawing.Font("Segoe UI", 12F); this.labSearchResult.ForeColor = System.Drawing.Color.Red; - this.labSearchResult.Location = new System.Drawing.Point(273, 459); + this.labSearchResult.Location = new System.Drawing.Point(273, 365); this.labSearchResult.Name = "labSearchResult"; this.labSearchResult.Size = new System.Drawing.Size(452, 21); this.labSearchResult.TabIndex = 176; @@ -1074,6 +1073,7 @@ namespace NSAnalysis this.radGroupBox1.Controls.Add(this.rbtnExportCSVReport); this.radGroupBox1.Controls.Add(this.rtbPartID); this.radGroupBox1.Controls.Add(this.rbtSelectFPY); + this.radGroupBox1.Controls.Add(this.chartFPYLine); this.radGroupBox1.Controls.Add(this.rdtpStartTime); this.radGroupBox1.Controls.Add(this.rdtpEndTime); this.radGroupBox1.Controls.Add(this.rbtnSearchMeaserData); @@ -1085,7 +1085,7 @@ namespace NSAnalysis this.radGroupBox1.HeaderText = "查询条件"; this.radGroupBox1.Location = new System.Drawing.Point(3, 3); this.radGroupBox1.Name = "radGroupBox1"; - this.radGroupBox1.Size = new System.Drawing.Size(1520, 86); + this.radGroupBox1.Size = new System.Drawing.Size(1491, 108); this.radGroupBox1.TabIndex = 20; this.radGroupBox1.Text = "查询条件"; ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox1.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(158)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); @@ -1109,7 +1109,7 @@ namespace NSAnalysis this.rbtnExportCSVReport.Font = new System.Drawing.Font("Segoe UI", 12F); this.rbtnExportCSVReport.ForeColor = System.Drawing.Color.White; this.rbtnExportCSVReport.Image = global::NSAnalysis.Properties.Resources.export; - this.rbtnExportCSVReport.Location = new System.Drawing.Point(1120, 29); + this.rbtnExportCSVReport.Location = new System.Drawing.Point(1105, 29); this.rbtnExportCSVReport.Name = "rbtnExportCSVReport"; this.rbtnExportCSVReport.Size = new System.Drawing.Size(144, 40); this.rbtnExportCSVReport.TabIndex = 8; @@ -1131,7 +1131,7 @@ namespace NSAnalysis this.rtbPartID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); this.rtbPartID.Font = new System.Drawing.Font("Segoe UI", 12F); this.rtbPartID.ForeColor = System.Drawing.Color.White; - this.rtbPartID.Location = new System.Drawing.Point(106, 37); + this.rtbPartID.Location = new System.Drawing.Point(91, 36); this.rtbPartID.MaxLength = 50; this.rtbPartID.Name = "rtbPartID"; this.rtbPartID.Size = new System.Drawing.Size(192, 27); @@ -1146,7 +1146,7 @@ namespace NSAnalysis this.rbtSelectFPY.Font = new System.Drawing.Font("Segoe UI", 12F); this.rbtSelectFPY.ForeColor = System.Drawing.Color.White; this.rbtSelectFPY.Image = global::NSAnalysis.Properties.Resources.search16; - this.rbtSelectFPY.Location = new System.Drawing.Point(1278, 29); + this.rbtSelectFPY.Location = new System.Drawing.Point(1263, 29); this.rbtSelectFPY.Name = "rbtSelectFPY"; this.rbtSelectFPY.Size = new System.Drawing.Size(146, 40); this.rbtSelectFPY.TabIndex = 8; @@ -1163,15 +1163,66 @@ namespace NSAnalysis ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); // + // chartFPYLine + // + this.chartFPYLine.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.chartFPYLine.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.AxisX.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisX.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; + chartArea2.AxisX.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.TitleForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; + chartArea2.AxisY.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.TitleForeColor = System.Drawing.Color.White; + chartArea2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.Name = "ChartArea1"; + this.chartFPYLine.ChartAreas.Add(chartArea2); + this.chartFPYLine.Location = new System.Drawing.Point(1434, 29); + this.chartFPYLine.Name = "chartFPYLine"; + series2.BorderWidth = 3; + series2.ChartArea = "ChartArea1"; + series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series2.Color = System.Drawing.Color.Lime; + series2.MarkerSize = 9; + series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; + series2.Name = "Series1"; + this.chartFPYLine.Series.Add(series2); + this.chartFPYLine.Size = new System.Drawing.Size(49, 48); + this.chartFPYLine.TabIndex = 77; + this.chartFPYLine.Text = "chartFPY"; + title2.Font = new System.Drawing.Font("微软雅黑", 12F); + title2.ForeColor = System.Drawing.Color.White; + title2.Name = "Title1"; + title2.Text = "合格率"; + this.chartFPYLine.Titles.Add(title2); + this.chartFPYLine.Visible = false; + // // rdtpStartTime // this.rdtpStartTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpStartTime.AutoSize = false; this.rdtpStartTime.Font = new System.Drawing.Font("Segoe UI", 12F); this.rdtpStartTime.ForeColor = System.Drawing.Color.White; - this.rdtpStartTime.Location = new System.Drawing.Point(446, 37); + this.rdtpStartTime.Location = new System.Drawing.Point(431, 34); this.rdtpStartTime.MinDate = new System.DateTime(2020, 1, 1, 0, 0, 0, 0); + this.rdtpStartTime.MinimumSize = new System.Drawing.Size(140, 27); this.rdtpStartTime.Name = "rdtpStartTime"; - this.rdtpStartTime.Size = new System.Drawing.Size(140, 27); + // + // + // + this.rdtpStartTime.RootElement.MinSize = new System.Drawing.Size(140, 27); + this.rdtpStartTime.Size = new System.Drawing.Size(140, 30); this.rdtpStartTime.TabIndex = 39; this.rdtpStartTime.TabStop = false; this.rdtpStartTime.Text = "2020年5月1日"; @@ -1245,13 +1296,19 @@ namespace NSAnalysis // rdtpEndTime // this.rdtpEndTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpEndTime.AutoSize = false; this.rdtpEndTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); this.rdtpEndTime.Font = new System.Drawing.Font("Segoe UI", 12F); this.rdtpEndTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); - this.rdtpEndTime.Location = new System.Drawing.Point(716, 38); + this.rdtpEndTime.Location = new System.Drawing.Point(701, 34); this.rdtpEndTime.MinDate = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + this.rdtpEndTime.MinimumSize = new System.Drawing.Size(140, 27); this.rdtpEndTime.Name = "rdtpEndTime"; - this.rdtpEndTime.Size = new System.Drawing.Size(140, 27); + // + // + // + this.rdtpEndTime.RootElement.MinSize = new System.Drawing.Size(140, 27); + this.rdtpEndTime.Size = new System.Drawing.Size(140, 30); this.rdtpEndTime.TabIndex = 38; this.rdtpEndTime.TabStop = false; this.rdtpEndTime.Text = "2023年6月1日"; @@ -1329,7 +1386,7 @@ namespace NSAnalysis this.rbtnSearchMeaserData.Font = new System.Drawing.Font("Segoe UI", 12F); this.rbtnSearchMeaserData.ForeColor = System.Drawing.Color.White; this.rbtnSearchMeaserData.Image = global::NSAnalysis.Properties.Resources.search16; - this.rbtnSearchMeaserData.Location = new System.Drawing.Point(967, 29); + this.rbtnSearchMeaserData.Location = new System.Drawing.Point(952, 29); this.rbtnSearchMeaserData.Name = "rbtnSearchMeaserData"; this.rbtnSearchMeaserData.Size = new System.Drawing.Size(139, 40); this.rbtnSearchMeaserData.TabIndex = 7; @@ -1350,7 +1407,7 @@ namespace NSAnalysis this.radLabel15.Anchor = System.Windows.Forms.AnchorStyles.Top; this.radLabel15.Font = new System.Drawing.Font("Segoe UI", 12F); this.radLabel15.ForeColor = System.Drawing.Color.White; - this.radLabel15.Location = new System.Drawing.Point(620, 39); + this.radLabel15.Location = new System.Drawing.Point(605, 37); this.radLabel15.Name = "radLabel15"; this.radLabel15.Size = new System.Drawing.Size(94, 25); this.radLabel15.TabIndex = 36; @@ -1361,7 +1418,7 @@ namespace NSAnalysis this.radLabel1.Anchor = System.Windows.Forms.AnchorStyles.Top; this.radLabel1.Font = new System.Drawing.Font("Segoe UI", 12F); this.radLabel1.ForeColor = System.Drawing.Color.White; - this.radLabel1.Location = new System.Drawing.Point(350, 38); + this.radLabel1.Location = new System.Drawing.Point(335, 37); this.radLabel1.Name = "radLabel1"; this.radLabel1.Size = new System.Drawing.Size(94, 25); this.radLabel1.TabIndex = 34; @@ -1372,57 +1429,12 @@ namespace NSAnalysis this.radLabel11.Anchor = System.Windows.Forms.AnchorStyles.Top; this.radLabel11.Font = new System.Drawing.Font("Segoe UI", 12F); this.radLabel11.ForeColor = System.Drawing.Color.White; - this.radLabel11.Location = new System.Drawing.Point(15, 38); + this.radLabel11.Location = new System.Drawing.Point(0, 37); this.radLabel11.Name = "radLabel11"; this.radLabel11.Size = new System.Drawing.Size(94, 25); this.radLabel11.TabIndex = 28; this.radLabel11.Text = "车身编号:"; // - // chartFPYLine - // - this.chartFPYLine.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.chartFPYLine.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); - chartArea1.AxisX.LabelStyle.ForeColor = System.Drawing.Color.White; - chartArea1.AxisX.LineColor = System.Drawing.Color.White; - chartArea1.AxisX.MajorGrid.LineColor = System.Drawing.Color.White; - chartArea1.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; - chartArea1.AxisX.MajorTickMark.LineColor = System.Drawing.Color.White; - chartArea1.AxisX.MinorGrid.LineColor = System.Drawing.Color.White; - chartArea1.AxisX.MinorTickMark.LineColor = System.Drawing.Color.White; - chartArea1.AxisX.TitleForeColor = System.Drawing.Color.White; - chartArea1.AxisY.LabelStyle.ForeColor = System.Drawing.Color.White; - chartArea1.AxisY.LineColor = System.Drawing.Color.White; - chartArea1.AxisY.MajorGrid.LineColor = System.Drawing.Color.White; - chartArea1.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; - chartArea1.AxisY.MajorTickMark.LineColor = System.Drawing.Color.White; - chartArea1.AxisY.MinorGrid.LineColor = System.Drawing.Color.White; - chartArea1.AxisY.MinorTickMark.LineColor = System.Drawing.Color.White; - chartArea1.AxisY.TitleForeColor = System.Drawing.Color.White; - chartArea1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); - chartArea1.Name = "ChartArea1"; - this.chartFPYLine.ChartAreas.Add(chartArea1); - this.chartFPYLine.Location = new System.Drawing.Point(1166, 95); - this.chartFPYLine.Name = "chartFPYLine"; - series1.BorderWidth = 3; - series1.ChartArea = "ChartArea1"; - series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series1.Color = System.Drawing.Color.Lime; - series1.MarkerSize = 9; - series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; - series1.Name = "Series1"; - this.chartFPYLine.Series.Add(series1); - this.chartFPYLine.Size = new System.Drawing.Size(327, 219); - this.chartFPYLine.TabIndex = 77; - this.chartFPYLine.Text = "chartFPY"; - title1.Font = new System.Drawing.Font("微软雅黑", 12F); - title1.ForeColor = System.Drawing.Color.White; - title1.Name = "Title1"; - title1.Text = "合格率"; - this.chartFPYLine.Titles.Add(title1); - this.chartFPYLine.Visible = false; - // // dgvSelectMeasureData // this.dgvSelectMeasureData.AllowUserToAddRows = false; @@ -1433,123 +1445,51 @@ namespace NSAnalysis this.dgvSelectMeasureData.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); this.dgvSelectMeasureData.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvSelectMeasureData.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle4.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvSelectMeasureData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle13.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle13.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle13; this.dgvSelectMeasureData.ColumnHeadersHeight = 37; this.dgvSelectMeasureData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column2, + this.Model, this.dataGridViewTextBoxColumn1, this.dataGridViewTextBoxColumn2, this.dataGridViewTextBoxColumn3, this.dataGridViewTextBoxColumn4, this.dataGridViewTextBoxColumn5, this.dataGridViewTextBoxColumn6, - this.dataGridViewTextBoxColumn7, - this.MeasureItemResult}); + this.MeasureItemResult, + this.dataGridViewTextBoxColumn7}); this.dgvSelectMeasureData.EnableHeadersVisualStyles = false; this.dgvSelectMeasureData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); - this.dgvSelectMeasureData.Location = new System.Drawing.Point(3, 95); + this.dgvSelectMeasureData.Location = new System.Drawing.Point(3, 117); this.dgvSelectMeasureData.Name = "dgvSelectMeasureData"; this.dgvSelectMeasureData.ReadOnly = true; this.dgvSelectMeasureData.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle5.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvSelectMeasureData.RowHeadersDefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle14.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle14.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle14.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.RowHeadersDefaultCellStyle = dataGridViewCellStyle14; this.dgvSelectMeasureData.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; - dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 10F); - dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - this.dgvSelectMeasureData.RowsDefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle15.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle15.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle15.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvSelectMeasureData.RowsDefaultCellStyle = dataGridViewCellStyle15; this.dgvSelectMeasureData.RowTemplate.Height = 37; - this.dgvSelectMeasureData.Size = new System.Drawing.Size(1157, 776); + this.dgvSelectMeasureData.Size = new System.Drawing.Size(1483, 566); this.dgvSelectMeasureData.TabIndex = 174; this.dgvSelectMeasureData.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvSelectMeasureData_RowStateChanged); // - // Column2 - // - this.Column2.DataPropertyName = "ProductNum"; - this.Column2.HeaderText = "车身编号"; - this.Column2.Name = "Column2"; - this.Column2.ReadOnly = true; - this.Column2.Width = 170; - // - // dataGridViewTextBoxColumn1 - // - this.dataGridViewTextBoxColumn1.DataPropertyName = "PointName"; - this.dataGridViewTextBoxColumn1.HeaderText = "测量点名称"; - this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; - this.dataGridViewTextBoxColumn1.ReadOnly = true; - this.dataGridViewTextBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // dataGridViewTextBoxColumn2 - // - this.dataGridViewTextBoxColumn2.DataPropertyName = "DimensionName"; - this.dataGridViewTextBoxColumn2.HeaderText = "尺寸名"; - this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; - this.dataGridViewTextBoxColumn2.ReadOnly = true; - this.dataGridViewTextBoxColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.dataGridViewTextBoxColumn2.Width = 80; - // - // dataGridViewTextBoxColumn3 - // - this.dataGridViewTextBoxColumn3.DataPropertyName = "NominalValue"; - this.dataGridViewTextBoxColumn3.HeaderText = "理论值"; - this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; - this.dataGridViewTextBoxColumn3.ReadOnly = true; - this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // dataGridViewTextBoxColumn4 - // - this.dataGridViewTextBoxColumn4.DataPropertyName = "LowerLimit"; - this.dataGridViewTextBoxColumn4.HeaderText = "下公差"; - this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; - this.dataGridViewTextBoxColumn4.ReadOnly = true; - this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // dataGridViewTextBoxColumn5 - // - this.dataGridViewTextBoxColumn5.DataPropertyName = "UpperLimit"; - this.dataGridViewTextBoxColumn5.HeaderText = "上公差"; - this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; - this.dataGridViewTextBoxColumn5.ReadOnly = true; - this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // dataGridViewTextBoxColumn6 - // - this.dataGridViewTextBoxColumn6.DataPropertyName = "DimensionValue"; - this.dataGridViewTextBoxColumn6.HeaderText = "实测值"; - this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; - this.dataGridViewTextBoxColumn6.ReadOnly = true; - this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // dataGridViewTextBoxColumn7 - // - this.dataGridViewTextBoxColumn7.DataPropertyName = "MeasureDateTime"; - this.dataGridViewTextBoxColumn7.HeaderText = "测量时间"; - this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; - this.dataGridViewTextBoxColumn7.ReadOnly = true; - this.dataGridViewTextBoxColumn7.Width = 190; - // - // MeasureItemResult - // - this.MeasureItemResult.DataPropertyName = "Classification"; - this.MeasureItemResult.HeaderText = "结果"; - this.MeasureItemResult.Name = "MeasureItemResult"; - this.MeasureItemResult.ReadOnly = true; - this.MeasureItemResult.Width = 50; - // // dgvFPYResult // this.dgvFPYResult.AllowUserToAddRows = false; @@ -1560,14 +1500,14 @@ namespace NSAnalysis this.dgvFPYResult.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); this.dgvFPYResult.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dgvFPYResult.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvFPYResult.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle16.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle16.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle16.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle16.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle16; this.dgvFPYResult.ColumnHeadersHeight = 37; this.dgvFPYResult.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dataGridViewTextBoxColumn9, @@ -1580,27 +1520,27 @@ namespace NSAnalysis this.SMResult}); this.dgvFPYResult.EnableHeadersVisualStyles = false; this.dgvFPYResult.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); - this.dgvFPYResult.Location = new System.Drawing.Point(3, 95); + this.dgvFPYResult.Location = new System.Drawing.Point(3, 117); this.dgvFPYResult.Name = "dgvFPYResult"; this.dgvFPYResult.ReadOnly = true; this.dgvFPYResult.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle8.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvFPYResult.RowHeadersDefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle17.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle17.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle17.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.RowHeadersDefaultCellStyle = dataGridViewCellStyle17; this.dgvFPYResult.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; - dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); - dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 10F); - dataGridViewCellStyle9.ForeColor = System.Drawing.Color.White; - dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); - this.dgvFPYResult.RowsDefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle18.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle18.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle18.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvFPYResult.RowsDefaultCellStyle = dataGridViewCellStyle18; this.dgvFPYResult.RowTemplate.Height = 37; this.dgvFPYResult.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dgvFPYResult.Size = new System.Drawing.Size(1141, 748); + this.dgvFPYResult.Size = new System.Drawing.Size(1487, 566); this.dgvFPYResult.TabIndex = 175; this.dgvFPYResult.Visible = false; this.dgvFPYResult.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvFPYResult_RowStateChanged); @@ -1681,7 +1621,7 @@ namespace NSAnalysis this.rpvpSetup.ItemSize = new System.Drawing.SizeF(46F, 46F); this.rpvpSetup.Location = new System.Drawing.Point(49, 35); this.rpvpSetup.Name = "rpvpSetup"; - this.rpvpSetup.Size = new System.Drawing.Size(1493, 922); + this.rpvpSetup.Size = new System.Drawing.Size(1493, 734); this.rpvpSetup.Text = " 软件设置"; // // lpcToleranceSetup @@ -1749,6 +1689,85 @@ namespace NSAnalysis this.tmSystem.Interval = 1000; this.tmSystem.Tick += new System.EventHandler(this.tmSystem_Tick); // + // Column2 + // + this.Column2.DataPropertyName = "ProductNum"; + this.Column2.HeaderText = "车身编号"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + this.Column2.Width = 170; + // + // Model + // + this.Model.DataPropertyName = "Model"; + this.Model.HeaderText = "车型"; + this.Model.Name = "Model"; + this.Model.ReadOnly = true; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "PointName"; + this.dataGridViewTextBoxColumn1.HeaderText = "测量点名称"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + this.dataGridViewTextBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "DimensionName"; + this.dataGridViewTextBoxColumn2.HeaderText = "尺寸名"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + this.dataGridViewTextBoxColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn2.Width = 80; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.DataPropertyName = "NominalValue"; + this.dataGridViewTextBoxColumn3.HeaderText = "理论值"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "LowerLimit"; + this.dataGridViewTextBoxColumn4.HeaderText = "下公差"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "UpperLimit"; + this.dataGridViewTextBoxColumn5.HeaderText = "上公差"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.DataPropertyName = "DimensionValue"; + this.dataGridViewTextBoxColumn6.HeaderText = "实测值"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // MeasureItemResult + // + this.MeasureItemResult.DataPropertyName = "Classification"; + this.MeasureItemResult.HeaderText = "结果"; + this.MeasureItemResult.Name = "MeasureItemResult"; + this.MeasureItemResult.ReadOnly = true; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.DataPropertyName = "MeasureDateTime"; + this.dataGridViewTextBoxColumn7.HeaderText = "测量时间"; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.Width = 190; + // // FormMain // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); @@ -1756,7 +1775,7 @@ namespace NSAnalysis this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); this.BorderWidth = 0; - this.ClientSize = new System.Drawing.Size(1548, 1039); + this.ClientSize = new System.Drawing.Size(1548, 864); this.Controls.Add(this.RPV); this.Controls.Add(this.radStatusStrip1); this.Controls.Add(this.radTitleBar1); @@ -1766,9 +1785,9 @@ namespace NSAnalysis this.Name = "FormMain"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "海克斯康间隙面差分析系统"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed); this.Load += new System.EventHandler(this.FormMain_Load); + this.Shown += new System.EventHandler(this.FormMain_Shown); this.Resize += new System.EventHandler(this.FormMain_Resize); ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); this.radTitleBar1.ResumeLayout(false); @@ -1797,13 +1816,13 @@ namespace NSAnalysis ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).EndInit(); this.rpvpSetup.ResumeLayout(false); @@ -1877,23 +1896,6 @@ namespace NSAnalysis private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panel2; public System.Windows.Forms.DataGridView dgvMeasureContent; - private System.Windows.Forms.DataGridViewTextBoxColumn PointName; - private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; - private System.Windows.Forms.DataGridViewTextBoxColumn NormalVal; - private System.Windows.Forms.DataGridViewTextBoxColumn LowerTolVal; - private System.Windows.Forms.DataGridViewTextBoxColumn UpperTolVal; - private System.Windows.Forms.DataGridViewTextBoxColumn MeasureValue; - private System.Windows.Forms.DataGridViewTextBoxColumn MeasureDateTime; - private System.Windows.Forms.DataGridViewTextBoxColumn Classification; - private System.Windows.Forms.DataGridViewTextBoxColumn Column2; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; - private System.Windows.Forms.DataGridViewTextBoxColumn MeasureItemResult; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; @@ -1903,5 +1905,23 @@ namespace NSAnalysis private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn16; private System.Windows.Forms.DataGridViewTextBoxColumn SMResult; private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.DataGridViewTextBoxColumn PointName; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; + private System.Windows.Forms.DataGridViewTextBoxColumn NormalVal; + private System.Windows.Forms.DataGridViewTextBoxColumn LowerTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn UpperTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureValue; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureDateTime; + private System.Windows.Forms.DataGridViewTextBoxColumn Classification; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Model; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureItemResult; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; } } diff --git a/Analysis/FormMain.resx b/Analysis/FormMain.resx index 52530a0..64b6c4e 100644 --- a/Analysis/FormMain.resx +++ b/Analysis/FormMain.resx @@ -152,30 +152,6 @@ qEc4R0mJ+26dgwn6qipE706fjsJ1VnvEI8VA/PC3/lOjX79/AdonQT85iOsDAAAAAElFTkSuQmCC - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAADtaU2/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 @@ -193,64 +169,6 @@ C+7S06WW9WaY1WoePIOs8V9ihlmt/EPm3xP/SXja/A/0NoOspvkJxD7h7QqkS00AAAAASUVORK5CYII= - - - iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ - RU5ErkJggg== - - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 @@ -293,6 +211,98 @@ ez4z8zeeNDGa23P9IwAAAABJRU5ErkJggg== + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ + RU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ + RU5ErkJggg== + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + 17, 17 diff --git a/Analysis/NXSAnalysis.csproj b/Analysis/NXSAnalysis.csproj index 426d90d..a730162 100644 --- a/Analysis/NXSAnalysis.csproj +++ b/Analysis/NXSAnalysis.csproj @@ -111,11 +111,11 @@ - + Form - - AboutSoftwareInfo.cs + + AboutSoftware.cs @@ -170,8 +170,8 @@ ZSFDEMO.cs - - AboutSoftwareInfo.cs + + AboutSoftware.cs FormMain.cs diff --git a/Analysis/Program.cs b/Analysis/Program.cs index 11babf0..24198f2 100644 --- a/Analysis/Program.cs +++ b/Analysis/Program.cs @@ -82,12 +82,9 @@ namespace NSAnalysis #endregion 创建Log文件 - - //FileSorter fileSorter = new FileSorter(); //fileSorter.test(); - if (gAuthorizationMode == 1) { MyBase.TraceWriteLine("Log in using the CLMS authorization."); @@ -153,8 +150,7 @@ namespace NSAnalysis Licence.GetRegisterInfo(); Licence.Encryption_DLL(); } - - } + } } public class Licence diff --git a/Analysis/Properties/AssemblyInfo.cs b/Analysis/Properties/AssemblyInfo.cs index 162c06e..a2a534f 100644 --- a/Analysis/Properties/AssemblyInfo.cs +++ b/Analysis/Properties/AssemblyInfo.cs @@ -25,8 +25,8 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers by using the '*' // as shown below: [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2025.03.03.1")] -[assembly: AssemblyFileVersion("2025.03.03.1")] +[assembly: AssemblyVersion("2025.08.28.1")] +[assembly: AssemblyFileVersion("2025.08.28.1")] //奇瑞总装软件 //2024.09.27.1 该版本增加读取编码器数值功能 //2024.10.08.1 该版本修改了EHY和EH3的测点图片 以及增加了上传IOT时,在1.5倍公差内,都是OK的结果,传给IOT diff --git a/Analysis/bin/x64/Debug/Debug.txt b/Analysis/bin/x64/Debug/Debug.txt index 2ca3d24..2697650 100644 --- a/Analysis/bin/x64/Debug/Debug.txt +++ b/Analysis/bin/x64/Debug/Debug.txt @@ -1,14 +1,66 @@ -2025-01-27 20:10:51.697----软件Program Main函数开始执行-- -2025-01-27 20:10:51.699--加载配置文件——>开始 -2025-01-27 20:10:51.712--数据库连接 SqlServerName:127.0.0.1 -2025-01-27 20:10:51.712--数据库连接 SqlUserName:sa -2025-01-27 20:10:51.713--数据库连接 SqlPassword:Hexagon123 -2025-01-27 20:10:51.714--数据库连接 SqlDbName:CJLR -2025-01-27 20:10:51.714--加载配置文件——>完成 -2025-01-27 20:10:51.716--Log in using the CLMS authorization. -2025-01-27 20:10:55.778--数据库连接 SqlServerName:127.0.0.1 -2025-01-27 20:10:55.780--数据库连接 SqlUserName:sa -2025-01-27 20:10:55.781--数据库连接 SqlPassword:Hexagon123 -2025-01-27 20:10:55.782--数据库连接 SqlDbName:CJLR -2025-01-27 20:10:55.783--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123; -2025-01-27 20:10:59.421---------------海克斯康面隙分析软件程序关闭--------------------- +2025-08-28 21:40:46.762----软件Program Main函数开始执行-- +2025-08-28 21:40:46.763--加载配置文件——>开始 +2025-08-28 21:40:46.778--数据库连接 SqlServerName:127.0.0.1 +2025-08-28 21:40:46.779--数据库连接 SqlUserName:sa +2025-08-28 21:40:46.779--数据库连接 SqlPassword:Hexagon123 +2025-08-28 21:40:46.780--数据库连接 SqlDbName:CJLR +2025-08-28 21:40:46.780--加载配置文件——>完成 +2025-08-28 21:40:46.781--Log in using the original authorization mode. +2025-08-28 21:40:47.993--软件授权成功 +2025-08-28 21:40:49.060--数据库连接 SqlServerName:127.0.0.1 +2025-08-28 21:40:49.061--数据库连接 SqlUserName:sa +2025-08-28 21:40:49.062--数据库连接 SqlPassword:Hexagon123 +2025-08-28 21:40:49.063--数据库连接 SqlDbName:CJLR +2025-08-28 21:40:49.063--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123; +2025-08-28 21:40:49.503---------------海克斯康面隙分析软件程序启动--------------------- +2025-08-28 21:41:04.522--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:41:04.524--匹配文件特征符: E0Y_R +2025-08-28 21:41:04.526--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:41:04.526--匹配文件特征符: E0Y_L +2025-08-28 21:41:19.496--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:41:19.497--匹配文件特征符: E0Y_R +2025-08-28 21:41:19.497--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:41:19.498--匹配文件特征符: E0Y_L +2025-08-28 21:41:19.499--正在处理文件 : D:\CJLR\DATA\Input\LLL\SX541625.csv +2025-08-28 21:41:19.508--已备份文件到: D:\HexagonProjects\2025-01-捷豹路虎改造\code\Analysis\bin\x64\Debug\Backup\SX541625.csv +2025-08-28 21:41:22.758--测量时间:2025-08-28 11:38:37 +2025-08-28 21:41:22.758---------------------------------------------------------- +2025-08-28 21:41:22.759--车号:SX541625 +2025-08-28 21:41:22.760--车型:E0Y +2025-08-28 21:41:22.761--组名:E0Y_L20250828 +2025-08-28 21:41:22.762--位置:L +2025-08-28 21:41:22.762--测量时间:2025-08-28 11:38:37 +2025-08-28 21:41:22.790--CSV文件导入到数据库成功! +2025-08-28 21:41:22.796--将总结果插入数据库完毕。 +2025-08-28 21:41:22.803---------------------------------------------------------- +2025-08-28 21:41:22.804--触发事件,车号: SX541625 位置: L +2025-08-28 21:41:24.534--双侧测量结果已完成,开始生成客户报告。 +2025-08-28 21:41:24.552--客户报告已生成: D:\QMLTest\SX541625_20250828214124.csv +2025-08-28 21:41:24.664--[MatchCsvValue] 检查文件: D:\CJLR\DATA\Input\LLL\SX541625.csv, 行索引: 2, 列索引: 1, 目标值: E0Y_L +2025-08-28 21:41:24.667--目标文件已存在,已重命名为备份文件: D:\CJLR\DATA\Output\X540R\SX541625.csv.bak_20250828_214124 +2025-08-28 21:41:24.669--移动完成,: D:\CJLR\DATA\Input\LLL\SX541625.csv -> D:\CJLR\DATA\Output\X540R\SX541625.csv +2025-08-28 21:41:34.500--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:41:34.501--匹配文件特征符: E0Y_R +2025-08-28 21:41:34.502--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:41:34.503--匹配文件特征符: E0Y_L +2025-08-28 21:41:49.511--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:41:49.513--匹配文件特征符: E0Y_R +2025-08-28 21:41:49.515--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:41:49.516--匹配文件特征符: E0Y_L +2025-08-28 21:42:04.504--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:42:04.505--匹配文件特征符: E0Y_R +2025-08-28 21:42:04.506--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:42:04.507--匹配文件特征符: E0Y_L +2025-08-28 21:42:19.500--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:42:19.502--匹配文件特征符: E0Y_R +2025-08-28 21:42:19.504--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:42:19.505--匹配文件特征符: E0Y_L +2025-08-28 21:42:34.497--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:42:34.498--匹配文件特征符: E0Y_R +2025-08-28 21:42:34.499--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:42:34.500--匹配文件特征符: E0Y_L +2025-08-28 21:42:49.503--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R +2025-08-28 21:42:49.504--匹配文件特征符: E0Y_R +2025-08-28 21:42:49.505--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L +2025-08-28 21:42:49.506--匹配文件特征符: E0Y_L +2025-08-28 21:42:51.464---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/File/AnalysisConfig.ini b/Analysis/bin/x64/Debug/File/AnalysisConfig.ini index 8bb2af9..13731ef 100644 --- a/Analysis/bin/x64/Debug/File/AnalysisConfig.ini +++ b/Analysis/bin/x64/Debug/File/AnalysisConfig.ini @@ -8,7 +8,7 @@ Language =1 RememberMe=1 ;1:CLMS授权 -AuthorizationMode=1 +AuthorizationMode=0 CLMSModeID=4 ;权限密码 diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe b/Analysis/bin/x64/Debug/NSAnalysis.exe index eb92ed31b835fbcffb620c3f9d0146824f8c16c2..72b88cfcc5762065247b062c92c5766cd3c86e0c 100644 GIT binary patch delta 85788 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

0c$5I;lca5nn0+)NK0Th8Q zMBFDlQ^qJC*(ODVW8<2_bs&Ukv@y(6FjmR+tQ@OYEhDT(>?|vdwcTTtPGYsEWvmhq zUSo>TTPXYbV>lYI)ppt!Zq|l~$1zUn8;wLl=b! zlqm2vMM-qB`H3K-$x+`(#c*TJTpZ82aZ0kMXq*ybGZ-bdqoi@LaJOUOF3-GiN>5ia zw&22-ahTuBU3-A>AmfoX(?+HzEHq0N?u@`chtXoSI@~KLAa)b|sonn}xw_|af)*W) ztJ$U~VXt57Scv0VIOY%x$6xxR@!Z>Jceva>4)^M|e`_7?%m40mxHmf7o7+s6eOBXl zl?z9nn%x=BsMUxnEY=w6PW+H;T%_lr=+04@S^e-)Kh)K1QA8(|MynrP)Q=wOhnmNt zVvoC6@pths$I_^Ix!tOdTJ1&Z;9pcn#aYBF5Y~h|9E&u^2GxJF8FaV;US2a7ZB_NV zX(96_@ZlIoRP`|?w17B;eNl_5{EU^S+j?iSCCbQ)aN9auzm)tOi@E;x#awa6Vjs`6 z2}-{pdMVN1pjN-!(j<7En4olt4=~Y)rnS{-6g;zdz*?=|?FkL&`5sxKq`GM3!Qr5{ z&^l=ja4ZgyC`dn>kWyQiSlI!j6(>cz&gQBt=5}{1=5}{1j#ZUv^DkC6kj1H?Mw`RE z+u?4e!G_~o8jV;}S|6n6*%HMobT>`+#p#&X3A2mv18VU4omS~%)LE%CREPSVcI@=}Mjkv=I@I89g8gX4C9=&;T8v7Y zY%(g8INU^s0qBSSP{mf0nxv2W5-D{C+z{Bw-32A8vb#&D(W@xxf+J-q^*nwyc$Swdk**yYrIw)KjNZ~_v>DByNSlfN z=iTcVnrXB#`H-;wR+i6T0+ZG5zUT#tT1k|#C8+gL@&WD#YDHuigu0iM?pCZF?XB)h zn3A;Q-%DbQtNX}Z=xNP@k7tR>3B?JZYr6Mj}+Y^s}%gx;h!G= z4ESfnKNJ3$@y~*PUijyYe?ItU#Xn#Cv*Di|{~Y+|hkyR~7l40(_!oqK!T1+~f1ypX zDr|D!?sFz>ucA|AdPh23;P2q<4g=f$VNf_ad$jdc-;bh(p3iPrmizt-Atj!s<@bjz S(0TSe5LVS>-4ynH(EkUp0n=Cj delta 86522 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

B`udaT((|8(AMo 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 diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe.config b/Analysis/bin/x64/Debug/NSAnalysis.exe.config index dc1fe32..a2fa42f 100644 --- a/Analysis/bin/x64/Debug/NSAnalysis.exe.config +++ b/Analysis/bin/x64/Debug/NSAnalysis.exe.config @@ -1,30 +1,30 @@ - + - - + + - + - + - - + + - + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/NSAnalysis.pdb b/Analysis/bin/x64/Debug/NSAnalysis.pdb index a6de9a37fc12d248a757f2c6bea7bd68535df434..8d069c2b55302b3dc2717d07fd0865edaeb87eb5 100644 GIT binary patch delta 55094 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 delta 54256 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 Imwj#gU!6N&M*si- diff --git a/CheryFianlAssemblyLine.sln b/CheryFianlAssemblyLine.sln index 33c47a6..8de4419 100644 --- a/CheryFianlAssemblyLine.sln +++ b/CheryFianlAssemblyLine.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.12.35707.178 +VisualStudioVersion = 17.12.35707.178 d17.12 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NXSAnalysis", "Analysis\NXSAnalysis.csproj", "{7C83975D-A071-48E0-8A12-DAFD20525B66}" EndProject