Skip to content

Latest commit

 

History

History
140 lines (113 loc) · 6.9 KB

File metadata and controls

140 lines (113 loc) · 6.9 KB
GroupTable

Компонент GroupTable - это таблица с возможностью динамической группировки по любому полю. Для того чтобы сгруппировать таблицу по какой-либо колонке, нужно в заголовке таблицы перетащить эту колонку в позицию слева от элемента gui groupTableIcon. Сгруппированные значения можно разворачивать и сворачивать с помощью кнопок gui groupBox plus/gui groupBox minus.

gui groupTableDragColumn

XML-имя компонента: groupTable.

Компонент реализован только для блока Web Client. В Desktop Client ведет себя как обычная таблица.

Для GroupTable в атрибуте datasource элемента rows должен быть указан groupDatasource. В противном случае группировка работать не будет.

Пример использования:

link:../../../../../../source/gui_vcl/grouptable_1.xml[role=include]

group − необязательный элемент, может в единственном экземпляре находиться внутри columns. Содержит набор элементов column, по которым будет выполняться первоначальная группировка при открытии экрана.

Элемент column может содержать атрибут groupAllowed с булевым значением. С помощью этого атрибута можно запретить пользователю группировать таблицу по данной колонке.

При включенном атрибуте aggregatable таблица отображает результаты агрегации по всем строкам в дополнительной строке вверху, а также результаты агрегации по группам. Отображение агрегации по всем строкам можно отключить, установив false в атрибуте showTotalAggregation.

При включенном атрибуте multiselect клик по строке группировки с зажатой клавишей Ctrl разворачивает группу (если была свёрнута) и применяет выделение ко всем строкам этой группы. При этом, если вся группа выделена, Ctrl+click не снимает выделение со всей группы. Вы по-прежнему можете снять выделение с отдельных строк, пользуясь стандартным поведением клавиши Ctrl.

Методы интерфейса GroupTable:
  • groupByColumns() - применяет группировку по заданным колонкам.

    В примере ниже таблица будет сгруппирована сначала по колонке department, а затем - по колонке city:

    groupTable.groupByColumns("department", "city");
  • ungroupByColumns() - снимает группировку по заданным колонкам.

    Следующий пример снимет группировку по department, однако группировка по колонке city из предыдущего примера будет сохранена:

    groupTable.ungroupByColumns("department");
  • ungroup() - снимает группировку по всем колонкам.

В остальном функциональность GroupTable аналогична простой таблице Table.


Атрибуты groupTable

align - aggregatable - aggregationStyle - columnControlVisible - contextMenuEnabled - editable - enable - height - id - multiLineCells - multiselect - presentations - reorderingAllowed - settingsEnabled - showTotalAggregation - sortable - stylename - tabIndex - textSelectionEnabled - visible - width

Элементы groupTable

actions - buttonsPanel - columns - rows - rowsCount

Элементы columns

column - group

Атрибуты column

align - caption - captionProperty - collapsed - dateFormat - editable - groupAllowed - id - link - linkInvoke - linkScreen - linkScreenOpenType - maxTextLength - optionsDatasource - resolution - sortable - visible - width

Элементы column

aggregation - formatter

Атрибуты rows

datasource

API

addColumnCollapseListener - groupByColumns - setClickListener - ungroup - ungroupByColumns