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 + "" });
}
}
}
}
}
}