При разработке и распространении приложений Visual FoxPro, вы можете использовать стандартную внешнюю Компоненту ReportOutput.App и дополнительные программные файлы, используемые с ним. В данном параграфе рассматриваются следующие ключевые Вопросы:

Использование НеСтандартной Регистрационной Таблицы в вашем Приложении.

Если вы используете в вашем Приложении внешнюю Компоненту ReportOutput.App, как внешний файл, а Таблица Регистрации Типов используется также как внешний файл, то этот файл может иметь Произвольное наименование.

Для описания программного Кода, определяющего внешнюю Таблицу Регистрации Типов, которая является управляющей таблицей  Компоненты ReportOutput.app:

  1. Создайте на диске Регистрационную Таблицу Типов. Дополнительную информацию о рассматриваемой Таблице смотрите в разделе: Как: Определить Альтернативную Таблицу Регистрации для "Report Output".

  2. Внесите необходимые изменения в Записи созданной Таблицы (в соответствие с требованиями вашего Приложения). Смотрите дополнительно: Как: Зарегистрировать пользовательский Объект ReportListener или пользовательский тип OutputType для Компоненты "Report Output".

  3. Определите в стартовом файле Приложения ссылку на использование внешней Компоненты ReportOutput.app, которая содержится в системной переменной _REPORTOUTPUT, или просто укажите в файле Конфигурации CONFIG.FPW вашего Приложения ссылку на описанную выше Компоненту. Смотрите дополнительно Раздел: Установка Стартовых параметров в модулях Инициализации.

      CopyCode imageКопировать Код
    _ReportOutput = <ваш файл типа ReportOutput.app, и его местоположение>
  4. В начальных фрагментах вашего Программного Кода определите планируемую к использованию Регистрационную Таблицу Типов:

      CopyCode imageКопировать Код
    #DEFINE OUTPUTAPP_CONFIG_READ -200
    DO (_REPORTOUTPUT) with OUTPUTAPP_CONFIG_READ, ;
    <имя вашего файла Таблицы Регистрации, и ее размещение>

Изменение значений "по-умолчанию" в Регистрационной Таблице компоненты ReportOutput.app:

У вас имеется возможность выполнить собственную Сборку рассматриваемого Приложения ReportOutput.App, в котором уже будет использоваться нестандартная Таблица Регистрации Типов, планируемая к использованию в вашем Прикладном Модуле (Проекте).

Для Перекомпиляции компоненты ReportOutput.app, в которой используется Нестандартная Таблица Регистрации Типов:

  1. Распакуйте подкаталог (папку) ReportOutput, которая размещается в общем Арихиве системы: Visual FoxPro\Tools\Xsource. Смотрите дополнительно раздел Справки: Подкаталог XSource.

  2. Переместитесь в указанную выше папку: ReportOutput, где размещены программные файлы рассматриваемой Компоненты. Измените заголовочный файл ReportOutput.H.

      CopyCode imageКопировать Код
    CD <имя Подкаталога Компоненты>
    MODIFY COMMAND ReportOutput.H
  3. Обратите внимание на следующие Строки программного Кода в Заголовочном файле:

      CopyCode imageКопировать Код
    #DEFINE OUTPUTAPP_INTERNALDBF "_ReportOutputConfig"
    #DEFINE OUTPUTAPP_EXTERNALDBF "OutputConfig"
  4. Замените значение Константы, содержащей текст "OutputConfig", рекомендуется указать Имя вашей Таблицы, файл (.dbf), которая планируется к использованию в качестве Внешней Регистрационной Таблицы вашего Приложения. Измените значение константы, содержащей Текст "_ReportOutputConfig", рекомендуется указать Имя файла Таблицы, которая будет использоваться как Внутренняя Таблица Приложения, таблица должна быть включена в Проект Приложения.

  5. Сохраните Изменения.

  6. Выполните Компиляцию-Сборку новой версии ReportOutput.App, указав дополнительный Ключ RECOMPILE:

      CopyCode imageКопировать Код
    BUILD APPLICATION ReportOutput FROM ReportOutput RECOMPILE
  7. Если вы изменили значение Константы OUTPUTAPP_INTERNALDBF, то в процессе сборки Проекта возможно потребуется уточнение местоположения указанной вами Таблицы Регистрации Типов, которая указывается в данной Константе. Если Диспетчер Проекта не сможет автоматически определить местоположение Таблицы, то вам будет задан уточняющий Запрос.

  8. Определите значение системной переменной _REPORTOUTPUT в стартовом модуле вашего риложения, которая должна содержать ссылку на созданное в предыдущих пунктах новое приложение ReportOutput.app, или укажите в качестве настроечного параметра в файле стартовой Конфигурации CONFIG.FPW значение данной системной переменной. Смотрите дополнительно раздел: Установка стартовых параметров в модулях Инициализации.

      CopyCode imageКопировать Код
    _ReportOutput = <Имя вашего ReportOutput.app, с указанием его местоположения>
  9. Включите созданный Модуль ReportOutput.App в дистрибутивный установочный пакет вашего Приложения. Определите соответствующую ссылку на Таблицу Регистрации Типов, которая выбрана вами и определена  в рассматриваемом Приложении обработки Отчетов.

Сборка Компоненты "Report Output Application" непосредственно в вашем Приложении.

Если вы включаете Компоненту "Report Output Application" в установочный пакет вашего Приложения (.app / .exe), то Таблица Регистрации может иметь произвольное Наименование, это относится как к Внутренней, так и к Внешней Таблице. В данном Параграфе описываются вопросы включения рассматриваемых выше Компонент и Регистрационных Таблиц в Проект вашего Приложения.

NoteСовет

Если вы следуете данным Рекомендациям, то вы не должны распространять компоненту ReportOutput.App отдельно от вашего Приложения.

Для включения Таблицы Регистрации и Компонент "Report Output" вашего Приложения (.app / .exe) :

  1. Включите фрагмент программного кода, аналогичный представленному далее, в стартовых модулях приложения - чтобы уточнить используемые внешние Компоненты вашего Приложения (Report Output):

      CopyCode imageКопировать Код
    * Выполните проверку наличия в Стартовых Модулях
    * вашего Приложения указания внешней Ссылки
    * на процедуру, которая описывает компоненту типа "Report OutPut":
    EXTERNAL proc frxoutput.prg

    * Выполните проверку наличия в Стартовых Модулях
    * вашего Приложения указания внешней Ссылки
    * на Регистрационную Таблицу:
    EXTERNAL TABLE MyConfig
  2. В стартовых Модулях рекомендуется уточнить значение Системной Переменной, содержащей указание на внешнюю Процедуру:

      CopyCode imageКопировать Код
    * Установите значение системной переменной: _REPORTOUTPUT 
    * в стартовом Модуле вашего Приложения,
    * которая определяет по-умолчанию компоненту "Report Output Application" :
    _REPORTOUTPUT = FULLPATH("frxoutput.prg")
  3. В стартовых Модулях рекомендуется определить, или связать рассматриваемое Приложение с Регистрационной Таблицей, как показано в последней строке программного Фрагмента. Вы не должны указывать полный путь к данной Таблице:

      CopyCode imageКопировать Код
    * Определите соответствующую Таблицу Регистрации, как показано ниже:
    #DEFINE OUTPUTAPP_CONFIG_READ -200
    DO (_REPORTOUTPUT) with OUTPUTAPP_CONFIG_READ, "myconfig"
  4. Выполните обновленную Сборку вашего Проекта, учитывая рассмотренные выше изменения, которые описывают Ссылки на внешние компоненты "Report Output Application", данные процедуры и модули будут присоединены к вашему Приложению. В процессе Сборки Приложения уточните все необходимые дополнительные ссылки, которые запрашивает Диспетчер Проектов (Project Manager).

  5. После выполненных Операций ваше Приложение будет готово к взаимодействию с "Report Output Application", функционал которого будет зависеть от рассмотренной Таблицы Регистрации:

      CopyCode imageКопировать Код
    * Представленный далее фрагмент программного Кода
    * демонстрирует использование вашей Регистрационной Таблицы.
    * Может возникнуть Ошибка...
    * Если указанная Запись не будет найдена в Таблице:
    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

См. также