Pivot#
Pivot - элемент для просмотра olap-кубов.
Интерактивная конфигурация и полное описание свойств.
Контрол поставляется в отдельном пакете ecosoft-lexema8-devextreme. Для его использования необходимо установить последнюю версию пакета и настроить свойство controls раздела front.
Свойства#
allowExpandAll#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения пользовательского контекстного меню заголовка столбца или строки для сворачивания/разворачивания всех элементов выбранного уровня
allowFiltering#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения значка фильтрации для вызова всплывающего окна в панели управления полями
allowSearchInFilter#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения поля поиска в окне фильтрации
allowSorting#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения значка сортировки в панели управления полями
allowSorting#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения пользовательского контекстного меню заголовка столбца или строки для сортировки по итоговым значениям
dataFieldArea#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | row | column, row |
Определяет область, к которой должны принадлежать заголовки полей данных, если полей данных более одного
denyRoles#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| [string] | undefined | ["text", "text"...] |
Список ролей без прав на данный элемент
disabled#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | false | true/false |
Отключение реакции контрола на взаимодействие с пользователем
drillDownEnabled#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Включить/выключить возможность просматривать детализацию ячеки. Если значение true, то в контекстном меню, которое открывается при клике правой кнопки мыши по ячейке, появится соответствующий пункт
editorWidth#
| тип | знач. по умолч. | допустимые значения |
|---|---|---|
| int | 5 |
Ширина контрола в колонках (для Bootstrap-верстки)
exportFileName#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | PivotExport |
Наименование файла при экспорте
height#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | number | - |
Высота контрола
hideEmptySummaryCells#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Следует ли скрывать строки и столбцы без данных
ignoreExcelErrors#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Должен ли Excel скрывать предупреждения, если в экспортированном документе есть ошибки
rowHeaderLayout#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | standard | standard, tree |
Определяет расположение элементов в заголовке строки
id#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Идентификатор контрола
readRoles#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| [string] | undefined | ["text", "text"...] |
Список ролей на чтение данных
scrollMode#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | standard | standard, virtual |
Режим прокрутки
showColumnGrandTotals#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения столбца итоговой суммы
showColumnTotals#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения столбца итоговой суммы, рассчитанной для всех предыдущих уровней иерархии
showLoadPanel#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения панель загрузки
showRowGrandTotals#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения строки итоговой суммы
showRowTotals#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция отображения строки итоговой суммы, рассчитанной для всех предыдущих уровней иерархии
showTotalsPrior#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | none | none, columns, rows, both |
Определяет отображение строк и столбцов итоговых сумм относительно данных
tags#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| [string] | undefined | ["text", "text"...] |
Позволяет объединять контролы в группы, возвращает массив имен
visible#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Видимость контрола
width#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | 100% | width |
Ширина контрола
wordWrapEnabled#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Опция переноса длинного текста в элементах заголовка
writeRoles#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| [string] | undefined | ["text", "text"...] |
Список ролей на изменение данных
Методы#
beginUpdate()#
Запрещает обновление контрола до вызова метода endUpdate()
bindGraph(graph, integrationOptions)#
Привязывает контрол к контролу Graph (в момент вызова метода инициализация контрола Graph должна быть закончена). Возвращает метод для отмены привязки
- graph - ссылка на контрол Graph
- integrationOptions - настройки привязки
getDataSource()#
Возвращает экземпляр источника данных DataSource (только для доступа к свойствам и методам)
getFieldChooser()#
Возвращает экземпляр FieldChooser (только для доступа к свойствам)
getFieldPanel()#
Возвращает экземпляр FieldPanel (только для доступа к свойствам)
getOptions()#
Возвращает опции контрола
endUpdate()#
Обновляет контрол после вызова метода beginUpdate()
exportToExcel()#
Экспортирует данные в файл Excel
repaint()#
Обновляет разметку без перезагрузки данных
setDataSource(options)#
Задает новый источник данных
- options - объект опций
Пример
События#
cellClicked(s, e)#
Срабатывает при клике по ячейке, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
| e | object | объект параметров события |
| e.args | object | аргументы события |
| e.args.area | string | область, к которой принадлежит ячейка |
| e.args.cell | object | свойства ячейки |
| e.args.rowIndex | Number | индекс строки, которой принадлежит ячейка |
| e.args.columnIndex | Number | индекс столбца, которому принадлежит ячейка |
| e.args.columnFields | поля области столбца | |
| e.args.rowFields | поля области строк | |
| e.args.dataFields | поля области данных |
cellPrepared(s, e)#
Срабатывает при создании ячейки, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
| e | object | объект параметров события |
| e.args | object | аргументы события |
| e.args.area | string | область, к которой принадлежит ячейка |
| e.args.cell | object | свойства ячейки |
| e.args.rowIndex | Number | индекс строки, которой принадлежит ячейка |
| e.args.columnIndex | Number | индекс столбца, которому принадлежит ячейка |
contentReadyOrChanged(s)#
Срабатывает, когда содержимое контрола готово и каждый раз, когда содержимое изменяется, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
contextMenuPreparing(s, e)#
Срабатывает до отображения контекстного меню, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
| e | object | объект параметров события |
| e.args | object | аргументы события |
| e.args.items | [string] | массив элементов для отображения в контекстном меню |
| e.args.area | string | область, к которой принадлежит ячейка |
| e.args.cell | object | свойства ячейки |
| e.args.rowIndex | Number | индекс строки, которой принадлежит ячейка |
| e.args.columnIndex | Number | индекс столбца, которому принадлежит ячейка |
| e.args.columnFields | поля области столбца | |
| e.args.rowFields | поля области строк | |
| e.args.dataFields | поля области данных | |
| e.args.field | object | конфигурация поля. Доступно только для полей в FieldPanel |
disposing(s)#
Срабатывает перед удалением виджета, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
exported(s)#
Срабатывает после экспорта данных, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
exporting(s, e)#
Срабатывает перед экспортом данных, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
| e | object | объект параметров события |
| e.args | object | аргументы события |
| e.args.fileName | string | имя файла для экспорта данных |
fileSaving(s, e)#
Срабатывает перед сохранением файла с экспортированными данными в локальном хранилище пользователя, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
| e | object | объект параметров события |
| e.args | object | аргументы события |
| e.args.fileName | string | имя файла для экспорта данных |
initialized(s)#
Срабатывает после инициализации контрола, где
| параметр | тип | описание |
|---|---|---|
| s | Pivot | ссылка на экземпляр контрола Pivot |
Callbacks#
drillDownLinkRenderer(s, e)#
Позволят создавать ссылки в гриде детализации данных. Основная статья: Grid (8.3)#linkRenderer.
Примечание: первый параметр (s) вместо ссылки на контрол принимает значение undefined.
FieldChooser#
FieldPanel#
DataSource#
Примеры настройки контрола#
На форме отображается контрол Pivot без источника данных, без возможности пользователем настройки отображения полей, фильтров, сортировки. В данном случае источник данных и описание полей задаются в коде:
Пример
На форме отображается контрол Pivot без источника данных, с возможностью пользователем настроить отображение полей, фильтры, сортировку. В данном случае источник данных задаются в коде, отрбражение полей может настраиваться как из кода, так и пользователем:
На форме отображается контрол Pivot с заданным источником данных (OLAP-куб) и отображением полей, без возможности пользователем настройки отображения полей, фильтров, сортировки:
Пример
На форме отображается контрол Pivot с заданным источником данных и отображением полей, с возможностью пользователем настроить отображение полей, фильтры, сортировку:
Пример
На форме отображается контрол Pivot с заданным источником данных (запрос lexema8) и отображением полей, без возможности пользователем настройки отображения полей, фильтров, сортировки:
Пример
Использование OLAP#
Для улучшения производительности и отзывчивости интерфейса приложения при работе с большими объемами данных рекомендуется использовать OLAP. Контрол Pivot поддерживает настройку источнику данных для взаимодействия с OLAP-сервером с использованием XMLA-стандарта.
На данный момент в качестве OLAP-сервера поддерживается только Microsoft Analysis Services. Контрол Pivot подключается к OLAP-серверу по протоколу HTTP, используя IIS как промежуточное подключение. Для подключения указывается URL, который является адресом HTTP или HTTPS виртуальной папки IIS, содержащей файл msmdpump.dll.
Настройка IIS#
Настройка доступа по протоколу HTTP выполняется после установки служб Analysis Services. Администратор служб Analysis Services должен предоставить разрешения учетным записям Windows перед активацией доступа по протоколу HTTP. Также рекомендуется на момент настройки доступа иметь готовый куб для возможности проверки соединения.
Для упрощения настройки рекомендуется размещать IIS и Analysis Services на одном компьютере. В противном случае необходимо настроить кросс-доменные запросы. Также проверить наличие у IIS установленных компонент:
- Расширения ISAPI
Выполнить следующие шаги:
- Уточнить у системного администратора адрес сервера, на котором находится служба IIS, каталог для создания папки с содержимым сайтом, а также порт для сайта.
- Запустить диспетчер служб IIS на сервере, указанном системным администратором.
- Создать пул приложения:
- в диспетчере служб IIS открыть раздел Пулы приложений
- с помощью контекстного меню или меню в правой части выбрать пункт Добавить пул приложений;
- в появившемся окне для поля Имя задать значение в виде имяПроекта_OLAP, установить режим Классический;
- с помощью контекстного меню или меню в правой части для созданного пула выбрать пункт Дополнительные параметры;
- в появившемся окне найти раздел Модель процесса, перейти в режим редактирования пункта Удостоверение;
- в появившемся окне выбрать пункт Особая учетная запись, нажать кнопку Установить, указать учетные данные пользователя Analysis Services и нажать кнопку OK.
- Добавить новый сайт. Задать имя сайта в виде имяПроекта_OLAP, выбрать ранее созданный пул. Для содержимого сайта создать папку с именем в виде wwwroot_myProject_OLAP в каталоге, указанном системным администратором. Указать порт и другие настройки.
- В папке с содержимым сайта wwwroot_myProject_OLAP создать новую папку с именем OLAP.
- Скопировать находящиеся в <диск >: \Program Files\Microsoft SQL Server\< экземпляр>\OLAP\bin\isapi файлы MSMDPUMP.DLL и MSMDPUMP.INI, папку Resources.
- Вставить в созданную папку OLAP ранее скопированные два файла и папку.
- Открыть файл MSMDPUMP.INI с помощью текстового редактора и исправить значение в разделе ServerName на имя сервера, на котором расположен Analysis Service.
- Для служб IIS версии 8 создание виртуального каталога и его преобразование происходит автоматически, для версий ниже 8 для этого нужно сделать следующие шаги:
- в диспетчере служб IIS в разделе Сайты кликнуть правой кнопкой мыши по сайту имяПроекта_OLAP ;
- в контекстном меню кликнуть по пункту Добавить виртуальный каталог;
- в появившемся окне в поле Псевдоним ввести OLAP, Физический путь - указать путь до папки OLAP в каталоге с содержимым сайта, нажать кнопку OK;
- в диспетчере служб IIS кликнуть правой кнопкой мыши по виртуальному каталогу OLAP;
- в контекстном меню кликнуть по пункту Преобразовать в приложение;
- в появившемся окне в полях должны быть проставлены следующие значения: Псевдоним - OLAP, Пул приложений - имяПроекта_OLAP, Физический путь - путь до папки OLAP в каталоге с содержимым сайта; если все верно, нажать кнопку OK
- Настроить сопоставление обработчиков для виртуального каталога OLAP:
- в диспетчере служб IIS для виртуального каталога OLAP открыть содержимое элемента Сопоставления обработчиков;
- с помощью контекстного меню или меню в правой части выбрать пункт Добавить сопоставление сценария;
- в появившемся окне для поля Путь запроса задать значение *.dll, для поля Исполняемый файл - путь к файлу MSMDPUMP.DLL в виртуальном каталоге OLAP, для поля Имя - OLAP;
- в этом же окне кликнуть по кнопке Ограничения запроса
- в появившемся окне перейти на вкладку Команды, выбрать пункт Все команды и нажать на кнопку OK;
- в окне добавления сопоставления нажать на кнопку OK;
- в появившемся окне для разрешения расширения ISAPI нажать на кнопку Да;
- с помощью контекстного меню или меню в правой части выбрать пункт Просмотреть отсортированный список;
- найти в списке сопоставление OPTIONSVerbHandler и с помощью стрелок в правой части поднять его вверх в списке;
- убедиться, что сопоставление OLAP находится в списке на втором месте после OPTIONSVerbHandler.
- Добавить заголовки ответов HTTP для виртуального каталога OLAP:
- в диспетчере служб IIS для виртуального каталога OLAP открыть содержимое элемента Заголовки ответов HTTP;
- с помощью контекстного меню или меню в правой части выбрать пункт Добавить;
- в появившемся окне для поля Имя задать значение Access-Control-Allow-Headers, для поля Значение - Content-Type, нажать на кнопку OK;
- добавить второй заголовок с именем Access-Control-Allow-Methods и значением POST;
- добавить третий заголовок с именем Access-Control-Allow-Origin и значением *.
- Проверить настройку подключения:
- открыть SQL Server Management Studio;
- в появившемся окне настройки подключения в качестве типа сервера выбрать Analysis Services;
- указать имя сервера как URL-адрес MSMDPUMP.dll в формате http://serverName:port/OLAP/msmdpump.dll;
- нажать кнопку Connect, в случае правильной настройки откроется доступ к построенным кубам.















