Возвращает высоту Листа выполняемого Отчета, в единицах: 960 точек на дюйм (Dots Per Inch - dpi).

iPageHeight = oReportListener.GetPageHeight()

Параметры

Отсутствуют.

Expand imageВозвращаемое значение

Тип данных Integer, величина высоты Листа (страницы), в единицах измерения 1/960ths of an inch. Между выполняемыми Отчетами данный метод возвращает значените = 0.

Expand imageКомментарии

Применяется в: ReportListener, объект.

Данный метод, как и метод GetPageWidth используется Объектом Предварительного просмотра (Preview Object) или другим "участником"  процесса вывода результатов Отчета для запроса активного объекта ReportListener величин размерности текущей страницы вывода, каковы текущие установки Принтера (печатающего устройства) относительно размеров Листа при выполнении активного Отчета. Активный контейнерPreviewContainer работающего объекта ReportListener использует данные Методы при вызове объектом ReportListener метода отображения результатов отчета Show, где выполняются необходимые вычисления для правильного отображения результатов Отчета.

Рассматриваемые Методы обеспечивают возврат актуальных значений размеров Страниц для вывода всех графических точек выполняемого Отчета в том случае, если пользователь не использует в кодах Событий BeforeReport и UnloadReport опции NOPAGEEJECT при выполнении команды REPORT FORM. Если вы все таки используете опцию NOPAGEJECT, данные методы продолжают возвращать актуальные размеры Страницы, пока не будет выполнена команда REPORT FORM без опции NOPAGEEJECT в программном коде соответствующего События UnloadReport. В других случаях, данные методы возвращают значения = 0.

NoteПримечание

Рассматриваемые Методы GetPageHeight и GetPageWidth обеспечивают возврат актуальных значений всякий раз, когда объект ReportListener определяет необходимые размеры Страницы при выполнении текущего задания Печати. Объект ReportListener не вычисляет новые значения размеров Страницы Печати при выполнении пользователем соответствующих команд REPORT FORM с использованием опции NOPAGEJECT,  которые являются частью одной очереди заданий на Печать (в смысле очереди печати ОС Windows). Однако, вы можете создать пользовательский объект, как производный от класса ReportListener,  который сможет управлять несколькими вариантами размеров Страниц Печати при выполнении планируемого задания на Печать.

Дополнительную информацию о возможностях управления Событиями выполняемых Отчетов смотрите в разделе: Основные понятия  Объектного Сопровождения Отчетов в системе Visual FoxPro (Object-Assisted Reporting).

Expand imageПример

Вы можете переопределить стандартные Коды Методов, обеспечивающих пользовательскую настройку размеров Страниц Печати.

NoteРекомендации

Требуется обеспечить работающие объекты ReportListener актуальной информацией о действительных размерах Страниц Печати, которые внутренний механизм этих объектов направляет на печатающее устройство. Если принтер получает информацию о размерах Страниц для каждой активной страницы печати, и если получаемые размеры не соответствуют установленному формату, принтер может произвольно интерпретировать получаемые результаты (что может не соответствовать действительности, или искажать результаты Печати). Например, может быть урезан выходной поток Печати, или дынные выводятся без разбиения на Страницы (сплошным потоком). Однако, данная возможность переопределения указанных Методов позволяет значительно усилить функционал рассматриваемого объекта ReportListener, что широко можно использовать при построении многофункциональных Страниц Отчетов, например, в формате HTML.

В представленном далее Примере, объект, производный от класса ReportListener, переопределяет код Метода GetPageHeight, который задает  (возвращает) пользовательское значение Высоты Страницы. Данный пример отображает Предварительный просмотр двух Отчетов, с различными размерами Высоты Страницы, при этом используются также Метод объекта ReportListener DoMessage и свойство OutputPageCount, которые своей функциональностью обеспечивают получение двух Отчетов, имеющих различные размеры Страниц.

 CopyCode imageКопировать Код
LOCAL loReportListener, lcFRX

lcFRX = GETFILE("frx")
IF EMPTY(lcFRX)
RETURN
ENDIF

loReportListener = CREATEOBJECT("halfSizePage")

REPORT FORM (lcFRX) OBJECT loReportListener
loReportListener.DoMessage("This report run was: " + ;
TRANSF(loReportListener.OutputPageCount) + " pages long.")

loReportListener.wantHalfSizePage = .T.

REPORT FORM (lcFRX) OBJECT loReportListener
loReportListener.DoMessage("This report run was: " + ;
TRANSF(loReportListener.OutputPageCount) + " pages long.")


DEFINE CLASS halfSizePage As ReportListener
ListenerType = 1
AllowModalMessages = .T.
wantHalfSizePage = .F.

PROCEDURE GetPageHeight()
LOCAL liSize
liSize = DODEFAULT()
RETURN IIF(THIS.wantHalfSizePage, liSize/2, liSize)
ENDDEFINE

Expand imageСм. также