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_17 : BaseTemplate { /// /// 设备名称 /// internal readonly string EquipmentNameAddress = "[F,1]"; /// /// 安装地点 /// internal readonly string InstallationSiteAddress = "[R,1]"; /// /// 设备编号 /// internal readonly string EquipmentNumberAddress = "[F,2]"; /// /// 设备型号 /// internal readonly string EquipmentModelAddress = "[R,2]"; /// /// 异常处理固定字符 /// internal override string ExceptionFreezeString { get { return "异常备注:"; } } /// /// 正文 /// 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; } } /// /// 其他异常处理 /// internal override SpreadsheetPopupMenu popupException { get { if (_popupException == null) { _popupException = new SpreadsheetPopupMenu() { Caption = "其他异常处理", Items = { new DXMenuItem("编辑",(s,e)=> { WriteValue(EnumMaintenanceCellType.ExceptionDescription, ExceptionFreezeString, EnumMaintenanceOperationType.Write,true); }), new DXMenuItem("清空", (a, aa) => { WriteValue(EnumMaintenanceCellType.ExceptionDescription, "", EnumMaintenanceOperationType.Clear); }), } }; } return _popupException; } } public Template_AM_17() : base() { } /// /// 初始化对象 /// /// Worksheet 控件对象 /// 当前计划类型 /// 当前编辑列 public Template_AM_17(Worksheet ws) : base(ws) { #region 设备名称 EquipmentName.Add(SheetExtend.AddressToIndex(EquipmentNameAddress)); #endregion #region 安装地点 InstallationSite.Add(SheetExtend.AddressToIndex(InstallationSiteAddress)); #endregion #region 设备编号 EquipmentID.Add(SheetExtend.AddressToIndex(EquipmentNumberAddress)); #endregion #region 设备型号 DeviceSpecification.Add(SheetExtend.AddressToIndex(EquipmentModelAddress)); #endregion int JanColIndex = SheetExtend.ColumnIndexFromLetter("O"); int DecColIndex = SheetExtend.ColumnIndexFromLetter("Z"); 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 = JanColIndex; colIndex <= DecColIndex; colIndex++) { Cell cell = worksheet.Cells[rowIndex, colIndex]; Cell PreviousCell = worksheet[rowIndex, JanColIndex - 1]; if (PreviousCell.IsMerged) { //获取主单元格位置 int PreRowIndex = (PreviousCell.GetMergedRanges()[0]).TopRowIndex; int PreColumnIndex = (PreviousCell.GetMergedRanges()[0]).LeftColumnIndex; PreviousCell = worksheet[PreRowIndex, PreColumnIndex]; } if ((PreviousCell?.Value?.TextValue ?? "") == "保养人签字") { // 保养人签字 Operation.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = colIndex, MaintenanceType = EnumMaintenanceType.Monthly, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.TextValue + "" }); // 异常备注: ExceptionDescription.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = 0, MaintenanceType = EnumMaintenanceType.Monthly, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.TextValue + "" }); } else if ((PreviousCell?.Value?.TextValue ?? "") == "保养日期") { // 保养日期 OperationDate.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = colIndex, MaintenanceType = EnumMaintenanceType.Monthly, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.TextValue + "" }); } else { // 正文 Content.Add(new SheetDataItem { RowIndex = rowIndex, ColumnIndex = colIndex, MaintenanceType = EnumMaintenanceType.Monthly, MaintenanceTypeValue = worksheet.Cells[3, colIndex].Value.TextValue + "" }); } } } } } }