dimuhametov | Дата: Четверг, 26.12.2019, 08:53 | Сообщение # 1 |
Группа: Администраторы
Сообщений: 204
Статус: Offline
| Структура шаблона
Книга шаблона может содержать от одного до нескольких листов, а каждый лист – от одного до нескольких блоков (по вертикали листа). Строки перед первым блоком, между блоками и после последнего блока переносятся из шаблона в отчет без изменения. Разметка листа на блоки задается управляющими командами в первой колонке листа, которая удаляется после успешной генерации отчета.
Допускаются обычные блоки с фиксированным количеством колонок и перекрестные блоки с переменным количеством колонок (шахматки). Разметка колонок перекрестного блока задается первой (управляющей) строкой такого блока, которая также удаляется после успешной генерации отчета.
Каждый блок связан с определенной таблицей (это может быть свободная таблица, таблица базы данных, взгляд или курсор). Имя таблицы задается в первой колонке и первой строке блока. Если таблица не открыта, то генератор ее открывает, а после генерации отчета закрывает (такая таблица должна находиться в текущем каталоге или в текущей открытой базе данных). Временная таблица (курсор) должна быть открыта перед вызовом генератора.
Table – имя таблицы блока,RowGr1, RowGr2, …, RowGrN – имена полей таблицы, по которым выполняется группировка данных. Каждая полоса может занимать несколько строк, имя группы (таблицы или поля) задается в ячейке, соответствующей первой строке полосы и первой колонке листа. Если какая-либо полоса отсутствует, то ее имя переносится в следующую полосу. Например, если полоса заголовка группы 1 не нужна, то полоса заголовка группы 2 должна начинаться с [<RowGr1][<RowGr2].
Каждая последующая группа должна быть вложена в предыдущую группу. Самая внутренняя группа N не имеет полос заголовка и итогов. Она определяет одну полосу детализации, которая повторяется в отчете столько раз, сколько записей в таблице Table. Полосы групп от N-1 до 1 выводятся в отчет всякий раз, когда изменяется значение поля, соответствующего имени группы, что зависит от порядка сортировки записей таблицы. Наконец, полосы группы 0, если они определены, выводятся в отчет только один раз.
В имени группы допускается макроподстановка (например, [<&name], …, [&name]], где name– имя переменной, содержащей имя поля таблицы для группировки). Эта возможность позволяет использовать один шаблон для различных вариантов сортировки записей в таблице и, соответственно, строк в отчете.
Если полоса детализации (полоса группы N) отсутствует (то есть, в одной ячейке первой колонки задано [<RowGrN][RowGrN]]), то в отчет выводятся данные не для всех записей таблицы Table, а только итоговые данные, определенные полосами других групп от N-1 до 0, включающих в себя группу N.
Имя поля RowGrN, определяющего полосу детализации обычного блока, может быть именем любого поля таблицы, которое не используется в предыдущих объемлющих группах. Но для перекрестного блока это имя имеет определенный смысл.
|
|
| |