| Шаблоны отчётов Rtf |
AKReport |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Шаблон документа в формате "RTF" представляет собой набор параметров обрамленных открывающим и закрывающим тегами банда. Параметры и теги заключаются между символами "~". Оформление банда:
Содержимым банда могут быть параметры, текст, таблицы. При создании отчета, открывающий и закрывающий теги банда автоматически удаляются. Содержимое банда повторяется для каждой записи (строки) из набора данных группы имягруппы определенной в "xrp" документе. Для отображения информации в бандах используются параметры, имена которх совпадают с именами палей, описанных в группе имягруппы в "xrp" документе. Параметры внутри банда по умолчанию ссылаются на одноименные поля соответствующей группы, если надо получить значение поля из другой группы, то ссылку следует задать явно: "~имягруппы.имяполя~". К параметрам определенным в "xrp" можно обращаться по имени: "~имяпараметра~", "~имя параметра_KEY~" или "имя параметра_имяполя~" - в зависимости от требуемых данных и типа параметра.
"RTF" шаблон.
При выполнении отчета, "~Departments~" - список отделов через запятую, выбранных пользователем в одноименном параметре.
Сформированный документ:
Этот же шаблон можно перестроить, добавив заголовки столбцам:
Отчеты со связями "мастер-деталь" Для построения более сложных отчетов, содержащих "мастер-деталь" связи используются вложенные банды.
Причем, в структуре документа группа имядетальгруппы должна быть подчиненной группе имямастергруппы и в свойстве "Master" группы имядетальгруппы указывалась группа имямастергруппы.
Сформированный документ:
Обработка событий при построении отчета. Для модификации основных свойств бандов и параметров используются различные обработчики событий связанные с группой (бандом). Более полная информация в разделе "События".
Пусть необходимо создать отчет состоящий из двух бланков на каждой странице. Если после каждых двух бланков вставлять разрыв страницы, тогда если общее число бланков четное, то после последнего бланка будет печататься пустая страница. Обойти это можно следующим способом. Рассмотрим управление разрывом страницы. Шаблон документа.
Параметру "~NewPage~" после каждого четного бланка (кроме последнего) необходимо присваивать команду разрыва страницы "\page". Для этого у группы "dsWorkers" создадим обработчик события "OnGetFieldData".
В обработчике: Field.FieldName = 'NewPage' - проверяем, что событие произошло именно перед созданием параметра 'NewPage'. Field.Dataset.RecNo - получаем текущий номер текущей записи в группе "dsWorkers" (начиная с 1). Field.Dataset.RecordCount - общее количество записей в группе "dsWorkers". Field.Value - новое значение параметра, которое будет выведено в документ.
В заключение хотелось бы отметить, в шаблоне используется обращение к другой группе: "~dsParameters.OrgName~" для получения информации из справочной таблица "PARAMS". |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copyright © 2004: Alexander
Krepky, Eugeny Makalish |
|||||||||||||||||||||||||||||||||||||||||||||||||||||