Звіти конструюються за допомогою вбудованого компонента DevExpress Report Designer на основі даних отриманих з сервера.
Для складання звіту необхідно:
- Оформити звіт за допомогою стандартних візуальних елементів, щоб домогтися бажаного зовнішнього вигляду.
- Зі Списку полів додати атрибути, необхідні для формування звіту.
- За допомогою скриптів скласти запит, щоб отримати необхідні дані, використовуючи API для побудови звітів.
На початку складання будь-якого звіту:
- Викличте контекстне меню на порожньому місці Дизайнера звіту.
- Виберіть команду Додати вкладений звіт:
- Tasks. якщо звіт буде будуватися за завданнями;
- Objects. якщо звіт буде будуватися по об'єктах;
Виконання команди Додати вкладений звіт необхідно для отримання даних з бази. Тільки після цього можна продовжувати роботу над формуванням звіту.
Приклад формування звіту за завданнями
Розглянемо приклад створення звіту за завданнями, виданих вам.
- Викличте контекстне меню на порожньому місці Дизайнера звіту і виберіть команду Додати вкладений звіт - Tasks.
- Виберіть в панелі інструментів Таблицю і перетягніть її в область DetailReport - "Tasks".
- У Списку полів розгорніть список Tasks. Виберіть поле Title і перетягніть його в перший осередок.
- Потім виберіть поле Description і перетягніть його в другий осередок.
- У третій осередок перетягніть поле DeadlineDate.
Таким чином, складений найпростіший звіт, який містить інформацію про всі завданнях: заголовок завдання. опис завдання і термін виконання.
Створіть заголовок таблиці:
- Клацніть по області Detail1 правою кнопкою миші. Виберіть в контекстному меню команду Додати секцію - Тема звіту.
- Додайте таблицю в область ReportHeader.
- Заповніть та відформатуйте заголовок таблиці.
Доповніть звіт інформацією про ініціаторів та згрупуйте завдання по ініціаторам.
- Клацніть по області Detail1 правою кнопкою миші. Виберіть в контекстному меню команду Додати секцію - Тема групи.
- Щоб задати правила угруповання поруч із заголовком групи GroupHeader1 розгорніть властивості групи, натиснувши.
- Задайте поле угруповання Initiator → Id. І натисніть OK.
- Виберіть інструмент Текст і додайте текст в область GroupHeader1.
- У Списку полів розгорніть Tasks → Initiator → Person. Виберіть поле DisplayName і перетягніть його в заголовок групи.
Щоб при побудові звіту отримати дані про завдання необхідно скласти запит до сервера за допомогою скрипта:
- В Панелі інструментів виберіть команду Скрипти.
- Напишіть скрипт, який запитує дані по заданих в дизайнера звітів атрибутам. Повинен бути отриманий звіт про видані активного користувача завданнях. Для цього використовується метод PilotReport_DataSourceDemanded, запитувач дані у сервера для звіту:
private void PilotReport_DataSourceDemanded (object sender, System.EventArgs e)
LongRunning.Start (this, () => <
var currentPerson = context.CurrentPerson;
var tasksBuilder = QueryBuilder.CreateTaskQueryBuilder ();
tasksBuilder.Must (TaskFields.ExecutorPositionId.Be (currentPerson.MainPosition.Id));
context.Tasks = context.GetTasks (tasksBuilder);
Щоб наочно показати, що завдання не виконане в строк, задайте правила форматування.
Якщо ініціатор не поставив термін виконання завдання, то в звіті відображається спеціальне системне значення 31.12.9999. Це значення можна перетворити в текст, наприклад, Без терміну. Для цього створіть обчислюване поле:
Також можна ознайомитися з прикладами шаблонів звіту, завантаживши розроблені звіти з Центру завантажень Pilot-ICE. з сайту Pilot-ICE. Якщо відкрити їх на редагування, можна вивчити інші приклади написання запитів і опису обчислюваних полів.
Приклад формування звіту за документами
Розглянемо простий приклад створення звіту за проектом з використанням параметрів. У цьому звіті будуть відображатися всі документи обраного проекту.
- Викличте контекстне меню на порожньому місці Дизайнера звіту і виберіть команду Додати вкладений звіт - Objects.
- Виберіть в панелі інструментів Таблицю і перетягніть її в область DetailReport - "Objects".
- Видаліть третій осередок.
- У Списку полів розгорніть список Objects. Виберіть поле Title і перетягніть його в другий осередок.
- Виділіть першу клітинку. Розгорніть властивості осередок, натиснувши.
- В поле Зведення натисніть. . Виберіть Функцію зведення Число записів. Діапазон підрахунку - Звіт. Потім натисніть OK.
Таблиця підготовлена. Щоб користувачі могли вибрати проект, за яким необхідно отримати звіт, потрібно створити параметр:
- У Списку полів виберіть Параметри.
- Правою кнопкою миші викличте контекстне меню і виберіть команду Додати параметр.
- У вікні Додати новий параметр. задайте ім'я параметра Project. Опис Проект:.
- Виберіть в списку тип Pilot Object.
- Задайте значення за замовчуванням, яке буде пропонуватися при побудові звіту.
- Для завершення натисніть OK.
Напишіть скрипт, який буде запитувати дані про існуючі в обраному користувачем проекті документах:
private void PilotReport_DataSourceDemanded (object sender, System.EventArgs e)
LongRunning.Start (this, () => var builder = QueryBuilder.CreateObjectQueryBuilder ();
builder.Must (ObjectFields.TypeId.Be (documentType.Id));
var selectedProject = (RObject) Parameters [ "Project"]. Value;
context.Objects = context.GetObjects (builder, selectedProject.Id);
DataSource = context;
Детально про всі можливості DevExpress Report Designer см. В документації DevExpress.