Підготовка шаблону звіту

Звіти конструюються за допомогою вбудованого компонента DevExpress Report Designer на основі даних отриманих з сервера.

Для складання звіту необхідно:

  • Оформити звіт за допомогою стандартних візуальних елементів, щоб домогтися бажаного зовнішнього вигляду.
  • Зі Списку полів додати атрибути, необхідні для формування звіту.
  • За допомогою скриптів скласти запит, щоб отримати необхідні дані, використовуючи API для побудови звітів.

На початку складання будь-якого звіту:

  1. Викличте контекстне меню на порожньому місці Дизайнера звіту.
  2. Виберіть команду Додати вкладений звіт:
    • Tasks. якщо звіт буде будуватися за завданнями;
    • Objects. якщо звіт буде будуватися по об'єктах;

Виконання команди Додати вкладений звіт необхідно для отримання даних з бази. Тільки після цього можна продовжувати роботу над формуванням звіту.

Приклад формування звіту за завданнями

Розглянемо приклад створення звіту за завданнями, виданих вам.

  1. Викличте контекстне меню на порожньому місці Дизайнера звіту і виберіть команду Додати вкладений звіт - Tasks.
  2. Виберіть в панелі інструментів Таблицю і перетягніть її в область DetailReport - "Tasks".
  3. У Списку полів розгорніть список Tasks. Виберіть поле Title і перетягніть його в перший осередок.
  4. Потім виберіть поле Description і перетягніть його в другий осередок.
  5. У третій осередок перетягніть поле DeadlineDate.
    Підготовка шаблону звіту

Таким чином, складений найпростіший звіт, який містить інформацію про всі завданнях: заголовок завдання. опис завдання і термін виконання.

Створіть заголовок таблиці:

  1. Клацніть по області Detail1 правою кнопкою миші. Виберіть в контекстному меню команду Додати секцію - Тема звіту.
  2. Додайте таблицю в область ReportHeader.
  3. Заповніть та відформатуйте заголовок таблиці.
    Підготовка шаблону звіту

Доповніть звіт інформацією про ініціаторів та згрупуйте завдання по ініціаторам.

  1. Клацніть по області Detail1 правою кнопкою миші. Виберіть в контекстному меню команду Додати секцію - Тема групи.
  2. Щоб задати правила угруповання поруч із заголовком групи GroupHeader1 розгорніть властивості групи, натиснувши.
  3. Задайте поле угруповання Initiator → Id. І натисніть OK.
  4. Виберіть інструмент Текст і додайте текст в область GroupHeader1.
  5. У Списку полів розгорніть Tasks → Initiator → Person. Виберіть поле DisplayName і перетягніть його в заголовок групи.
    Підготовка шаблону звіту

Щоб при побудові звіту отримати дані про завдання необхідно скласти запит до сервера за допомогою скрипта:

  1. В Панелі інструментів виберіть команду Скрипти.
  2. Напишіть скрипт, який запитує дані по заданих в дизайнера звітів атрибутам. Повинен бути отриманий звіт про видані активного користувача завданнях. Для цього використовується метод 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. Якщо відкрити їх на редагування, можна вивчити інші приклади написання запитів і опису обчислюваних полів.

Приклад формування звіту за документами

Розглянемо простий приклад створення звіту за проектом з використанням параметрів. У цьому звіті будуть відображатися всі документи обраного проекту.

  1. Викличте контекстне меню на порожньому місці Дизайнера звіту і виберіть команду Додати вкладений звіт - Objects.
  2. Виберіть в панелі інструментів Таблицю і перетягніть її в область DetailReport - "Objects".
  3. Видаліть третій осередок.
  4. У Списку полів розгорніть список Objects. Виберіть поле Title і перетягніть його в другий осередок.
  5. Виділіть першу клітинку. Розгорніть властивості осередок, натиснувши.
  6. В поле Зведення натисніть. . Виберіть Функцію зведення Число записів. Діапазон підрахунку - Звіт. Потім натисніть OK.

Таблиця підготовлена. Щоб користувачі могли вибрати проект, за яким необхідно отримати звіт, потрібно створити параметр:

  1. У Списку полів виберіть Параметри.
  2. Правою кнопкою миші викличте контекстне меню і виберіть команду Додати параметр.
  3. У вікні Додати новий параметр. задайте ім'я параметра Project. Опис Проект:.
  4. Виберіть в списку тип Pilot Object.
  5. Задайте значення за замовчуванням, яке буде пропонуватися при побудові звіту.
  6. Для завершення натисніть 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.