Как сделать отчет на основе среза куба FastCube .NET

03.04.2018

Аналитики, разбираясь с кубами иногда нуждаются в формировании отчетов, на основе срезов.

Когда это нужно? Когда на основе кубов нужно делать регулярные отчеты. Когда необходимо экспортировать куб в какой-либо популярный формат данных, который не доступен во встроенном экспорте FastCube.Net. Встроенный в FastCube экспорт предлагает нам 7 форматов:

 

А отчет FastReport .NET – 24. Плюс сохранение в облачные сервисы, отправка электронной почтой и по FTP:

 

В этой статье я хочу рассказать о такой прекрасной возможности, как сделать отчет на основе среза куба. По традиции рассматривать будем на примере.

Создадим WindowsForms приложение. Добавим в проект ссылки на библиотеки: FastReport, FastReport.Olap, FastReport.Bars. Их можно найти в папке с установленным FastCube.Net.

Добавляем на форму следующие компоненты из toolbar:

Cube, Slice, SliceGrid, Button

Настроим компонент Slice1. Для его свойства cube выберем значение cube1.

У компонента SliceGrid1 нужно задать свойство slice – slice1.

Для кнопки создадим обработчик события нажатия:

1
2
3
4
5
6
7
8
9
private void button1_Click(object sender, EventArgs e)
 {
 SliceCubeReportLink SliceLink = new SliceCubeReportLink();
 SliceLink.Slice = slice1;
 cube1.Load("C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/simple.mdc");
 Report FReport = new Report();
 FReport.RegisterData(SliceLink, "TestCubeLink");
 FReport.Design();
 }

В первой строке кода мы создали объект SliceCubeReportLink, который как раз и отвечает за предоставление данных среза для отчета. Далее, мы присваиваем свойству slice значение slice1 для созданного объекта. То есть указываем откуда брать данные.

Теперь необходимо загрузить файл куба в объект cube. Так как мы используем файл с расширением mdc, он уже содержит внутри себя данные и нет необходимости создавать подключение к источнику данных для куба.

Затем, мы создаем объект отчета Report, загружаем в него файл с шаблоном отчета, регистрируем в нем источник данных, и запускаем отчет в дизайнере.

Если нам не нужно вносить правки в шаблон отчета, то, вместо запуска дизайнера лучше запустить отчет в режиме предварительного просмотра:

1
2
 FReport.Prepare();
 FReport.ShowPrepared();

Давайте, теперь рассмотрим шаблон отчета. Ведь мы только передаем в отчет данные из куба, и нам придется создать шаблон кросс-таблицы вручную. То есть генерировать отчет на лету из любого среза не получится. Всегда нужен заранее подготовленный шаблон.

Чтобы создать шаблон отчета, нам потребуется запустить приложение, а потом дизайнер отчета. Только так мы получим источник данных для отчета. Таким образом, код для нашей кнопки в первоначальном виде мы используем вызов дизайнера:

1
 FReport.Design();

Запустим приложение. И нажмем кнопку формирования отчета:

При этом запустится дизайнер отчетов с пустым отчетом. Обратите внимание на область данных справа:

В нем есть источник данных куба – TestCubeLink.

А теперь посмотрите на вертикальную панель инструментов слева. А именно на значок  . Это компонент CrossView, который сформирует нам кросс-таблицу из источника данных куба. «Перетаскиваем» его на бэнд «Данные».

 

Справа, в инспекторе свойств, найдите CubeSource

 

В итоге мы получим вот такой шаблон отчета:

Сохраняем его в желаемое место. В моем примере он сохранен в: C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/Test.frx.

Закрываем приложение. Теперь модифицируем код для кнопки:

1
2
3
4
5
6
7
8
SliceCubeReportLink SliceLink = new SliceCubeReportLink();
 SliceLink.Slice = slice1;
 cube1.Load("С:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/simple.mdc");
 Report FReport = new Report();
 FReport.Load("С:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/Test.frx");
 FReport.RegisterData(SliceLink, "TestCubeLink");
 FReport.Prepare();
 FReport.ShowPrepared();

Запустим приложение и нажмем кнопку. И получаем отчет:

 

Из режима предварительного просмотра отчета мы можем экспортировать отчет, отправлять по email и прочее. Это был простейший пример отчета, вы можете украсить кросс-таблицу с помощью свойства style. И получите гораздо более привлекательный вид:

28 октября 2024

Как настроить WSL 2 для работы с FastReport и FastCube

В этой статье попробуем вместе разобраться, как настроить WSL 2 для работы с компонентами FastReport и FastCube в Lazarus для Linux.
2 сентября 2024

Обзор облачного решения для создания и управления отчетами

МоиОтчеты Облако — это мощное облачное решение для создания и управления отчетами, обеспечивающее широкий спектр возможностей, от создания документов в различных форматах до интеграции с корпоративными системами.
12 августа 2024

Как собрать и установить плагин Postgres в FastReport .NET

В этой статье описывается подключение к базе посредством плагина FastReport .NET для дизайнера отчетов из Visual Studio через NuGet-сервер.