При разработке и распространении приложений Visual FoxPro, вы можете использовать стандартную внешнюю Компоненту ReportOutput.App и дополнительные программные файлы, используемые с ним. В данном параграфе рассматриваются следующие ключевые Вопросы:
-
Как: присоединить внешнюю компоненту ReportOutput.app к вашему Приложению вместе с соответствующей таблицей Регистрации Объектов, приводятся конкретные инструкции.
-
Как: Отредактировать Регистрационную Таблицу, используемую в компоненте ReportOutput.app.
-
Как: Интегрировать Таблицу Регистрации компоненты "Report Output Application" с другой Компонентой типа "Report Output Application" из вашего Приложения, без использования ReportOutput.app.
Использование НеСтандартной Регистрационной Таблицы в вашем Приложении.
Если вы используете в вашем Приложении внешнюю Компоненту ReportOutput.App, как внешний файл, а Таблица Регистрации Типов используется также как внешний файл, то этот файл может иметь Произвольное наименование.
Для описания программного Кода, определяющего внешнюю Таблицу Регистрации Типов, которая является управляющей таблицей Компоненты ReportOutput.app:
-
Создайте на диске Регистрационную Таблицу Типов. Дополнительную информацию о рассматриваемой Таблице смотрите в разделе: Как: Определить Альтернативную Таблицу Регистрации для "Report Output".
-
Внесите необходимые изменения в Записи созданной Таблицы (в соответствие с требованиями вашего Приложения). Смотрите дополнительно: Как: Зарегистрировать пользовательский Объект ReportListener или пользовательский тип OutputType для Компоненты "Report Output".
-
Определите в стартовом файле Приложения ссылку на использование внешней Компоненты ReportOutput.app, которая содержится в системной переменной _REPORTOUTPUT, или просто укажите в файле Конфигурации CONFIG.FPW вашего Приложения ссылку на описанную выше Компоненту. Смотрите дополнительно Раздел: Установка Стартовых параметров в модулях Инициализации.
Копировать Код _ReportOutput = <ваш файл типа ReportOutput.app, и его местоположение>
-
В начальных фрагментах вашего Программного Кода определите планируемую к использованию Регистрационную Таблицу Типов:
Копировать Код #DEFINE OUTPUTAPP_CONFIG_READ -200
DO (_REPORTOUTPUT) with OUTPUTAPP_CONFIG_READ, ;
<имя вашего файла Таблицы Регистрации, и ее размещение>
Изменение значений "по-умолчанию" в Регистрационной Таблице компоненты ReportOutput.app:
У вас имеется возможность выполнить собственную Сборку рассматриваемого Приложения ReportOutput.App, в котором уже будет использоваться нестандартная Таблица Регистрации Типов, планируемая к использованию в вашем Прикладном Модуле (Проекте).
Для Перекомпиляции компоненты ReportOutput.app, в которой используется Нестандартная Таблица Регистрации Типов:
-
Распакуйте подкаталог (папку) ReportOutput, которая размещается в общем Арихиве системы: Visual FoxPro\Tools\Xsource. Смотрите дополнительно раздел Справки: Подкаталог XSource.
-
Переместитесь в указанную выше папку: ReportOutput, где размещены программные файлы рассматриваемой Компоненты. Измените заголовочный файл ReportOutput.H.
Копировать Код CD <имя Подкаталога Компоненты>
MODIFY COMMAND ReportOutput.H -
Обратите внимание на следующие Строки программного Кода в Заголовочном файле:
Копировать Код #DEFINE OUTPUTAPP_INTERNALDBF "_ReportOutputConfig"
#DEFINE OUTPUTAPP_EXTERNALDBF "OutputConfig" -
Замените значение Константы, содержащей текст "OutputConfig", рекомендуется указать Имя вашей Таблицы, файл (.dbf), которая планируется к использованию в качестве Внешней Регистрационной Таблицы вашего Приложения. Измените значение константы, содержащей Текст "_ReportOutputConfig", рекомендуется указать Имя файла Таблицы, которая будет использоваться как Внутренняя Таблица Приложения, таблица должна быть включена в Проект Приложения.
-
Сохраните Изменения.
-
Выполните Компиляцию-Сборку новой версии ReportOutput.App, указав дополнительный Ключ RECOMPILE:
Копировать Код BUILD APPLICATION ReportOutput FROM ReportOutput RECOMPILE
-
Если вы изменили значение Константы OUTPUTAPP_INTERNALDBF, то в процессе сборки Проекта возможно потребуется уточнение местоположения указанной вами Таблицы Регистрации Типов, которая указывается в данной Константе. Если Диспетчер Проекта не сможет автоматически определить местоположение Таблицы, то вам будет задан уточняющий Запрос.
-
Определите значение системной переменной _REPORTOUTPUT в стартовом модуле вашего риложения, которая должна содержать ссылку на созданное в предыдущих пунктах новое приложение ReportOutput.app, или укажите в качестве настроечного параметра в файле стартовой Конфигурации CONFIG.FPW значение данной системной переменной. Смотрите дополнительно раздел: Установка стартовых параметров в модулях Инициализации.
Копировать Код _ReportOutput = <Имя вашего ReportOutput.app, с указанием его местоположения>
-
Включите созданный Модуль ReportOutput.App в дистрибутивный установочный пакет вашего Приложения. Определите соответствующую ссылку на Таблицу Регистрации Типов, которая выбрана вами и определена в рассматриваемом Приложении обработки Отчетов.
Сборка Компоненты "Report Output Application" непосредственно в вашем Приложении.
Если вы включаете Компоненту "Report Output Application" в установочный пакет вашего Приложения (.app / .exe), то Таблица Регистрации может иметь произвольное Наименование, это относится как к Внутренней, так и к Внешней Таблице. В данном Параграфе описываются вопросы включения рассматриваемых выше Компонент и Регистрационных Таблиц в Проект вашего Приложения.
Совет |
---|
Если вы следуете данным Рекомендациям, то вы не должны распространять компоненту ReportOutput.App отдельно от вашего Приложения. |
Для включения Таблицы Регистрации и Компонент "Report Output" вашего Приложения (.app / .exe) :
-
Включите фрагмент программного кода, аналогичный представленному далее, в стартовых модулях приложения - чтобы уточнить используемые внешние Компоненты вашего Приложения (Report Output):
Копировать Код * Выполните проверку наличия в Стартовых Модулях
* вашего Приложения указания внешней Ссылки
* на процедуру, которая описывает компоненту типа "Report OutPut":
EXTERNAL proc frxoutput.prg
* Выполните проверку наличия в Стартовых Модулях
* вашего Приложения указания внешней Ссылки
* на Регистрационную Таблицу:
EXTERNAL TABLE MyConfig -
В стартовых Модулях рекомендуется уточнить значение Системной Переменной, содержащей указание на внешнюю Процедуру:
Копировать Код * Установите значение системной переменной: _REPORTOUTPUT
* в стартовом Модуле вашего Приложения,
* которая определяет по-умолчанию компоненту "Report Output Application" :
_REPORTOUTPUT = FULLPATH("frxoutput.prg") -
В стартовых Модулях рекомендуется определить, или связать рассматриваемое Приложение с Регистрационной Таблицей, как показано в последней строке программного Фрагмента. Вы не должны указывать полный путь к данной Таблице:
Копировать Код * Определите соответствующую Таблицу Регистрации, как показано ниже:
#DEFINE OUTPUTAPP_CONFIG_READ -200
DO (_REPORTOUTPUT) with OUTPUTAPP_CONFIG_READ, "myconfig" -
Выполните обновленную Сборку вашего Проекта, учитывая рассмотренные выше изменения, которые описывают Ссылки на внешние компоненты "Report Output Application", данные процедуры и модули будут присоединены к вашему Приложению. В процессе Сборки Приложения уточните все необходимые дополнительные ссылки, которые запрашивает Диспетчер Проектов (Project Manager).
-
После выполненных Операций ваше Приложение будет готово к взаимодействию с "Report Output Application", функционал которого будет зависеть от рассмотренной Таблицы Регистрации:
Копировать Код * Представленный далее фрагмент программного Кода
* демонстрирует использование вашей Регистрационной Таблицы.
* Может возникнуть Ошибка...
* Если указанная Запись не будет найдена в Таблице:
REPORT FORM <your report> OBJECT TYPE 993
* Представленный далее фрагмент программного Кода
* иллюстрирует использование указанного Объекта (=5).
* Если в текущей Таблице Регистрации нет таких Объектов,
* то будет использован объект по-умолчанию (HTML):
REPORT FORM <your report> OBJECT TYPE 5
* представленные строки программного Кода определяют, что Visual FoxPro
* с помощью внешней Компоненты "Report Output Application"
* для порождаемого Объекта типа "ReportListener" определяет режим Печати
* TYPE 1 (print). Если ваши Таблица Регистрации содержит описание данного Типа,
* то будет активирован данный Тип; если в Таблице отсутствует указанный Тип
* по Компонента "Report Output Application" использует параметры По-умолчанию
* для рассматриваемого типа (как обычная печать Отчета)
SET REPORTBEHAVIOR 90
REPORT FORM <your report> TO PRINT