public override void Undo(object p_args) { MatrixArgs args = p_args as MatrixArgs; RptMatrix mtx = args.Matrix; if (args.HeaderType == RptMtxHeaderType.Col) { mtx.HideColHeader = !args.Val; mtx.RowSpan += mtx.ColHeader.RowSpan * (!args.Val ? -1 : 1); } else { mtx.HideRowHeader = !args.Val; mtx.ColSpan += mtx.RowHeader.ColSpan * (!args.Val ? -1 : 1); } mtx.Update(true); }
public override object Execute(object p_args) { MatrixArgs args = p_args as MatrixArgs; RptMatrix mtx = args.Matrix; if (args.HeaderType == RptMtxHeaderType.Col) { //重做 if (!args.IsFirst) { mtx.HideColHeader = args.Val; } else { args.Val = mtx.HideColHeader; } mtx.RowSpan += mtx.ColHeader.RowSpan * (args.Val ? -1 : 1); } else { //重做 if (!args.IsFirst) { mtx.HideRowHeader = args.Val; } else { args.Val = mtx.HideRowHeader; } mtx.ColSpan += mtx.RowHeader.ColSpan * (args.Val ? -1 : 1); } if (args.IsFirst) { args.IsFirst = false; } mtx.Update(true); return(mtx); }