ITabSheetPrinter.PagePrintableRect

Синтаксис Fore

PagePrintableRect(PageNumber: Integer): IGxRect;

Синтаксис Fore.NET

PagePrintableRect[PageNumber: Integer]: Prognoz.Platform.Interop.Drawing.GxRect;

Параметры

PageNumber - номер страницы, для которой необходимо получить печатаемый диапазон. Нумерация страниц начинается с единицы.

Описание

Свойство PagePrintableRect возвращает диапазон ячеек, который будет напечатан на указанной странице.

Комментарии

Данное свойство возвращает прямоугольник, границы которого содержат координаты верхней левой и правой нижней ячеек печатаемого диапазона.

Пример Fore

Для выполнения примера предполагается наличие в репозитории регламентного отчета с идентификатором «Report_1».

Sub UserProc;
Var
    MB: IMetabase;
    Rep: IPrxReport;
    Sheets: IPrxSheets;
    Tab: IPrxTable;
    TSheet: ITabSheet;
    TabPrint: ITabSheetPrinter;
    PrintRange: IGxRect;
    PageNum: Integer;
Begin
    MB := MetabaseClass.Active;
    Rep := MB.ItemById("Report_1").Bind As IPrxReport;
    Sheets := Rep.Sheets;
    For Each Tab In Sheets Do
        TabPrint := Tab.CreatePrinter;
        Debug.WriteLine("Лист: " + (Tab As IPrxSheet).Name +
            "; Количество страниц: " + TabPrint.GetPageCount.ToString);
        TSheet := Tab.TabSheet;
        Debug.Indent;
        For PageNum := 1 To TabPrint.GetPageCount Do
            PrintRange := TabPrint.PagePrintableRect(PageNum);
            Debug.WriteLine("Страница: " + PageNum.ToString +
                "; Печатаемый диапазон ячеек:" +
                TSheet.Cells(PrintRange.Top, PrintRange.Left, PrintRange.Bottom, PrintRange.Right).Address);
        End For;
        Debug.Unindent;
    End For;
End Sub UserProc;

При выполнении примера в консоль среды разработки будет выведен список листов регламентного отчета. Для каждого листа будет выведено количество страниц, на которые он будет разбит при печати. Для каждой страницы будет выведен печатаемый диапазон ячеек.

Пример Fore.NET

Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Imports System.Diagnostics;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Rep: IPrxReport;
    Sheets: IPrxSheets;
    Tab: IPrxTable;
    TSheet: ITabSheet;
    TabPrint: ITabSheetPrinter;
    PrintRange: IGxRect;
    PageNum: Integer;
Begin
    MB := Params.Metabase;
    Rep := MB.ItemById["Report_1"].Bind() As IPrxReport;
    Sheets := Rep.Sheets;
    For Each Tab In Sheets Do
        TabPrint := Tab.CreatePrinter();
        Debug.WriteLine("Лист: " + (Tab As IPrxSheet).Name +
            "; Количество страниц: " + TabPrint.GetPageCount().ToString());
        TSheet := Tab.TabSheet;
        Debug.Indent();
        For PageNum := 1 To TabPrint.GetPageCount() Do
            PrintRange := TabPrint.PagePrintableRect[PageNum];
            Debug.WriteLine("Страница: " + PageNum.ToString() +
                "; Печатаемый диапазон ячеек:" +
                TSheet.Cells[PrintRange.Top, PrintRange.Left, PrintRange.Bottom, PrintRange.Right].Address);
        End For;
        Debug.Unindent();
    End For;
End Sub;

Данная процедура является точкой входа для .NET-сборки. При выполнении примера в консоль среды разработки будет выведен список листов регламентного отчета. Для каждого листа будет выведено количество страниц, на которые он будет разбит при печати. Для каждой страницы будет выведен печатаемый диапазон ячеек.

См. также:

ITabSheetPrinter