Во время работы Приложение Вывода Отчета (ReportOutput.app) поддерживает коллекцию ссылок на объект ReportListener. ReportOutput.app объявляет область видимости коллекции ссылок глобально с помощью команды PUBLIC. Коллекция позволяет обработчику отчетов использовать один объект, порожденный от класса ReportListener для множества команд REPORT FORM или LABEL. Для большей информации см. Как работает Приложения Вывода Отчета.
Вы можете использовать коллекцию для установки свойств экземпляра объекта ReportListener до вызова команд REPORT FORM и LABEL или для проверки результатов прогона отчета без назначения переменной для управления ссылкой явным образом.
ReportOutput.app использует последовательную коллекцию с ключевым выражением, поэтому Вы можете легко найти требуемую ссылку.
![]() |
---|
Некоторый код в этом разделе использует системную переменную _REPORTOUTPUT для вызова ReportOutput.app. _REPORTOUTPUT может содержать имя другого Приложения Вывода Отчета в вашем окружении. В этом случае замените |
Инициализация коллекции ссылок и создание членов коллекции ссылок
Создать члена коллекции ссылок
-
Вы можете создать члена коллекции ссылок во время прогона отчета и не используя явных переменных для ссылок. Вызвав следующую команду, где <N> - тип вывода, который вам нужен для команды REPORT FORM Например, используйте значение 1 как <N> для предварительного просмотра отчета.
Копировать код
REPORT FORM ? OBJECT TYPE <N>
-
Вы можете создать члена коллекции ссылок без запуска отчета на исполнение. Вызовите следующую команду, где <N> - тип вывода, который вам нужен для команды REPORT FORM. Например, используйте значение 0 как <N> для печати отчета:
Копировать код
DO (_REPORTOUTPUT) WITH <N>
-
Вы можете создать члена коллекции ссылок представляя текущую таблицу регистрации Приложения Вывода Отчета и инициализируя коллекцию в то же время.. Этот метод не создает ссылки на объект ReportListener немедленно. Инициализация коллекции данным образом и описание таблица конфигурации, как одного члена коллекции является стандартным режимом по умолчанию Приложения Вывода Отчета при вызове приложения без параметров:
Копировать код
#DEFINE OUTPUTAPP_CONFIG_READ -200 DO (_REPORTOUTPUT) WITH OUTPUTAPP_CONFIG_READ * или передать переменную по ссылке во втором * параметре, как вы обычно делаете для ссылок на ReportListener, * получить имя текущей * таблицы регимтрации: LOCAL lcFile DO (_REPORTOUTPUT) WITH OUTPUTAPP_CONFIG_READ, lcFile * или просто инициализировать коллекцию без параметров: DO (_REPORTOUTPUT) ? _oReportOutput[TRANSFORM(OUTPUTAPP_CONFIG_READ)]
Проверка членов коллекции ссылок
Получить ссылку на объект ReportListener из коллекции ReportOutput
- Используйте строковое значение числовой величины, представляющей тип вывода для ссылки на ReportListener reference, как коллекции ключевых значений. В команде ниже <N> представляет тип вывода обеспечиваемый этой ссылкой на объект ReportListener.
Копировать код
? _oReportOutput[TRANSFORM(<N>)].Class
-
Используйте члена коллекции ссылок после прогона отчета. Например, проверить общее количество страниц в при прогоне отчета:
Копировать код
REPORT FORM ? OBJECT TYPE 0 ? _oReportOutput["0"].PageTotal
-
Используйте члена коллекции ссылок до прогона отчета для настройки его поведения. Например, предотвратить feedback пользователя до генерации вывода XML:
Копировать код
DO (_REPORTOUTPUT) WITH 4 _oReportOutput["4"].QuietMode = .T.
Подсказка
Как показано ниже, специальные отрицательные значения, используемые ReportOutput.app для целей конфигурации, могут быть использованы как ключи в этой коллекции, они так же не обеспечивают ссылки на объекты, порожденные от класса ReportListener. Для дополнительных примеров см. "Проверка текущей таблицы регистрации Приложения Вывода Отчета" в Как: Описать таблицу регистрации Приложения Вывода Отчетов.
Изменение имени переменной коллекции ссылок по умолчанию
В инструкции выше Вы использовали имя переменной _oReportOutput
при адресации к коллекции ссылок. Чтобы изменить имя этой переменной в Вашем приложении, перекомпилируйте ReportOutput.app с инструкцией для использования имени переменной, предпочтительной для Вас.
Перекомпилируйте ReportOutput.app с другим именем коллекции ссылок
- Раскройте подпапку ReportOutput в папке, где хранятся zip файлы, Visual FoxPro's Tools\Xsource. Для большей информации о Xsource см. Папка XSource.
- Найдите исходные файлы компонента ReportOutput. Измените ReportOutput.H (фйл заголовка).
Копировать код
CD <your source folder> MODIFY COMMAND ReportOutput.H
-
Найдите следующие две строки кода в файле заголовка:
Копировать код
#DEFINE OUTPUTAPP_REFVAR _oReportOutput #DEFINE OUTPUTAPP_REFVARCLASS "Collection"
-
Редактируйте значение
_oReportOutput
, замещая его именем переменной, которой Вы хотите использовать в качестве имени для Вашего приложения. Вы также можете изменить значение"Collection"
, замещая его именем класса, производным от Collection, который будет использоваться приложением ReportOutput.app для создания экземпляра коллекции.Замечание
IЕсли Вы изменили значение
OUTPUTAPP_REFVARCLASS,описание класса, которое Вы назначили с помощью этой константы, должно быть в области видимости, когда Вы вызываете
ReportOutput.App. Для дополнительной информации см. команду SET CLASSLIB и команду SET PROCEDURE - Сохраните Ваши изменения.
- Перестройте файл ReportOutput.App, при этом используйте переключатель RECOMPILE:
Копировать код
BUILD APPLICATION ReportOutput FROM ReportOutput RECOMPILE
-
Сохраните имя и место нахождения Вашего нового ReportOutput.app в системной переменной _REPORTOUTPUT, а также в файле CONFIG.FPW Вашего приложения или коде setup. Для дополнительной информации см. Setting Configuration Options at Startup.
Копировать код
_ReportOutput = <your ReportOutput.app filename and location>
-
Распространяйте новый файл ReportOutput.App с Вашими приложениями.