Динамическое сворачивание, сортировка и детализация

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

 

Сортировка

Динамическая сортировка предоставляет возможность изменять направление сортировки в построенном отчете. Для этого следует щелкнуть по компоненту, у которого была установлена динамическая сортировка. Динамическая сортировка осуществляется в следующих направлениях: По возрастанию (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>

 

 

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