fix:try catch增加

master
sunhonglei 5 months ago
parent e8290e9358
commit 03eb2c56e1
  1. 32
      ViewModel/Configuration/LevelConfigVM.cs
  2. 498
      ViewModel/Grading/GradingResultVM.cs

@ -14,6 +14,9 @@ using MessageBox = SparkClient.Views.Dialog.MessageBox;
namespace SparkClient.ViewModel.Configuration; namespace SparkClient.ViewModel.Configuration;
/// <summary>
/// 定级配置VM
/// </summary>
public class LevelConfigVM : BaseViewModel public class LevelConfigVM : BaseViewModel
{ {
private static readonly ILog Logger = LogManager.GetLogger(typeof(LevelConfigVM)); private static readonly ILog Logger = LogManager.GetLogger(typeof(LevelConfigVM));
@ -24,26 +27,52 @@ public class LevelConfigVM : BaseViewModel
public ICommand SaveLevelConfigCommand { get; } public ICommand SaveLevelConfigCommand { get; }
private DataTable _institutes; private DataTable _institutes;
/// <summary>
/// 规则下拉列表
/// </summary>
public DataTable Institutes { get { return _institutes; } set { _institutes = value; OnPropertyChanged("Institutes"); } } public DataTable Institutes { get { return _institutes; } set { _institutes = value; OnPropertyChanged("Institutes"); } }
private DataTable _shapes; private DataTable _shapes;
/// <summary>
/// 形状下拉列表
/// </summary>
public DataTable Shapes { get { return _shapes; } set { _shapes = value; OnPropertyChanged("Shapes"); } } public DataTable Shapes { get { return _shapes; } set { _shapes = value; OnPropertyChanged("Shapes"); } }
private string _instituteId; private string _instituteId;
/// <summary>
/// 规则id
/// </summary>
public string InstituteId { get { return _instituteId; } set { _instituteId = value; OnPropertyChanged("InstituteId"); } } public string InstituteId { get { return _instituteId; } set { _instituteId = value; OnPropertyChanged("InstituteId"); } }
private string _shapeId; private string _shapeId;
/// <summary>
/// 形状id
/// </summary>
public string ShapeId { get { return _shapeId; } set { _shapeId = value; OnPropertyChanged("ShapeId"); } } public string ShapeId { get { return _shapeId; } set { _shapeId = value; OnPropertyChanged("ShapeId"); } }
private DataTable _standardList; private DataTable _standardList;
/// <summary>
/// 定级配置数据
/// </summary>
public DataTable StandardList { get { return _standardList; } set { _standardList = value; OnPropertyChanged("StandardList"); } } public DataTable StandardList { get { return _standardList; } set { _standardList = value; OnPropertyChanged("StandardList"); } }
DataGrid dataGrid; DataGrid dataGrid;
private bool _institutesEnabled = true; private bool _institutesEnabled = true;
/// <summary>
/// 规则下拉列表可用性
/// </summary>
public bool InstitutesEnabled { get { return _institutesEnabled; } set { _institutesEnabled = value; OnPropertyChanged("InstitutesEnabled"); } } public bool InstitutesEnabled { get { return _institutesEnabled; } set { _institutesEnabled = value; OnPropertyChanged("InstitutesEnabled"); } }
private bool _shapesEnabled = true; private bool _shapesEnabled = true;
/// <summary>
/// 形状下拉列表可用性
/// </summary>
public bool ShapesEnabled { get { return _shapesEnabled; } set { _shapesEnabled = value; OnPropertyChanged("ShapesEnabled"); } } public bool ShapesEnabled { get { return _shapesEnabled; } set { _shapesEnabled = value; OnPropertyChanged("ShapesEnabled"); } }
private bool _isUpdateButtonEnabled; private bool _isUpdateButtonEnabled;
/// <summary>
/// 保存按钮可用性
/// </summary>
public bool IsUpdateButtonEnabled { get { return _isUpdateButtonEnabled; } set { _isUpdateButtonEnabled = value; OnPropertyChanged("IsUpdateButtonEnabled"); } } public bool IsUpdateButtonEnabled { get { return _isUpdateButtonEnabled; } set { _isUpdateButtonEnabled = value; OnPropertyChanged("IsUpdateButtonEnabled"); } }
/// <summary>
/// 导入文件数据
/// </summary>
JsonEntity jsonEntity = new JsonEntity(); JsonEntity jsonEntity = new JsonEntity();
private string Save_successful_message = MultilingualHelper.getString("Save_successful_message"); private string Save_successful_message = MultilingualHelper.getString("Save_successful_message");
@ -510,6 +539,7 @@ public class LevelConfigVM : BaseViewModel
Growl.Info(Save_successful_message); Growl.Info(Save_successful_message);
InstitutesEnabled = true; InstitutesEnabled = true;
ShapesEnabled = true; ShapesEnabled = true;
IsUpdateButtonEnabled = false;
} }
else else
{ {

@ -111,18 +111,42 @@ public class GradingResultVM : BaseViewModel
/// </summary> /// </summary>
public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } } public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } }
/// <summary> /// <summary>
/// /// 保存和导出的按钮可用
/// </summary> /// </summary>
public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } } public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } }
/// <summary>
/// 格式为小数点后一位
/// </summary>
private readonly static string digitsFormat = "f1"; private readonly static string digitsFormat = "f1";
/// <summary>
/// 切工总等级(辅助计算用)
/// </summary>
private int totalCutGrade = 0; private int totalCutGrade = 0;
/// <summary>
/// 对称行总等级(辅助计算用)
/// </summary>
private decimal totalSymGrade = 0; private decimal totalSymGrade = 0;
/// <summary>
/// 计算数据
/// </summary>
private AlgorithmResultEntity algorithmResult; private AlgorithmResultEntity algorithmResult;
/// <summary>
/// 用户名
/// </summary>
private string username = ""; private string username = "";
/// <summary>
/// 机器号
/// </summary>
private string machine = ""; private string machine = "";
/// <summary>
/// 形状id
/// </summary>
private string shapeId = string.Empty; private string shapeId = string.Empty;
/// <summary>
/// 规则id
/// </summary>
private string ruleId = string.Empty; private string ruleId = string.Empty;
/// <summary> /// <summary>
/// 构造 /// 构造
@ -130,30 +154,38 @@ public class GradingResultVM : BaseViewModel
/// <param name="result">检测结果</param> /// <param name="result">检测结果</param>
public GradingResultVM(object result) public GradingResultVM(object result)
{ {
SaveAsCommand = new RelayCommand(SaveAs); try
SaveFileCommand = new RelayCommand(SaveFile);
if (result != null)
{ {
algorithmResult = result as AlgorithmResultEntity?? new AlgorithmResultEntity(); SaveAsCommand = new RelayCommand(SaveAs);
InitView(algorithmResult); SaveFileCommand = new RelayCommand(SaveFile);
machine = algorithmResult.DeviceId;
username = Settings.SelectValueById("PERMISSIONS"); if (result != null)
if (ruleId.StartsWith("IGI"))
{ {
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"; catch (Exception ex)
if (IsEnabled)
{ {
AutoSave(); new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
} }
SaveTestResult(SaveStatus.AutoSave);
} }
#region 画面初始化相关操作 #region 画面初始化相关操作
@ -213,37 +245,45 @@ public class GradingResultVM : BaseViewModel
private void InitView(AlgorithmResultEntity result) private void InitView(AlgorithmResultEntity result)
{ {
InitViewportData(result); try
totalCutGrade = 0; {
totalSymGrade = 0; InitViewportData(result);
ruleId = getRuleId(); totalCutGrade = 0;
Standard = result.Standard; totalSymGrade = 0;
shapeId = result.Shape; ruleId = getRuleId();
InitCombobox(); Standard = result.Standard;
Shape = GetName(result.Shape); shapeId = result.Shape;
CrownType = result.CrownType; InitCombobox();
PavType = result.PavType; Shape = GetName(result.Shape);
DiamondCode = result.DiamondCode; CrownType = result.CrownType;
CalWight(result); PavType = result.PavType;
DtResults = new List<DataInfo>(); DiamondCode = result.DiamondCode;
var testItemList = GetTestItemList(); CalWight(result);
Type type = this.GetType(); DtResults = new List<DataInfo>();
foreach (var testItem in testItemList) var testItemList = GetTestItemList();
{ Type type = this.GetType();
string methodName = "get" + testItem; foreach (var testItem in testItemList)
MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic);
if (methodInfo != null)
{ {
object[] parameters = new object[] { result }; string methodName = "get" + testItem;
DataInfo? dataInfo = methodInfo.Invoke(this, parameters) as DataInfo; MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic);
if (dataInfo != null) if (methodInfo != null)
{ {
dataInfo.GradeList = GradeList; object[] parameters = new object[] { result };
DtResults.Add(dataInfo); 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() private string getRuleId()
{ {
@ -317,52 +357,60 @@ public class GradingResultVM : BaseViewModel
} }
private int calGrade(string item ,double value) private int calGrade(string item ,double value)
{ {
decimal cValue = Convert.ToDecimal(value);
List<CalGradeInfo> calGrades = GetCalGradeInfos(item);
if (calGrades == null || calGrades.Count == 0)
{
return 0;
}
int order = 1; int order = 1;
foreach (CalGradeInfo gradeInfo in calGrades) try
{ {
bool isThisGrade = true; decimal cValue = Convert.ToDecimal(value);
List<CalGradeInfo> calGrades = GetCalGradeInfos(item);
if (gradeInfo.Max!= null) { if (calGrades == null || calGrades.Count == 0)
if ( gradeInfo.isMaxExist == 1 && cValue.CompareTo(gradeInfo.Max)<=0) {
{ return 0;
}else if(gradeInfo.isMaxExist == 0 && cValue.CompareTo(gradeInfo.Max) < 0)
{
}
else
{
isThisGrade = false;
}
} }
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 else
{ {
isThisGrade = false; order = gradeInfo.gradeOrder;
} }
} }
if (isThisGrade) totalCutGrade = Math.Max(order, totalCutGrade);
{ }
order = gradeInfo.gradeOrder; catch (Exception ex)
break; {
} new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
else Logger.Error($"全局异常捕获:{ex.Message}", ex);
{
order = gradeInfo.gradeOrder;
}
} }
totalCutGrade = Math.Max(order, totalCutGrade);
return order; return order;
} }
private string calGrade_TOTAL_DEPTH(double avg) private string calGrade_TOTAL_DEPTH(double avg)
@ -736,48 +784,56 @@ public class GradingResultVM : BaseViewModel
#region 文件导出相关 #region 文件导出相关
public void SaveAs(object param) public void SaveAs(object param)
{ {
if (string.IsNullOrEmpty(DiamondCode)) try
{ {
MessageBox messageBox = new MessageBox(); if (string.IsNullOrEmpty(DiamondCode))
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; MessageBox messageBox = new MessageBox();
} MessageBoxResult boxResult = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr,
else MultilingualHelper.getString("ok"),
{ MultilingualHelper.getString("Cancel")
return; );
if (boxResult == MessageBoxResult.OK && inputStr.Length > 0)
{
this.DiamondCode = inputStr;
}
else
{
return;
}
} }
} using (var folderBrowserDlg = new FolderBrowserDialog())
using (var folderBrowserDlg = new FolderBrowserDialog())
{
// 创建SaveFileDialog实例
SaveFileDialog saveFileDialog = new()
{ {
Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器 // 创建SaveFileDialog实例
FileName = this.DiamondCode // 默认文件名 SaveFileDialog saveFileDialog = new()
}; {
Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器
FileName = this.DiamondCode // 默认文件名
};
// 显示对话框并检查结果 // 显示对话框并检查结果
bool? result = saveFileDialog.ShowDialog(); bool? result = saveFileDialog.ShowDialog();
if (result == true) if (result == true)
{
// 获取用户选择的文件路径
string filePath = saveFileDialog.FileName;
if (!saveFileDialog.CheckPathExists)
{ {
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) private async void ExportFile(string filePath)
{ {
@ -866,116 +922,140 @@ public class GradingResultVM : BaseViewModel
} }
return result; return result;
} }
/// <summary>
/// txt文件导出
/// </summary>
/// <param name="filePath"></param>
private void TxtFile(string filePath) private void TxtFile(string filePath)
{ {
string fileName = filePath + ".txt"; try
using (var file = File.Create(fileName))
{ {
Measurements info = algorithmResult.measurements; string fileName = filePath + ".txt";
StreamWriter stream = new StreamWriter(file); using (var file = File.Create(fileName))
stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}"); {
stream.WriteLine($"SARIN WEIGHT={Wight}"); Measurements info = algorithmResult.measurements;
stream.WriteLine($"M1={info.M1}"); StreamWriter stream = new StreamWriter(file);
stream.WriteLine($"M2={info.M2}"); stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}");
stream.WriteLine($"M3={info.M3}"); stream.WriteLine($"SARIN WEIGHT={Wight}");
stream.WriteLine($"TABLE={info.TABLE*100}"); stream.WriteLine($"M1={info.M1}");
stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}"); stream.WriteLine($"M2={info.M2}");
stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}"); stream.WriteLine($"M3={info.M3}");
stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}"); stream.WriteLine($"TABLE={info.TABLE*100}");
stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}"); stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}");
stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}"); stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}");
stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}"); stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}");
stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}"); stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}");
stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}"); stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}");
stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}"); stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}");
stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}"); stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}");
stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}"); stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}");
stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}"); stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}");
stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}"); stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}");
stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}"); stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}");
stream.WriteLine($"GIRDLE={info.GIRDLE * 100}"); stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}");
stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}"); stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}");
stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}"); stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}");
stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}"); stream.WriteLine($"GIRDLE={info.GIRDLE * 100}");
stream.WriteLine($"CULET={info.CULET*100}"); stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}");
stream.WriteLine($"MACHINE={machine}"); stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}");
stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}"); stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}");
stream.WriteLine($"LW RATIO={info.LW_RATIO}"); stream.WriteLine($"CULET={info.CULET*100}");
stream.WriteLine($"DS={DS}"); stream.WriteLine($"MACHINE={machine}");
stream.WriteLine($"COC={info.COC * 100}"); stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}");
stream.WriteLine($"USER={username}"); stream.WriteLine($"LW RATIO={info.LW_RATIO}");
string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??""; stream.WriteLine($"DS={DS}");
stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}"); stream.WriteLine($"COC={info.COC * 100}");
string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; stream.WriteLine($"USER={username}");
stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}"); string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??"";
string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}");
stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}"); string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? "";
string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}");
stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}"); string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? "";
string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}");
stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}"); string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? "";
string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}");
stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}"); string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? "";
stream.WriteLine($"TA={info.TA}"); stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}");
stream.WriteLine($"LGF={info.LGF * 100}"); string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? "";
stream.WriteLine($"STAR={info.STAR * 100}"); stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}");
stream.Close(); 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);
} }
} }
/// <summary>
/// excel文件导出
/// </summary>
/// <param name="filePath"></param>
private void ExcelFile(string filePath) private void ExcelFile(string filePath)
{ {
string fileName = filePath + ".xlsx"; try
IWorkbook workbook = new XSSFWorkbook(); {
ISheet sheet = workbook.CreateSheet("Sheet1"); string fileName = filePath + ".xlsx";
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
int col = 0; int col = 0;
int row = 0; int row = 0;
var dataRow = sheet.CreateRow(row); var dataRow = sheet.CreateRow(row);
dataRow.CreateCell(col++).SetCellValue("Measurement1"); dataRow.CreateCell(col++).SetCellValue("Measurement1");
dataRow.CreateCell(col++).SetCellValue("Measurement2"); dataRow.CreateCell(col++).SetCellValue("Measurement2");
dataRow.CreateCell(col++).SetCellValue("Measurement3"); dataRow.CreateCell(col++).SetCellValue("Measurement3");
dataRow.CreateCell(col++).SetCellValue("Table"); dataRow.CreateCell(col++).SetCellValue("Table");
dataRow.CreateCell(col++).SetCellValue("Crown Height"); dataRow.CreateCell(col++).SetCellValue("Crown Height");
dataRow.CreateCell(col++).SetCellValue("Pavilion Depth"); dataRow.CreateCell(col++).SetCellValue("Pavilion Depth");
dataRow.CreateCell(col++).SetCellValue("Total Depth"); dataRow.CreateCell(col++).SetCellValue("Total Depth");
dataRow.CreateCell(col++).SetCellValue("Crown Angle"); dataRow.CreateCell(col++).SetCellValue("Crown Angle");
dataRow.CreateCell(col++).SetCellValue("Pavilion Angle"); dataRow.CreateCell(col++).SetCellValue("Pavilion Angle");
dataRow.CreateCell(col++).SetCellValue("Culet Size"); dataRow.CreateCell(col++).SetCellValue("Culet Size");
dataRow.CreateCell(col++).SetCellValue("Girdle Percent"); dataRow.CreateCell(col++).SetCellValue("Girdle Percent");
dataRow.CreateCell(col++).SetCellValue("Girdle Name"); dataRow.CreateCell(col++).SetCellValue("Girdle Name");
dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym"); dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym");
dataRow.CreateCell(col++).SetCellValue("SYM"); dataRow.CreateCell(col++).SetCellValue("SYM");
dataRow.CreateCell(col++).SetCellValue("CUT-PROP"); dataRow.CreateCell(col++).SetCellValue("CUT-PROP");
row++; row++;
col = 0; col = 0;
dataRow = sheet.CreateRow(row); dataRow = sheet.CreateRow(row);
Measurements info = algorithmResult.measurements; Measurements info = algorithmResult.measurements;
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M1)}(mm)"); 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.M2)}(mm)");
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M3)}(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.TABLE)}%");
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.CROWN_HEIGHT)}%"); 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.PAV_DEPTH)}%");
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TOTAL_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.CROWN_ANGLE)}°");
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.PAV_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_A(info.CULET_SIZE)}(mm)");
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%"); dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%");
// 腰部厚度英文 // 腰部厚度英文
dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}"); dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}");
dataRow.CreateCell(col++).SetCellValue($""); dataRow.CreateCell(col++).SetCellValue($"");
string sysmlevel = ""; string sysmlevel = "";
if (!string.IsNullOrEmpty(SymLevelTotal)) if (!string.IsNullOrEmpty(SymLevelTotal))
{ {
sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? "")); sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? ""));
} }
dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}"); dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}");
dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"); dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}");
// 保存Excel文件 // 保存Excel文件
using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) 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);
} }
} }

Loading…
Cancel
Save