<< Click to Display Table of Contents >> Navigation: Проект > Документы объектов > Генератор отчетов > Источники данных и переменные > Источники данных > Прочие источники > Данные на основе других источников данных |
В генераторе отчетов можно создать источник данных на основе уже существующих источников данных. Источник данных Данные на основе других источников (Data from other DataSource) предоставляет аналогические возможности, что и запрос к базе данных. При создании такого источника данных можно с помощью визуального интерфейса, в процессе создания источника данных, произвести сортировку, группировку, фильтрацию и вычисление итогов с помощью агрегатных функций. Рассмотрим пример создания данных на основе других источников. Допустим, есть Master-Detail отчет, в котором каждой категории соответствуют некоторое количество продуктов. На рисунке снизу представлена страница Master-Detail отчета (представлена частично):
Как видно из рисунка, в отчете отображается название категории, имя продукта (относящегося к данной категории) и цена продукта. Если необходимо создать отчет, в котором будут отображаться название категории и общая стоимость всех продуктов входящих в данную категорию, то это можно выполнить различными способами. Но наиболее простым способом будет создание источника данных на основе других данных. Для этого, следует в окне Новый источник данных (New Data Source) выбрать пункт Данные на основе других данных (Data from other Data Source) и в следующей диалоговой форме окна новый источник данных, произвести настройку создаваемого источника данных. На рисунке снизу представлена вторая форма окна Новый источник данных (New Data Source):
Как видно из рисунка, процесс создания данных на основе других источников состоит из следующих этапов:
Источник данных (Data Source). На данном этапе необходимо указать Наименование (Name) нового источника данных и его Псевдоним (Alias). В данном примере, псевдоним и наименование источника данных указано как DataSource1. Также, следует выбрать источник данных на основе которого будет создан новый. В данном случае, выбран источник данных Products. Данный этап является обязательным.
Условия сортировки указываются на шаге Сортировка (Sort). На данном этапе следует указать колонку данных, по которой будет осуществляться сортировка, и выбрать направление сортировки. Данный этап не является обязательным.
Установить условия фильтрации данных в новом источнике данных можно на этапе Фильтры (Filters). Для фильтрации данных необходимо добавить фильтр, указать выражение или условие, согласно которому будет осуществляться фильтрация. Данный этап не является обязательным.
Указывать условия группировки данных в новом источнике данных можно на шаге Группировка (Groups). Для группировки данных следует указать колонку данных, по которой будут данные группироваться, и выбрать направление расположения групп. Колонка данных, по которой будет осуществляться группировка, будет присутствовать в новом источнике данных. В этом примере, используя связь между источниками данных Categories и Products, укажем группировку по колонке данных CategoriesName, которая содержит названия категорий. Данный этап не является обязательным.
Последний шаг Результаты (Results). На данном шаге можно произвести вычисление по колонке данных с помощью агрегатных функций. На рисунке снизу представлена вкладка Результаты (Results):
Как видно из рисунка, на данной вкладке следует указать следующие параметры:
Выбрать в поле Колонка (Column) колонку данных, которая будет присутствовать в новом источнике данных или из которой будут браться данные для расчета агрегатной. Данное поле является обязательным для заполнения. Для примера выбрана колонка данных UnitPrice, которая содержит данные о стоимости продуктов.
Меню Агрегатная Функция (Aggregate Function) представляет собой список агрегатных функций, которые могут быть использованы для вычисления выбранной колонки данных. Агрегатную функцию можно не указывать, в этом случае колонка данных будет содержать данные, такие же как в колонке данных, которая берется за основу. В данном примере, выбрана агрегатная функция Sum, которая суммирует данные.
В поле Наименование (Name) указывается имя колонки, которое используется для обращения к данной рассчитываемой колонке в отчете.
Теперь для построения отчета можно использовать источник данных DataSource1, который содержит две колонки данных: CategoryName и UnitPrice.Sum. На рисунке снизу представлен отчет, построенный на основе данных из источника данных DataSource1:
Как видно из рисунка, каждой категории соответствует общая стоимость всех продуктов, входящих в данную категорию.