Использование ShowPivotTableAction
Действие ShowPivotTableAction
- это специальное действие, которое позволяет экспортировать данные из компонентов, наследующих от ListDataComponent
, таких как DataGrid и TreeDataGrid, в сводную таблицу.
Проще всего использовать это действие, определив его в вашем dataGrid
, а затем связав с кнопкой.
<dataGrid id="tipInfoesDataGrid"
dataContainer="tipInfoesDc"
minWidth="100px"
width="100%">
<actions>
<action id="showPivotTableAction" type="pvttbl_showPivotTable"/>
</actions>
</dataGrid>
Вы также можете создать действие программно в вашем контроллере экрана и использовать его с кнопкой.
@Subscribe
public void onInit(final InitEvent event) {
ShowPivotTableAction<TipInfo> showPivotTableAction =
actions.create(ShowPivotTableAction.ID);
showPivotTableAction.setTarget(tipInfoesDataGrid);
showManualSetPivotTableActionButton.setAction(showPivotTableAction);
showManualSetPivotTableActionButton.setText(
messages.getMessage(getClass(), "manualSetShowActionButton.text"));
}
Действие ShowPivotTableAction
имеет два режима для экспорта данных:
-
Все строки (All rows): Экспортирует все строки в
DataGrid
илиTreeDataGrid
. -
Выбранные строки (Selected rows): Экспортирует только выбранные строки в
DataGrid
илиTreeDataGrid
.
Если ни одна строка не выбрана, по умолчанию будут экспортированы все строки без подтверждения.
Сводная таблица в режиме UI будет отображена в новой вкладке. По умолчанию будут отображены все атрибуты, включенные в представление контейнера данных компонента, за исключением:
-
Атрибутов типа
Collection
. -
Атрибутов типа
byte[]
(массив байтов). -
Атрибутов типа
UUID
. -
Атрибутов, аннотированных @SystemLevel.
Чтобы исключить определенные атрибуты или включить только определенный набор атрибутов, используйте бин Spring PivotTableViewBuilder
. Этот бин предоставляет простой API для настройки компонента сводной таблицы в открытом экране.
Чтобы реализовать пользовательскую конфигурацию, обработайте событие ActionPerformedEvent
.
@Subscribe("tipInfoesDataGrid.customShowPivotTableAction")
public void onCustomShowPivotTableAction(final ActionPerformedEvent event) {
PivotTableViewBuilder builder = getApplicationContext().getBean(
PivotTableViewBuilder.class, tipInfoesDataGrid);
Renderers renderers = new Renderers();
renderers.setSelectedRenderer(Renderer.TABLE);
renderers.setRenderers(List.of(Renderer.TABLE, Renderer.TABLE_BAR_CHART, Renderer.HEATMAP,
Renderer.ROW_HEATMAP, Renderer.COL_HEATMAP));
builder.withIncludedProperties(Arrays.asList("sex", "smoker", "day", "time")) (1)
.withRows(Arrays.asList("sex", "smoker"))
.withColumns(Arrays.asList("day", "time"))
.withRenderers(renderers)
.withItems(tipInfoesDataGrid.getItems().getItems()) (2)
.show();
}
1 | Метод withIncludedProperties() учитывает только свойства, которые вы явно включаете, игнорируя все остальные. Чтобы исключить определенные свойства, используйте метод withExcludedProperties() . |
2 | Все остальные методы, начинающиеся с "with" , могут быть использованы для настройки параметров сводной таблицы. К ним относятся методы withHiddenFromAggregations() , withHiddenFromDragDrop() , withAggregationProperties() и другие. |
Вы можете экспортировать отображаемые данные сводной таблицы в Excel (если текущий рендерер поддерживается). Для этой цели соответствующая кнопка будет отображена по умолчанию на открытой вкладке.