Компонент GroupTable
- это таблица с возможностью динамической группировки по любому полю. Для того чтобы сгруппировать таблицу по какой-либо колонке, нужно в заголовке таблицы перетащить эту колонку в позицию слева от элемента . Сгруппированные значения можно разворачивать и сворачивать с помощью кнопок /.
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
-
align - caption - captionProperty - collapsed - dateFormat - editable - groupAllowed - id - link - linkInvoke - linkScreen - linkScreenOpenType - maxTextLength - optionsDatasource - resolution - sortable - visible - width
- Элементы column
- Атрибуты rows
- API
-
addColumnCollapseListener - groupByColumns - setClickListener - ungroup - ungroupByColumns