using DevExpress.Spreadsheet; using DevExpress.Utils.Menu; using DevExpress.XtraSpreadsheet.Menu; using DeviceRepair.Models; using DeviceRepair.Models.Enum; using DeviceRepairAndOptimization.Common.NpoiExtend; namespace DeviceRepairAndOptimization.Biz.PreserveTemplate { public class Template_AM_15 : BaseTemplate { /// /// 设备型号 /// internal readonly string EquipmentModelAddress = "[C,1]"; /// /// 设备编号 /// internal readonly string EquipmentNumberAddress = "[M,1]"; /// /// 年月 /// internal readonly string YearAndMonthAddress = "[I,3]"; /// /// 班次/频次 /// internal readonly string BanciColumnAddress = "H"; /// /// 日期 /// internal readonly string DayColumnAddress = "I"; /// 正文 /// internal override SpreadsheetPopupMenu popupContent { get { if (_popupContent == null) { _popupContent = new SpreadsheetPopupMenu() { Caption = "正文", Items = { new DXMenuItem("正常",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "√"); }), new DXMenuItem("不正常",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "△", EnumMaintenanceOperationType.Write, true);}), new DXMenuItem("不适用或无生产",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "N/A"); }), new DXMenuItem("清空",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "", EnumMaintenanceOperationType.Clear); }), } }; } return _popupContent; } } public Template_AM_15() : base() { } /// /// 初始化对象 /// /// Worksheet 控件对象 /// 当前计划类型 /// 当前编辑列 public Template_AM_15(Worksheet ws) : base(ws) { #region 设备型号 DeviceSpecification.Add(SheetExtend.AddressToIndex(EquipmentModelAddress)); #endregion #region 设备型号 EquipmentID.Add(SheetExtend.AddressToIndex(EquipmentNumberAddress)); #endregion #region 年检表 年/月 YearAndMonth.Add(SheetExtend.AddressToIndex(YearAndMonthAddress)); #endregion int MonthStartColIndex = SheetExtend.ColumnIndexFromLetter(DayColumnAddress); int MonthEndColIndex = MonthStartColIndex + 30; int BanciColIndex = SheetExtend.ColumnIndexFromLetter(BanciColumnAddress); for (int rowIndex = 4; rowIndex < LastUsedRowIndex; rowIndex++) { #region 空行判断 Cell FirstCell = worksheet.Cells[rowIndex, 0]; if (FirstCell.Value.IsEmpty && !FirstCell.IsMerged) break; #endregion for (int colIndex = MonthStartColIndex; colIndex <= MonthEndColIndex; colIndex++) { Cell cell = worksheet.Cells[rowIndex, colIndex]; Cell BanciCell = worksheet[rowIndex, BanciColIndex]; EnumMaintenanceBanciType Banci; switch ((BanciCell?.Value?.TextValue ?? "").Trim()) { case "早": Banci = EnumMaintenanceBanciType.Morning; break; case "中": Banci = EnumMaintenanceBanciType.Noon; break; case "夜": Banci = EnumMaintenanceBanciType.Night; break; case "周": case "每周": Banci = EnumMaintenanceBanciType.Week; break; default: Banci = EnumMaintenanceBanciType.None; break; } Cell FirstDataCell = worksheet[FirstCell.RowIndex, FirstCell.ColumnIndex]; if (FirstCell.IsMerged) { //获取主单元格位置 int PreRowIndex = (FirstCell.GetMergedRanges()[0]).TopRowIndex; int PreColumnIndex = (FirstCell.GetMergedRanges()[0]).LeftColumnIndex; FirstDataCell = worksheet[PreRowIndex, PreColumnIndex]; } if ((FirstDataCell?.Value?.TextValue ?? "").Trim() == "其它异常\n及处理") { // 异常备注: ExceptionDescription.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = 2, MaintenanceType = EnumMaintenanceType.Daily, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.NumericValue + "", BanciType = Banci }); // 保养人签字 Operation.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = colIndex, MaintenanceType = EnumMaintenanceType.Daily, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.NumericValue + "", BanciType = Banci }); } else { // 正文 Content.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = colIndex, MaintenanceType = EnumMaintenanceType.Daily, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.NumericValue + "", BanciType = Banci }); } } } } } }