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

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

 

Сортировка

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