internal override void Execute(ExcelFile Workbook, TWaitingCoords Coords, TBand Band) { int t, l, b, r; GetBounds(Coords, out t, out l, out b, out r); TXlsCellRange rangeToDelete = new TXlsCellRange(t, l, b, r); if (Sheet1 <= 0 || Sheet2 <= 0) { Workbook.DeleteRange(rangeToDelete, InsertMode); } else { Workbook.DeleteRange(Sheet1, Sheet2, rangeToDelete, InsertMode); } if (Sheet1 <= 0 || Sheet2 <= 0 || (Sheet1 <= Workbook.ActiveSheet && Sheet2 >= Workbook.ActiveSheet)) { if (Band != null) { if (InsertMode == TFlxInsertMode.ShiftRangeDown || InsertMode == TFlxInsertMode.ShiftRowDown) { Band.AddTmpExpandedRows(-rangeToDelete.RowCount, Left + Coords.ColOfs, Left + Coords.ColOfs + rangeToDelete.ColCount); Band.TmpPartialRows += -rangeToDelete.RowCount; } else if (InsertMode == TFlxInsertMode.ShiftColRight || InsertMode == TFlxInsertMode.ShiftRangeRight) { Band.AddTmpExpandedCols(-rangeToDelete.ColCount, Top + Coords.RowOfs, Top + Coords.RowOfs + rangeToDelete.RowCount); Band.TmpPartialCols += -rangeToDelete.ColCount; } } } }
internal override void Execute(ExcelFile Workbook, TWaitingCoords Coords, TBand Band) { Workbook.DeleteRange(new TXlsCellRange(Top + Coords.RowOfs, Left + Coords.ColOfs, Top + Coords.RowOfs, LastCol + Coords.ColOfs), TFlxInsertMode.ShiftRangeDown); Band.AddTmpExpandedRows(-1, Left + Coords.ColOfs, LastCol + Coords.ColOfs); Band.TmpPartialRows -= 1; }
internal override void Execute(ExcelFile Workbook, TWaitingCoords Coords, TBand Band) { ExcelFile IncludedReport = FInclude.Run(); //Workbook.InsertAndCopyRange(IncludedReport.GetNamedRange(FInclude.RangeName, IncludedReport.ActiveSheet), // Top+RowOfs, Left+ColOfs, 1, InsertMode , TRangeCopyMode.All, IncludedReport, IncludedReport.ActiveSheet); //This is to avoid inserting one row more on the include. TXlsNamedRange range = IncludedReport.GetNamedRange(FInclude.RangeName, IncludedReport.ActiveSheet); //We don't want to copy he full range even if using "__". Just *insert* the full range //if (InsertMode == TFlxInsertMode.ShiftRowDown) {range.Left = 1; range.Right = FlxConsts.Max_Columns + 1;} //if (InsertMode == TFlxInsertMode.ShiftColRight) {range.Top = 1; range.Bottom = FlxConsts.Max_Rows + 1;} if (InsertMode == TFlxInsertMode.ShiftColRight || InsertMode == TFlxInsertMode.ShiftRangeRight) { TXlsCellRange rangeToInsert = new TXlsCellRange(range.Top, range.Left, range.Bottom, range.Right - 1); if (InsertMode == TFlxInsertMode.ShiftColRight) { rangeToInsert.Top = 1; rangeToInsert.Bottom = FlxConsts.Max_Rows + 1; } if (range.Left > range.Right) { } // not possible. Workbook.DeleteRange(); else if (range.Left < range.Right) { int CopyTop = Top + Coords.RowOfs; if (InsertMode == TFlxInsertMode.ShiftColRight) { CopyTop = 1; } Workbook.InsertAndCopyRange(rangeToInsert, CopyTop, Left + Coords.ColOfs, 1, InsertMode, TRangeCopyMode.None); if (Band != null) { Band.AddTmpExpandedCols(rangeToInsert.ColCount, Top + Coords.RowOfs, Top + Coords.RowOfs + rangeToInsert.RowCount); Band.TmpPartialCols += rangeToInsert.ColCount; } } CopyRowAndColFormat(Workbook, Coords, IncludedReport, range); if (range.Left <= range.Right) { Workbook.InsertAndCopyRange(range, Top + Coords.RowOfs, Left + Coords.ColOfs, 1, TFlxInsertMode.NoneRight, TRangeCopyMode.AllIncludingDontMoveAndSizeObjects, IncludedReport, IncludedReport.ActiveSheet); } } else { TXlsCellRange rangeToInsert = new TXlsCellRange(range.Top, range.Left, range.Bottom - 1, range.Right); if (InsertMode == TFlxInsertMode.ShiftRowDown) { rangeToInsert.Left = 1; rangeToInsert.Right = FlxConsts.Max_Columns + 1; } if (range.Top > range.Bottom) { } // not possible. Workbook.DeleteRange(); else if (range.Top < range.Bottom) { int CopyLeft = Left + Coords.ColOfs; if (InsertMode == TFlxInsertMode.ShiftRowDown) { CopyLeft = 1; } Workbook.InsertAndCopyRange(rangeToInsert, Top + Coords.RowOfs, CopyLeft, 1, InsertMode, TRangeCopyMode.None); if (Band != null) { Band.AddTmpExpandedRows(rangeToInsert.RowCount, Left + Coords.ColOfs, Left + Coords.ColOfs + rangeToInsert.ColCount); Band.TmpPartialRows += rangeToInsert.RowCount; } } CopyRowAndColFormat(Workbook, Coords, IncludedReport, range); if (range.Top <= range.Bottom) { Workbook.InsertAndCopyRange(range, Top + Coords.RowOfs, Left + Coords.ColOfs, 1, TFlxInsertMode.NoneDown, TRangeCopyMode.AllIncludingDontMoveAndSizeObjects, IncludedReport, IncludedReport.ActiveSheet); } } }