Программный Файл: ...\Samples\Solution\Reports\Invoice.frx

В рассматриваемом Отчете демонстрируется Счет-Фактура, которая использует комбинацию Представления выборки из нескольких Таблиц, которые функционально связаны (информация о Клиенте - с данными о товарах, связанных отношением типа "один-ко-многим"). При получении Отчета, сначала запрашивается дополнительная информация (вызывается функция из Модуля: Datepick.prg). Далее, на основании введенного интервала Дат, выполняется выборка соответствующих данных, и печать итогового Отчета (Счет-Фактуры по Клиенту).

The Record Source (Исходные Данные)   Представление, с именем INVOICE, которое основано на данных из тестовой Базы Данных TESTDATA, на которой основано большинство примеров Решений. Рассматриваемое Представление - есть комбинированная выборки из Таблиц: CUSTOMER (Клиенты), ORDERS (Ордера), ORDITEMS (части Ордеров), PRODUCTS (Товары). Ключевым Фильтром при получении Счет-Фактур является временной Интервал, который задается параметрами Представления, dStart_Date / dEnd_Date, (начальная и конечная Даты).

The Data Environment ()   Рассматриваемое Представление рассматривается как Объект Среды Данных. Для уточнения основных параметров Представления, в программном Коде События BeforeOpenTables Среды Данных объявляются Глобальные переменные: dStart_date, dEnd_Date, cOldPath. Первые две определяют временной Интервал Запрашиваемых Данных. Третья переменная, cOldPath, содержит текущее значение глобальной установки PATH, которая восстанавливается в программном коде события Destroy. Переменная каталогов поиска изменяется в целях однозначного определения требуемой, вызываемой функции, в которой определяются параметры Представления (временной интервал). После этого выполняется требуемый Запрос в Базе Данных.

Программный код События (метода) Destroy используется для восстановления начальной среды данных очистки созданных глобальных переменных, восстановлению глобальной установки системной переменной PATH, которая изменялась перед выполнением Отчета.

The Datepick.prg (Модуль)   В этом модуле определяется требуемая функция, которая вызывается из Класса frmDATEPICK. В классе Формы определено четыре (4) контрола типа Combo Box, которые определяют значения требуемых глобальных переменных, dStart_Date, dEnd_Date. Указанные четыре параметра, nFromMonth, nFromYear, nToMonth, nToYear, определяют месяц-год начала и месяц-год окончания задаваемого временного интервала, которые определяют значения глобальных переменных dStart_Date / dEnd_Date. Данная функция проверяет также ввод данных пользователем в каждый Контрол и выполнение условия, чтобы начальная дата была больше меньше конечной даты.

The Report Layout (Настройка Отчета)   При настройке Отчета, в Полосе Group Header размещается информация о Клиенте (наименования, счета), в Полосе Detail содержатся данные об Ордерах, их элементах, в Полосе Group Footer размещаются итоговые, вычисляемые значения выбранных Счет-Фактур.

Для более корректного размещения соответствующей информации, содержащейся в нескольких полях Таблиц используются разнообразные разделители. Для вычисления значений итоговых Контролов, размещенных в Полосе Group Footer, определяются две переменные Отчета, nSubtotal / nDiscount, в которых подсчитываются частичная сумма и текущий процент Дисконта.

См. также