Access 2002

Использование свойств отчета


Если внимательно рассмотреть нижний колонтитул отчета, можно заметить, что в нем выводятся некоторые из свойств отчета — Name, RecordSource и Page. При распечатке отчета любое из его свойств можно использовать в качестве встроенной переменной. То же можно сказать и о формах, хотя в этом случае указанная особенность не является настолько полезной, как в случае отчетов. (В частности, формы поддерживают свойство Раде только при печати.)

В отличие от заголовков и примечаний отчета и его групп, верхние и нижние колонтитулы не поддерживают агрегатных функций (таких, например, как Sum), поэтому для создания итоговых сумм приходится «обманывать» Access. Мы делаем это следующим образом (данное решение является всего одним из нескольких возможных):

О при печати каждого заголовка страницы обнуляем специальную переменную итога, использующуюся для вычисления суммы;

О при печати каждой строки добавляем значение из этой строки к переменной итога.

Все это относится к элементу управления, расположенному в нижнем колонтитуле и использующемуся для отображения суммы по странице. В нашем примере отчета (rptSales) это текстовое поле называется txtPageTotal (на  8.22 вы видите в нем слово Unbound).

Поскольку в итоговой сумме требуется учитывать только значения из распечатанных строк, код для обновления переменной суммы необходимо поместить в обработчик события Print. (Если вы все-таки решите воспользоваться событием Format, вам придется добавить в обработчик соответствующего события Retreat специальный код, который будет вычитать значение из суммы в случае, если строка не попадет в печать.) В этом простом примере события Print и Format всегда происходят вместе (поскольку каждой строке данных соответствует строка отчета), однако о различиях между этими событиями всегда необходимо помнить.

Комментарии закрыты