Дополнительные возможности работы с данными отчета

Дополнительные возможности работы с данными отчета

Данные отчета выводятся на дата-бендах (компоненты MasterData, DetailData SubdetailData). В печатных представлениях отчетов и форматов печати программных модулей, по умолчанию, записи на дата-бендах выводятся в том порядке, который определен запросом. А в печатных представлениях форматов печати экранных форм - в том же порядке, что и в таблице элементов экранной формы.

При построении печатных представлений такой порядок не всегда удобен. Для вывода данных в соответствии с требованиями пользователя нужно выполнить дополнительные операции.

Дата-бенд позволяет выполнять следующие операции с данными потока:

Для выполнения этих операций требуется указать необходимые значения атрибутов дата-бенда. Перечень атрибутов, необходимых для выполнения каждой из операций, приведен в таблице.

Название операции

Название атрибутов дата-бенда

Тип вводимых данных

Сортировка данных

DataFileldOrder

Строчный (список полей, разделенных запятыми)

Фильтрация данных

DataFilter

Строчный (выражение)

Управление видимостью данных в печатном представлении

VisibleCondition

Строчный (выражение)

Формирование древовидного списка

DataFieldTreeKey

DataFieldTreeParent

Строчный (названия ключевого поля и поля родителя, соответственно)

Сортировка данных

Для сортировки данных дата-бенда используется свойство FieldOrder. Для него нужно указать названия полей, по которым выполняется сортировка. Поля в списке разделяются запятыми. Для каждого из полей дополнительно можно указать порядок сортировки (по возрастанию или по убыванию). По умолчанию выполняется сортировка по возрастанию значений.

Фильтрация данных

Фильтрация данных позволяет выводить в печатном представлении не все данные, содержащиеся в таблице элементов или полученные при выполнении запроса, а только те, которые удовлетворяют заданным условиям. Условие фильтрации должно соответствовать требованиям языка Transact-SQL.

Для фильтрации данных необходимо указать условие фильтрации в значении атрибута DataFilter.

Рисунок 4.225. Задание условия для фильтрации данных потока


Для фильтрации данных потока можно также использовать локальные SQL запросы. Для выполнения локального запроса необходимо создать новый обработчик событий или использовать ранее созданный. Для локального запроса необходимо использовать компонент TssFastReportDataSet.

//Пример локального запроса для фильтрации данных
TssFastReportDataSet(MasterData1.DataSet).LocalSQL := 'SELECT FROM Main WHERE <условие фильтрации>'
    

Управление видимостью данных потока

Управление видимостью данных, так же как и фильтрация, позволяет выводить в печатном представлении только те данные, которые удовлетворяют указанным пользователем условиям. В отличие от фильтрации, при управлении видимостью данных могут быть учтены и те данные, которые не выводятся в печатном представлении.

Для управления видимостью данных необходимо указать условие видимости в значении атрибута VisibleCondition.

С помощью атрибута VisibleCondition можно связать дата-бенды MasterData и DetailData. Например, в дата-бенде MasterData будут выводиться атрибуты актов списания, а в дата-бенде DetailData - элементы спецификаций этих документов.

Рисунок 4.226. Задание условия видимости данных потока


Формирование древовидного списка

Отображение данных в виде древовидного списка используется при составлении некоторых отчетов.

Для правильного отображения древовидного списка требуется указать значения двух атрибутов: DataFieldTreeKey и DataFieldTreeParent. Для атрибута DataFieldTreeKey нужно указать название ключевого поля, а для атрибута DataFieldTreeParent – название поля родительского элемента. Для текстового объекта необходимо указать величину отступа от левой границы (атрибут TreeLevelMargin) и, при необходимости, текст, выводимый перед значением (атрибут TreeText).

Рисунок 4.227. Задание условия для вывода древовидного списка данных потока