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