From 03eb2c56e1fbd9648b0cda31118fa86c04846b54 Mon Sep 17 00:00:00 2001 From: sunhonglei Date: Fri, 10 Jan 2025 17:32:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:try=20catch=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ViewModel/Configuration/LevelConfigVM.cs | 32 +- ViewModel/Grading/GradingResultVM.cs | 498 +++++++++++++---------- 2 files changed, 320 insertions(+), 210 deletions(-) diff --git a/ViewModel/Configuration/LevelConfigVM.cs b/ViewModel/Configuration/LevelConfigVM.cs index 8de66e2..9a7c9c6 100644 --- a/ViewModel/Configuration/LevelConfigVM.cs +++ b/ViewModel/Configuration/LevelConfigVM.cs @@ -14,6 +14,9 @@ using MessageBox = SparkClient.Views.Dialog.MessageBox; namespace SparkClient.ViewModel.Configuration; +/// +/// 定级配置VM +/// public class LevelConfigVM : BaseViewModel { private static readonly ILog Logger = LogManager.GetLogger(typeof(LevelConfigVM)); @@ -24,26 +27,52 @@ public class LevelConfigVM : BaseViewModel public ICommand SaveLevelConfigCommand { get; } private DataTable _institutes; + /// + /// 规则下拉列表 + /// public DataTable Institutes { get { return _institutes; } set { _institutes = value; OnPropertyChanged("Institutes"); } } private DataTable _shapes; + /// + /// 形状下拉列表 + /// public DataTable Shapes { get { return _shapes; } set { _shapes = value; OnPropertyChanged("Shapes"); } } private string _instituteId; + /// + /// 规则id + /// public string InstituteId { get { return _instituteId; } set { _instituteId = value; OnPropertyChanged("InstituteId"); } } private string _shapeId; + /// + /// 形状id + /// public string ShapeId { get { return _shapeId; } set { _shapeId = value; OnPropertyChanged("ShapeId"); } } private DataTable _standardList; + /// + /// 定级配置数据 + /// public DataTable StandardList { get { return _standardList; } set { _standardList = value; OnPropertyChanged("StandardList"); } } DataGrid dataGrid; private bool _institutesEnabled = true; + /// + /// 规则下拉列表可用性 + /// public bool InstitutesEnabled { get { return _institutesEnabled; } set { _institutesEnabled = value; OnPropertyChanged("InstitutesEnabled"); } } private bool _shapesEnabled = true; + /// + /// 形状下拉列表可用性 + /// public bool ShapesEnabled { get { return _shapesEnabled; } set { _shapesEnabled = value; OnPropertyChanged("ShapesEnabled"); } } private bool _isUpdateButtonEnabled; + /// + /// 保存按钮可用性 + /// public bool IsUpdateButtonEnabled { get { return _isUpdateButtonEnabled; } set { _isUpdateButtonEnabled = value; OnPropertyChanged("IsUpdateButtonEnabled"); } } - + /// + /// 导入文件数据 + /// JsonEntity jsonEntity = new JsonEntity(); private string Save_successful_message = MultilingualHelper.getString("Save_successful_message"); @@ -510,6 +539,7 @@ public class LevelConfigVM : BaseViewModel Growl.Info(Save_successful_message); InstitutesEnabled = true; ShapesEnabled = true; + IsUpdateButtonEnabled = false; } else { diff --git a/ViewModel/Grading/GradingResultVM.cs b/ViewModel/Grading/GradingResultVM.cs index 66af112..73a4cad 100644 --- a/ViewModel/Grading/GradingResultVM.cs +++ b/ViewModel/Grading/GradingResultVM.cs @@ -111,18 +111,42 @@ public class GradingResultVM : BaseViewModel /// public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } } /// - /// 活性 + /// 保存和导出的按钮可用性 /// public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } } + /// + /// 格式为小数点后一位 + /// private readonly static string digitsFormat = "f1"; + /// + /// 切工总等级(辅助计算用) + /// private int totalCutGrade = 0; + /// + /// 对称行总等级(辅助计算用) + /// private decimal totalSymGrade = 0; + /// + /// 计算数据 + /// private AlgorithmResultEntity algorithmResult; + /// + /// 用户名 + /// private string username = ""; + /// + /// 机器号 + /// private string machine = ""; + /// + /// 形状id + /// private string shapeId = string.Empty; + /// + /// 规则id + /// private string ruleId = string.Empty; /// /// 构造 @@ -130,30 +154,38 @@ public class GradingResultVM : BaseViewModel /// 检测结果 public GradingResultVM(object result) { - SaveAsCommand = new RelayCommand(SaveAs); - SaveFileCommand = new RelayCommand(SaveFile); - - if (result != null) + try { - algorithmResult = result as AlgorithmResultEntity?? new AlgorithmResultEntity(); - InitView(algorithmResult); - machine = algorithmResult.DeviceId; - username = Settings.SelectValueById("PERMISSIONS"); - if (ruleId.StartsWith("IGI")) + SaveAsCommand = new RelayCommand(SaveAs); + SaveFileCommand = new RelayCommand(SaveFile); + + if (result != null) { - IsEnabled = true; + algorithmResult = result as AlgorithmResultEntity?? new AlgorithmResultEntity(); + InitView(algorithmResult); + machine = algorithmResult.DeviceId; + username = Settings.SelectValueById("PERMISSIONS"); + if (ruleId.StartsWith("IGI")) + { + IsEnabled = true; + } + else + { + IsEnabled = false; + } } - else + DS = "NA"; + if (IsEnabled) { - IsEnabled = false; + AutoSave(); } + SaveTestResult(SaveStatus.AutoSave); } - DS = "NA"; - if (IsEnabled) + catch (Exception ex) { - AutoSave(); + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } - SaveTestResult(SaveStatus.AutoSave); } #region 画面初始化相关操作 @@ -213,37 +245,45 @@ public class GradingResultVM : BaseViewModel private void InitView(AlgorithmResultEntity result) { - InitViewportData(result); - totalCutGrade = 0; - totalSymGrade = 0; - ruleId = getRuleId(); - Standard = result.Standard; - shapeId = result.Shape; - InitCombobox(); - Shape = GetName(result.Shape); - CrownType = result.CrownType; - PavType = result.PavType; - DiamondCode = result.DiamondCode; - CalWight(result); - DtResults = new List(); - var testItemList = GetTestItemList(); - Type type = this.GetType(); - foreach (var testItem in testItemList) - { - string methodName = "get" + testItem; - MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); - if (methodInfo != null) + try + { + InitViewportData(result); + totalCutGrade = 0; + totalSymGrade = 0; + ruleId = getRuleId(); + Standard = result.Standard; + shapeId = result.Shape; + InitCombobox(); + Shape = GetName(result.Shape); + CrownType = result.CrownType; + PavType = result.PavType; + DiamondCode = result.DiamondCode; + CalWight(result); + DtResults = new List(); + var testItemList = GetTestItemList(); + Type type = this.GetType(); + foreach (var testItem in testItemList) { - object[] parameters = new object[] { result }; - DataInfo? dataInfo = methodInfo.Invoke(this, parameters) as DataInfo; - if (dataInfo != null) + string methodName = "get" + testItem; + MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); + if (methodInfo != null) { - dataInfo.GradeList = GradeList; - DtResults.Add(dataInfo); + object[] parameters = new object[] { result }; + DataInfo? dataInfo = methodInfo.Invoke(this, parameters) as DataInfo; + if (dataInfo != null) + { + dataInfo.GradeList = GradeList; + DtResults.Add(dataInfo); + } } } + CutLevelTotal = GetGradeName(totalCutGrade); + } + catch (Exception ex) + { + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } - CutLevelTotal = GetGradeName(totalCutGrade); } private string getRuleId() { @@ -317,52 +357,60 @@ public class GradingResultVM : BaseViewModel } private int calGrade(string item ,double value) { - decimal cValue = Convert.ToDecimal(value); - List calGrades = GetCalGradeInfos(item); - if (calGrades == null || calGrades.Count == 0) - { - return 0; - } int order = 1; - foreach (CalGradeInfo gradeInfo in calGrades) + try { - bool isThisGrade = true; - - if (gradeInfo.Max!= null) { - if ( gradeInfo.isMaxExist == 1 && cValue.CompareTo(gradeInfo.Max)<=0) - { - }else if(gradeInfo.isMaxExist == 0 && cValue.CompareTo(gradeInfo.Max) < 0) - { - } - else - { - isThisGrade = false; - } + decimal cValue = Convert.ToDecimal(value); + List calGrades = GetCalGradeInfos(item); + if (calGrades == null || calGrades.Count == 0) + { + return 0; } - if (gradeInfo.Min != null) + foreach (CalGradeInfo gradeInfo in calGrades) { - if (gradeInfo.isMinExist == 1 && cValue.CompareTo(gradeInfo.Min) >= 0) + bool isThisGrade = true; + + if (gradeInfo.Max!= null) { + if ( gradeInfo.isMaxExist == 1 && cValue.CompareTo(gradeInfo.Max)<=0) + { + }else if(gradeInfo.isMaxExist == 0 && cValue.CompareTo(gradeInfo.Max) < 0) + { + } + else + { + isThisGrade = false; + } + } + if (gradeInfo.Min != null) { + if (gradeInfo.isMinExist == 1 && cValue.CompareTo(gradeInfo.Min) >= 0) + { + } + else if (gradeInfo.isMinExist == 0 && cValue.CompareTo(gradeInfo.Min) > 0) + { + } + else + { + isThisGrade = false; + } } - else if (gradeInfo.isMinExist == 0 && cValue.CompareTo(gradeInfo.Min) > 0) + if (isThisGrade) { + order = gradeInfo.gradeOrder; + break; } else { - isThisGrade = false; + order = gradeInfo.gradeOrder; } } - if (isThisGrade) - { - order = gradeInfo.gradeOrder; - break; - } - else - { - order = gradeInfo.gradeOrder; - } + totalCutGrade = Math.Max(order, totalCutGrade); + } + catch (Exception ex) + { + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } - totalCutGrade = Math.Max(order, totalCutGrade); return order; } private string calGrade_TOTAL_DEPTH(double avg) @@ -736,48 +784,56 @@ public class GradingResultVM : BaseViewModel #region 文件导出相关 public void SaveAs(object param) { - if (string.IsNullOrEmpty(DiamondCode)) + try { - MessageBox messageBox = new MessageBox(); - MessageBoxResult boxResult = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr, - MultilingualHelper.getString("ok"), - MultilingualHelper.getString("Cancel") - ); - - if (boxResult == MessageBoxResult.OK && inputStr.Length > 0) + if (string.IsNullOrEmpty(DiamondCode)) { - this.DiamondCode = inputStr; - } - else - { - return; + MessageBox messageBox = new MessageBox(); + MessageBoxResult boxResult = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr, + MultilingualHelper.getString("ok"), + MultilingualHelper.getString("Cancel") + ); + + if (boxResult == MessageBoxResult.OK && inputStr.Length > 0) + { + this.DiamondCode = inputStr; + } + else + { + return; + } } - } - using (var folderBrowserDlg = new FolderBrowserDialog()) - { - // 创建SaveFileDialog实例 - SaveFileDialog saveFileDialog = new() + using (var folderBrowserDlg = new FolderBrowserDialog()) { - Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器 - FileName = this.DiamondCode // 默认文件名 - }; + // 创建SaveFileDialog实例 + SaveFileDialog saveFileDialog = new() + { + Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器 + FileName = this.DiamondCode // 默认文件名 + }; - // 显示对话框并检查结果 - bool? result = saveFileDialog.ShowDialog(); - if (result == true) - { - // 获取用户选择的文件路径 - string filePath = saveFileDialog.FileName; - if (!saveFileDialog.CheckPathExists) + // 显示对话框并检查结果 + bool? result = saveFileDialog.ShowDialog(); + if (result == true) { - new MessageBox().Show(MultilingualHelper.getString("FilePathNotExists")); - return; + // 获取用户选择的文件路径 + string filePath = saveFileDialog.FileName; + if (!saveFileDialog.CheckPathExists) + { + new MessageBox().Show(MultilingualHelper.getString("FilePathNotExists")); + return; + } + //ExportFile(filePath); + TxtFile(filePath); } - //ExportFile(filePath); - TxtFile(filePath); } + SaveTestResult(SaveStatus.SaveAs); + } + catch (Exception ex) + { + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } - SaveTestResult(SaveStatus.SaveAs); } private async void ExportFile(string filePath) { @@ -866,116 +922,140 @@ public class GradingResultVM : BaseViewModel } return result; } + /// + /// txt文件导出 + /// + /// private void TxtFile(string filePath) { - string fileName = filePath + ".txt"; - using (var file = File.Create(fileName)) + try { - Measurements info = algorithmResult.measurements; - StreamWriter stream = new StreamWriter(file); - stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}"); - stream.WriteLine($"SARIN WEIGHT={Wight}"); - stream.WriteLine($"M1={info.M1}"); - stream.WriteLine($"M2={info.M2}"); - stream.WriteLine($"M3={info.M3}"); - stream.WriteLine($"TABLE={info.TABLE*100}"); - stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}"); - stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}"); - stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}"); - stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}"); - stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}"); - stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}"); - stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}"); - stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}"); - stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}"); - stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}"); - stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}"); - stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}"); - stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}"); - stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}"); - stream.WriteLine($"GIRDLE={info.GIRDLE * 100}"); - stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}"); - stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}"); - stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}"); - stream.WriteLine($"CULET={info.CULET*100}"); - stream.WriteLine($"MACHINE={machine}"); - stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}"); - stream.WriteLine($"LW RATIO={info.LW_RATIO}"); - stream.WriteLine($"DS={DS}"); - stream.WriteLine($"COC={info.COC * 100}"); - stream.WriteLine($"USER={username}"); - string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??""; - stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}"); - string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; - stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}"); - string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; - stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}"); - string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; - stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}"); - string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; - stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}"); - string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; - stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}"); - stream.WriteLine($"TA={info.TA}"); - stream.WriteLine($"LGF={info.LGF * 100}"); - stream.WriteLine($"STAR={info.STAR * 100}"); - stream.Close(); + string fileName = filePath + ".txt"; + using (var file = File.Create(fileName)) + { + Measurements info = algorithmResult.measurements; + StreamWriter stream = new StreamWriter(file); + stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}"); + stream.WriteLine($"SARIN WEIGHT={Wight}"); + stream.WriteLine($"M1={info.M1}"); + stream.WriteLine($"M2={info.M2}"); + stream.WriteLine($"M3={info.M3}"); + stream.WriteLine($"TABLE={info.TABLE*100}"); + stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}"); + stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}"); + stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}"); + stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}"); + stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}"); + stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}"); + stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}"); + stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}"); + stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}"); + stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}"); + stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}"); + stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}"); + stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}"); + stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}"); + stream.WriteLine($"GIRDLE={info.GIRDLE * 100}"); + stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}"); + stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}"); + stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}"); + stream.WriteLine($"CULET={info.CULET*100}"); + stream.WriteLine($"MACHINE={machine}"); + stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}"); + stream.WriteLine($"LW RATIO={info.LW_RATIO}"); + stream.WriteLine($"DS={DS}"); + stream.WriteLine($"COC={info.COC * 100}"); + stream.WriteLine($"USER={username}"); + string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??""; + stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}"); + string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; + stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}"); + string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; + stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}"); + string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; + stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}"); + string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; + stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}"); + string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; + stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}"); + stream.WriteLine($"TA={info.TA}"); + stream.WriteLine($"LGF={info.LGF * 100}"); + stream.WriteLine($"STAR={info.STAR * 100}"); + stream.Close(); + } + } + catch (Exception ex) + { + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } } + /// + /// excel文件导出 + /// + /// private void ExcelFile(string filePath) { - string fileName = filePath + ".xlsx"; - IWorkbook workbook = new XSSFWorkbook(); - ISheet sheet = workbook.CreateSheet("Sheet1"); + try + { + string fileName = filePath + ".xlsx"; + IWorkbook workbook = new XSSFWorkbook(); + ISheet sheet = workbook.CreateSheet("Sheet1"); - int col = 0; - int row = 0; - var dataRow = sheet.CreateRow(row); - dataRow.CreateCell(col++).SetCellValue("Measurement1"); - dataRow.CreateCell(col++).SetCellValue("Measurement2"); - dataRow.CreateCell(col++).SetCellValue("Measurement3"); - dataRow.CreateCell(col++).SetCellValue("Table"); - dataRow.CreateCell(col++).SetCellValue("Crown Height"); - dataRow.CreateCell(col++).SetCellValue("Pavilion Depth"); - dataRow.CreateCell(col++).SetCellValue("Total Depth"); - dataRow.CreateCell(col++).SetCellValue("Crown Angle"); - dataRow.CreateCell(col++).SetCellValue("Pavilion Angle"); - dataRow.CreateCell(col++).SetCellValue("Culet Size"); - dataRow.CreateCell(col++).SetCellValue("Girdle Percent"); - dataRow.CreateCell(col++).SetCellValue("Girdle Name"); - dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym"); - dataRow.CreateCell(col++).SetCellValue("SYM"); - dataRow.CreateCell(col++).SetCellValue("CUT-PROP"); - row++; - col = 0; - dataRow = sheet.CreateRow(row); - Measurements info = algorithmResult.measurements; - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M1)}(mm)"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M2)}(mm)"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M3)}(mm)"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TABLE)}%"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.CROWN_HEIGHT)}%"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.PAV_DEPTH)}%"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TOTAL_DEPTH)}%"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CROWN_ANGLE)}°"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.PAV_ANGLE)}°"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CULET_SIZE)}(mm)"); - dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%"); - // 腰部厚度英文 - dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}"); - dataRow.CreateCell(col++).SetCellValue($""); - string sysmlevel = ""; - if (!string.IsNullOrEmpty(SymLevelTotal)) - { - sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? "")); - } - dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}"); - dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"); + int col = 0; + int row = 0; + var dataRow = sheet.CreateRow(row); + dataRow.CreateCell(col++).SetCellValue("Measurement1"); + dataRow.CreateCell(col++).SetCellValue("Measurement2"); + dataRow.CreateCell(col++).SetCellValue("Measurement3"); + dataRow.CreateCell(col++).SetCellValue("Table"); + dataRow.CreateCell(col++).SetCellValue("Crown Height"); + dataRow.CreateCell(col++).SetCellValue("Pavilion Depth"); + dataRow.CreateCell(col++).SetCellValue("Total Depth"); + dataRow.CreateCell(col++).SetCellValue("Crown Angle"); + dataRow.CreateCell(col++).SetCellValue("Pavilion Angle"); + dataRow.CreateCell(col++).SetCellValue("Culet Size"); + dataRow.CreateCell(col++).SetCellValue("Girdle Percent"); + dataRow.CreateCell(col++).SetCellValue("Girdle Name"); + dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym"); + dataRow.CreateCell(col++).SetCellValue("SYM"); + dataRow.CreateCell(col++).SetCellValue("CUT-PROP"); + row++; + col = 0; + dataRow = sheet.CreateRow(row); + Measurements info = algorithmResult.measurements; + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M1)}(mm)"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M2)}(mm)"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M3)}(mm)"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TABLE)}%"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.CROWN_HEIGHT)}%"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.PAV_DEPTH)}%"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TOTAL_DEPTH)}%"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CROWN_ANGLE)}°"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.PAV_ANGLE)}°"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CULET_SIZE)}(mm)"); + dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%"); + // 腰部厚度英文 + dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}"); + dataRow.CreateCell(col++).SetCellValue($""); + string sysmlevel = ""; + if (!string.IsNullOrEmpty(SymLevelTotal)) + { + sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? "")); + } + dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}"); + dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"); - // 保存Excel文件 - using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) + // 保存Excel文件 + using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + } + } + catch (Exception ex) { - workbook.Write(stream); + new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); + Logger.Error($"全局异常捕获:{ex.Message}", ex); } }