| Создание отчётов в Мастерской отчётов (Report Workshop) | |
Простые отчёты
Чтобы сделать простейший отчёт, нужно связать таблицу базы данных с документом и выполнить команду генерации отчёта.
Или, по-другому, можно связать таблицу базы данных не со всем документом, а с отчётной таблицей в нём.
Вложенные отчёты («master/detail»)
Для создания вложенных отчётов нужно связать главные данные с частью документа, а зависимые данные – с фрагментом этой части.
Возможны следующие случаи:
- главный: весь документ, зависимый: строки отчётной таблицы
- главный: строки отчётной таблицы, зависимый: ячейка отчётной таблицы
- главный: строки отчётной таблицы, зависимый: подмножество ячеек этих строк
- главный: ячейка отчётной таблицы, зависимый: строки вложенной в эту ячейку другой отчётной таблицы
Этот список содержит только отношения между ближайшими слоями документа.
Любой слой может быть пропущен, например, возможно отношение между строками вложенных друг в друга отчётных таблиц.
Помимо вышеуказанных вариантов, зависимые данные могут быть получены функцией Query() в выражениях. Более того, Query() может быть вызвано из Query(), что позволяет создавать вложенные отчёты с помощью одних только выражений.
Какие строки-запросы данных могут быть использованы для вложенных отчётов?
Возможны варианты:
- строка зависимого запроса может ссылаться на поля главного (например, при использовании SQL: «select * from DetailTable where DetailTable.MasterID = {MasterID}»)
- если в результатах главного запроса есть поле типа dataset, то зависимый запрос может его использовать (например, «field:FieldName»)
- если данные берутся из заранее составленной коллекции компонентов доступа к данным, унаследованным от класса TDataSet (при использовании универсального провайдера данных из БД),
на них уже может быть установлено отношение «главный/зависимый» («master/detail»), и отчёт будет его использовать
Вложенный объект может, в свою очередь, содержать другие вложенные объекты. Можно создавать отчёты тройной, четверной и так далее вложенности, без ограничений.
В один главный объект может быть вложено несколько зависимых.
Мастер создания отчётов
Мастерская отчётов (ReportWorkshop) включает мастер создания отчётов (реализованный как команда пользовательского интерфейса (action)), который может генерировать шаблоны отчётов с произвольной глубиной вложенности данных.
|