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