Ejemplo n.º 1
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        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);
                }
            }
        }