Проектирование формы отчета по ресурсам |
Рис. 9. Лист 1. Форма отчета "Справка по запланированным ресурсам"
Выводится один раз в начале отчета.
Выводится в начале каждой страницы отчета кроме первой (свойство PrintOnFirstPage выключено).
По событию OnBeforePrint выполняется скрипт PageHeader1OnBeforePrint.
Данный скрипт обеспечивает печать в верху каждой страницы отчета (кроме последней) текста "Продолжение справки ... ". А на последней странице печатается "Окончание справки ... ".
Бенд MasterData содержит два поля (Memo32 вверху и Memo33 внизу) с включенным свойством "Линии подчеркивания". Оба поля по событию OnBeforePrint выполняют скрипт обеспечивающий выделение строк, относящихся к проекту (для них уровень вложенности PRJLEVEL = 0).
Для Memo32 выполняется скрипт Memo32OnBeforePrint, для Memo33 выполняется скрипт Memo33OnBeforePrint.
Бенды Header выводят шапки таблиц для исполнителей и для материалов. По событию OnBeforePrint в этих бендах выполняются скрипты DetailHeader1OnBeforePrint и DetailHeader2OnBeforePrint.
Данный скрипт отключает вывод заголовка, если в настройке был запрошен краткий отчет. Кроме того, проверяется размер свободного места на странице: его должно хватать на заголовок и как минимум на одну строку данных. Тем самым блокируются "зависшие" заголовки.
Бенды DetailData выводят строки данных для исполнителей и для материалов. По событию OnBeforePrint в этих бендах выполняются скрипты DetailData1OnBeforePrint и DetailData2OnBeforePrint.
Скрипты выбирают цвет текущей строки в зависимости от того, четная она или нечетная. Если в настройке был запрошен краткий отчет, то выключается вывод данных по ресурсам.
В полях бендов DetailData выполняются скрипты, включающие вывод поля текущим цветом для строки.
Бенды Footer выводят итоговые строки для исполнителей и для материалов.
В полях бендов Footer выводятся итоговые суммы по соответствующим полям (суммируемое поле и бенд меняются):
[SUM(<PRJMATERIALS."MATSUMMP">, DetailData2);]
По событию OnBeforePrint в этих бендах выполняются скрипты, выбирающие цвет текущей строки в зависимости от того, четная она или нечетная. Т.к. сквозная нумерация строк не ведется, для определения четности строки используется значение, сохраненное в обработчике бенда DetailData (lastLine - номер последней строки, выведенной в DetailData).
Если в настройке был запрошен краткий отчет, то выключается вывод итоговых сумм по ресурсам.
Бенды Child выводят диаграммы для исполнителей и для материалов. По событию OnBeforePrint выполняется скрипт, включающий /выключающий показ диаграмм в соответствии с настройкой отчета.