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