Данные на основе других источников данных

В генераторе отчетов Stimulsoft Reports можно создать источник данных на основе уже существующих источников данных. Источник данных Данные на основе других источников (Data from other DataSource) предоставляет аналогические возможности, что и запрос к базе данных. При создании такого источника данных можно с помощью визуального интерфейса, в процессе создания источника данных, произвести сортировку, группировку, фильтрацию и вычисление итогов с помощью агрегатных функций. Рассмотрим пример создания данных на основе других источников. Допустим, есть Master-Detail отчет, в котором каждой категории соответствуют некоторое количество продуктов. На рисунке снизу представлена страница Master-Detail отчета (представлена частично):

 

 

 

Как видно из рисунка, в отчете отображается название категории, имя продукта (относящегося к данной категории) и цена продукта. Если необходимо создать отчет, в котором будут отображаться название категории и общая стоимость всех продуктов входящих в данную категорию, то это можно выполнить различными способами. Но наиболее простым способом будет создание источника данных на основе других данных. Для этого, следует в окне Новый источник данных (New Data Source) выбрать пункт Данные на основе других данных и в следующей диалоговой форме окна новый источник данных, произвести настройку создаваемого источника данных.

 

 

 

Как видно из рисунка, процесс создания данных на основе других источников состоит из следующих этапов:

 

img1 Источник данных (Data Source). На данном этапе необходимо указать Наименование (Name) нового источника данных и его Псевдоним (Alias). В данном примере, псевдоним и наименование источника данных указано как DataSource1. Также, следует выбрать источник данных на основе которого будет создан новый. В данном случае, выбран источник данных Products. Данный этап является обязательным.

img_2 Условия сортировки указываются на шаге Сортировка (Sort). На данном этапе следует указать колонку данных, по которой будет осуществляться сортировка, и выбрать направление сортировки. Данный этап не является обязательным.

img_3 Установить условия фильтрации данных в новом источнике данных можно на этапе Фильтры (Filters). Для фильтрации данных необходимо добавить фильтр, указать выражение или условие, согласно которому будет осуществляться фильтрация. Данный этап не является обязательным.

img_4 Указывать условия группировки данных в новом источнике данных можно на шаге Группировка (Groups). Для группировки данных следует указать колонку данных, по которой будут данные группироваться, и выбрать направление расположения групп. Колонка данных, по которой будет осуществляться группировка, будет присутствовать в новом источнике данных. В этом примере, используя связь между источниками данных Categories и Products, укажем группировку по колонке данных CategoriesName, которая содержит названия категорий. Данный этап не является обязательным.

img_5 Последний шаг Результаты (Results). На данном шаге можно произвести вычисление по колонке данных с помощью агрегатных функций. На рисунке снизу представлена вкладка Результаты:

 

 

 

Как видно из рисунка, на данной вкладке следует указать следующие параметры:

strel11 Выбрать в поле Колонка (Column) колонку данных, которая будет присутствовать в новом источнике данных или из которой будут браться данные для расчета агрегатной. Данное поле является обязательным для заполнения. Для примера выбрана колонка данных UnitPrice, которая содержит данные о стоимости продуктов.

strel11 Параметр Агрегатная Функция (Aggregate Function) представляет собой Поле со списком с перечнем агрегатных функций, которые могут быть использованы для обработки значений выбранной колонки данных. Агрегатную функцию можно не указывать, в этом случае значения колонки обрабатываться не будут. В данном примере, выбрана агрегатная функция Sum, которая суммирует данные.

strel11 В поле Наименование (Name) указывается имя колонки, которое используется для обращения к данной рассчитываемой колонке в отчете.

 

Теперь для построения отчета можно использовать источник данных DataSource1, который содержит две колонки данных: CategoryName и UnitPrice.Sum.

 

 

 

Как видно из рисунка, каждой категории соответствует общая стоимость всех продуктов, входящих в данную категорию.