Динамическое сворачивание, сортировка и детализация
Помимо переменных, значения которых можно задавать на панели параметров, вьювер поддерживает другие виды интерактивности, добавляющей удобства и функциональности при использовании генератора отчетов. Это сортировка, сворачивание и детализация.
Динамическая сортировка предоставляет возможность изменять направление сортировки в построенном отчете. Для этого следует щелкнуть по компоненту, у которого была установлена динамическая сортировка. Динамическая сортировка осуществляется в следующих направлениях: По возрастанию (Ascending) и По убыванию (Descending). Каждый раз при щелчке по компоненту направление меняется на противоположное.
Допускается многоуровневая сортировка в отчете. Для этого необходимо удерживать клавишу Ctrl и последовательно нажимать на сортируемые компоненты отчета. Для сброса сортировки можно нажать на любой сортируемый компонент без удержания клавиши Ctrl.
Отчет с динамическим сворачиванием представляет собой интерактивный отчет, в котором определенные блоки могут сворачивать/разворачивать свое содержимое при нажатии на заголовок блока. Элементы отчета, которые можно свернуть/развернуть, обозначены специальной иконкой со знаком [-] или [+].
При детализации данных под главной панелью вьювера будет отображена панель детализации с закладками детализированных отчетов. Отображенный в данный момент отчет будет подсвечен. Предусмотрена возможность закрывать не требуемые в данный момент детализированные страницы.
Сортировка дашборда
При просмотре дашборда, во многих элемента можно изменять сортировку по полям данных элемента По возрастанию (Ascending) и По убыванию (Descending).
Фильтрация дашборда
Фильтрация на дашборде возможна как при помощи специальных элементов фильтрации, так и при помощи других элементов. Фильтрация будет применяться для всех взаимосвязанных элементов на дашборде.
Детализация дашборда
В дашбордах, как и в отчетах, возможно открытие детализирующего дашборда, а также отчета. Кроме этого, для некоторых элементов дашборда возможна детализация данных на уровне элемента.
Событие интерактивности вьювера
Для работы любых интерактивных действий в отчете или дашборде не требуется дополнительных настроек вьювера. Предусмотрена возможность выполнения каких-либо операций перед интерактивным действием вьювера. Для этого достаточно определить событие onInteraction, которое будет вызвано в момент совершения интерактивного действия перед его применением к отчету. В аргументах события будут переданы тип действия, объект отчета, а также все параметры, используемые для текущего интерактивного действия. Подробное описание доступных значений аргументов находится в разделе События вьювера.
Для каждого вида интерактивности вьювера предусмотрен определенный тип действия, указанного в данной таблице:
Наименование |
Описание |
InitVars |
Действие происходит при инициализации переменных отчета, запрашиваемых у пользователя. |
Variables |
Действие происходит при использовании переменных на панели параметров. Подробное описание находится в разделе Работа с переменными отчета. |
Sorting |
Действие происходит при использовании сортировки колонок. |
DrillDown |
Действие происходит при использовании детализации колонок. |
Collapsing |
Действие происходит при использовании сворачивания блоков отчета. |
DashboardFiltering |
Действие происходит при использовании фильтров внутри элемента дашборда. |
DashboardSorting |
Действие происходит при использовании сортировки внутри элемента дашборда. |
DashboardResetAllFilters |
Действие происходит при сбросе сортировки и фильтров внутри элемента дашборда на значения, заданные в шаблоне. |
DashboardElementDrillDown |
Действие происходит при использовании детализации элемента дашборда. |
DashboardElementDrillUp |
Действие происходит при использовании детализации элемента дашборда. |
Тип действия передается в аргументах события:
app.py |
from stimulsoft_reports.viewer import StiViewer
viewer = StiViewer() viewer.onInteraction += 'interaction'
|
viewer.html |
<script> function interaction(args) { switch (args.action) { case "Sorting": break;
case "DrillDown": break;
case "Collapsing": break; } } </script>
|
В аргументах передаются соответствующие коллекции параметров sortingParameters, collapsingParameters, drillDownParameters и filteringParameters, содержащие данные в специальном формате, необходимые для текущего интерактивного действия. При необходимости, значения коллекции параметров допускается корректировать, сохраняя структуру и порядок передаваемых значений. Пример передаваемых значений параметров для некоторых интерактивных действий:
viewer.html |
<script> let sortingParameters = { ComponentName: "Text10;false", DataBand: "DataBand1;DESC;CompanyName" };
let collapsingParameters = { CollapsingStates: { GroupHeaderBand1: { keys: [1], values: [false] }, ComponentName: "GroupHeaderBand1" };
let drillDownParameters = [ { ComponentIndex: "1" DrillDownMode: null ElementIndex: "6" PageGuid: "b916d048d3f446dc97c356d4ff47f48f" PageIndex: "0" ReportFile: null } ]; </script>
|
Прямой доступ к значениям параметров интерактивных действий вьювера на стороне Python сервера не предусмотрен, событие работает только на стороне JavaScript клиента.