Детализация данных на отдельной странице

<< Click to Display Table of Contents >>

Navigation:  Проект > Документы объектов > Генератор отчетов > Примеры построения отчетов > Интерактивные отчеты >

Детализация данных на отдельной странице

Более продвинутым способом детализации данных является детализация на отдельной странице отчета. Суть данного метода, состоит в том, что в отчете создается еще одна дополнительная страница, в которой и размещаются детализированные данные. Если, после формирования отчета, оператору необходимо увидеть дополнительную информацию он щелкает по определенному компоненту (строка данных, ячейка, график), и происходит открытие дополнительной страницы.

В качестве примера сделаем детализацию в Master-Detail отчете, рассмотренном в главе 5 "Непрерывно-периодический отчет". Напомним, данный отчет отображает информацию о проведенном циклическом процессе (отжиг, закалка). Отчет содержит в себе общую информацию о процессе – время начала и конца цикла, уставка, максимальное и минимальное значение, а также график процесса.

ReportManualPart5_img14

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

Сначала создадим новую страницу.

ReportManualPart5_img15

Вытащим на созданную страницу источник данных "Значения_температуры", разместим на странице три бэнда (Заголовок данных, Данные и Итог данных) и настроим внешний вид ячеек - сделаем границу и разместим текст по центру.

ReportManualPart5_img16

Вернемся на страницу Page1 и сделаем, чтобы щелчок по диаграмме на первой странице, приводил к открытию второй страницы. Для этого выделим диаграмму, и перейдем на панель свойств. В панели свойств, включим откроем окно настроек Взаимодействия и перейдем на вкладку Детализация:

ReportManualPart5_img17

Включим детализацию и укажем страницу детализации - Page2.

ReportManualPart5_img18

Запустим предварительный просмотр. Наведем мышь на сформированный график (курсор мыши изменит свою форму), и нажмем левую кнопку мыши.

ReportManualPart5_img19

Произошло открытие нашей второй страницы. При этом в верхней части окна просмотра появились вкладки– с их помощью можно осуществлять навигацию по открытым окнам (вернутся на исходную, или другую сформированную страницу).

ReportManualPart5_img20

Текущий отчет содержит информацию о трех циклах, поэтому и на странице детализации отображены данные по всем этим циклам. Нам же необходимо, чтобы страница содержала данные только по выбранному нами циклу.

Чтобы убрать лишние данные, их необходимо отфильтровать по времени начала и времени конца цикла. В настройках бэнда Данные есть вкладка Фильтры, где можно произвести данную операцию. Однако для того чтобы выполнить фильтрацию, необходимо передать на страницу детализации время начала и конца цикла. Для решения данной задачи, у компонента существуют параметры детализации.

Вернемся в режим разработки, и снова выберем диаграмму. Откроем окно настройки Взаимодействия и перейдем на вкладку Параметры:

ReportManualPart5_img21

Наименование параметра – это имя, по которому можно будет обратится на странице детализации для получения переданного значения. В поле Выражение задается функция которая присвоит параметру детализации нужное значение.

Нам необходимо передать на страницу детализации время начала (колонка источника данных "Параметры_цикла.Начало_цикла") и конца цикла (колонка "Параметры_цикла.Конец_цикла").

Добавим новый параметр детализации, дадим ему наименование – Start, а выражение –

Параметры_цикла.Начало_цикла

ReportManualPart5_img22

Второму параметру детализации зададим наименованиеEnd, а выражение - Параметры_цикла.Конец_цикла.

ReportManualPart5_img23

Перейдем на страницу 2. Сначала проверим передачу параметров на страницу детализации – сделаем вывод значений параметров в заголовке отчета. Для этого добавим на страницу бэнд Заголовок отчета. Добавим на бэнд два текстовых поля с текстом "Время начала цикла" и "Время конца цикла".

ReportManualPart5_img24

Добавим напротив верхнего текстового поля еще одно поле. Пропишем в поле код:

{(DateTime) this["Start"]}

С помощью this["Start"] происходит обращение к переданному параметру детализации "Start". Функция (DateTime) выполняет преобразование полученного значения, к необходимому нам типу "Дата-Время".

Аналогично сделаем со вторым параметром детализации. Теперь код будет:

{(DateTime)this["End"]}

В итоге бэнд будет выглядеть следующим образом:

ReportManualPart5_img25

Запустим предварительный просмотр, и выберем одну из диаграмм. В ячейки будут прописаны время начала и конца выбранного цикла:

ReportManualPart5_img26

Теперь настроим фильтрацию.

Выделим бэнд Данные, откроем окно настроек данных и перейдем на вкладку Фильтры.

ReportManualPart5_img27

Введем выражение нашего фильтра:

Значения_температуры.Время>(DateTime)this["Start"] && Значения_температуры.Время<(DateTime)this["End"]

ReportManualPart5_img28

С помощью такой фильтрации мы оставим на странице данные только за нужный нам цикл.

Запустим предварительный просмотр, и выберем один из циклов.

ReportManualPart5_img29

Теперь на странице только нужные нам данные.

Аналогичным образом можно осуществлять фильтрацию по любому другому передаваемому параметру (например - по имени установки, по уставке значения, номеру счетчика и т.д.). Во всех случаях обращение к параметру на странице детализации будет осуществляться через this["Имя_Параметра"]. В зависимости от типа данных параметра, функции преобразования будет отличаться: для строк – (string), для целых чисел – (int), для вещественных - (double) и т.д. Узнать тип данных колонки, можно на закладке Свойства.

ReportManualPart5_img30

Примечание. Возможность детализации доступно только в окне просмотра отчетов.

 

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