Cтраница 2
Оператор ГЕНЕРИРОВАТЬ обеспечивает вывод отчета и выполняет, в частности, функции оператора ПИСАТЬ. Подобно тому как в операторе ПИСАТЬ программист указывает имя записи выходного файла, в-операторе ГЕНЕРИРОВАТЬ он должен указать имя группы отчета типа ФРАГМЕНТ. Группы отчета всех других типов выводятся генератором отчетов автоматически на основании информации о формате отчета, указываемой программистом в секции отчетов. При этом увеличиваются и, если требуется, восстанавливаются счетчики, данные из входных файлов пересылаются в поля данных статьи описания группы отчета, проверяются управляющие данные и, когда возникает прерывание управления, печатаются требуемые дополнительные строки, например итоговые. [16]
Если указано имя-отчета, оператор ГЕНЕРИРОВАТЬ выполняет такие же автоматические операции, что и при генерации фрагмента, но не выводит никаких групп отчета типа ФРАГМЕНТ. Это называется генерацией итогов. При генерации итогов счетчики сумм увеличиваются таким же образом, как и при генерации фрагмента. Если в отчете описано несколько групп типа ФРАГМЕНТ, счетчики увеличиваются таким образом-как если бы операторы ГЕНЕРИРОВАТЬ были последовательно определены для всех этих групп. Такое последовательное суммирование выполняется в порядке появления описаний групп отчета типа ФРАГМЕНТ. Однако для каждого оператора ГЕНЕРИРОВАТЬ имя-отчета осуществляется только одна проверка на прерывание управления. Эта проверка выполняется генератором отчетов перед генерацией итогов. После инициализации отчета и перед его завершением могут быть выполнены и генерация фрагмента, и генерация итогов. [17]
Статья описания группы отчета, как и статья описания записи, начинается о номера уровня 01, за которым, в отличие от статьи описания записи, может не следовать имя данного. Имя данного в статье описания группы отчета должно присутствовать только тогда, когда явно требуется обратиться к этой группе отчета в секции отчетов раздела данных или в разделе процедур. Подобно записи группа отчета состоит из элементарных данных, которые могут быть объединены в групповые данные. Объединение элементарных данных в групповое может использоваться, например, для указания одного номера строки для всех элементарных данных, подчиненных этому групповому. В отчете, представленном на рис. 23 - 28, элементарными данными в группе отчета типа ФРАГМЕНТ ( отмечена цифрой 3 или 4) являются, например, отдел, количество покупок, тип покупки, стоимость. Для описания труппы отчета используются четыре формата. [18]