Как сделать простой редактор куба FastCube .NET

03.04.2018

Для просмотра и редактирования кубов и срезов FastCube .NET необходимо специальное приложение, которое вы должны предварительно создать. Так как FastCube .NET поставляется в виде библиотеки и компонентов, мы легко можем встроить редактор кубов в свое существующее WinForms приложение, либо создать отдельное, специально для него.

В этой статье мы рассмотрим, как создать простой редактор кубов и срезов двумя способами: с помощью элементов управления или из кода программы.

1)      Первый способ – визуальные элементы управления

Создадим Windows Form Application.

Добавим компонент tabControl с тремя вкладками: Slice, Cube и Chart.

Как вы уже догадались, на первой вкладке мы будем отображать срез OLAP куба, на второй – данные из куба, на третьей – диаграмму по срезу.

Необходимо подключить библиотеки к проекту: FastReport.Olap и FastReport.Bars.

В палитре компонентов (Toolbox) нам доступен набор элементов управления для FastCube:

 

Перетащим элемент управления Cube на нашу форму. В свойстве DataSource нам доступно 4 типа источника данных для куба:

DataSource – данные из базы;

File – данные из файла куба;

Stream – данные из потока;

Manual – ручное заполнение.

В нашем примере мы воспользуемся файлом куба содержащим данными (Тип File).

Загрузить файл куба можно из кода приложения. Например, в событии формы OnLoad:

cube1.Load("C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/2_0_sample_en1.mdc");

А теперь добавим на форму компонент Slice. В его свойствах нам нужно лишь выбрать куб:

 

Теперь, нужно отобразить куб и срез. На вкладку Slice поместим элемент управления SliceGrid.

Все, что нам нужно – это задать свойство Slice для него. Выбираем значение slice1.

На вкладку Cube добавим элемент управления CubeGrid. В его свойстве Cube выбираем cube1.

 

На третью вкладку – Chart – мы добавляем элемент управления Chart:

В свойствах добавленного элемента управления найдите Slice и выберите значение slice1.

Если мы запустим приложение сейчас, то увидим загруженный куб, срез и диаграмму, но не будем иметь возможность загрузить другой куб, или сохранить изменения в текущем. Необходимо добавить панели инструментов для каждого компонента: SliceGrid, CubeGrid и Chart.

Для этого перетащите на форму из toolbox следующие компоненты: SliceGridToolbar, CubeGridToolbar, ChartToolbar.

Компоненты появятся ниже формы:

В свойствах chartToolbar найдите Chart и выберите значение chart1.

Для cubeGridToolbar задаем свойство Grid – значение cubeGrid1.

В свойствах sliceGridToolbar для поля Grid выбираем sliceGrid1.

Теперь нам нужно привязать эти тулбары к соответствующим вкладкам. Добавим три строчки кода в событие загрузки формы OnLoad:

sliceGridToolbar1.Parent = tabPage1;

cubeGridToolbar1.Parent = tabPage2;

chartToolbar1.Parent = tabPage3;

Теперь запустим приложение:

Вверху расположен sliceGridToolbar. Срез представляет собой выборку данных из куба для заданных измерений и показателей.

Тут выводятся все данные из куба.

График основан на данных из среза. Здесь также присутствует панель инструментов.

1)      Второй способ – в коде программы

Все, что мы добавляли на форму с помощью мыши, можно прописать в коде приложения вручную.

В reference нужно добавить библиотеки: FastReport.Olap, FastReport.Bars, System.Windows.Forms.DataVisualization;

На форму добавляем элемент управления TabControl с тремя вкладками. Открываем код формы.

В секции using нам понадобятся библиотеки:

1
2
3
4
using System;
using System.Windows.Forms;
using FastReport.Olap.Controls;
using FastReport.Olap.Chart;

Размещаем весь код по созданию и настройке компонентов, например, в конструкторе класса:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public Form1()
 {
 InitializeComponent();
 
 
 FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube();
 FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice();
 slice1.Cube = cube;
 
 
 SliceGrid sliceGrid = new SliceGrid();
 sliceGrid.Dock = DockStyle.Fill;
 sliceGrid.Parent = tabPage1;
 sliceGrid.Slice = slice1;
 
 
 SliceGridToolbar sliceGridToolbar = new SliceGridToolbar();
 sliceGridToolbar.Dock = DockStyle.Top;
 sliceGridToolbar.Parent = tabPage1;
 sliceGridToolbar.Grid = sliceGrid;
 
 
 CubeGrid cubeGrid = new CubeGrid();
 cubeGrid.Dock = DockStyle.Fill;
 cubeGrid.Parent = tabPage2;
 cubeGrid.Cube = cube;
 
 
 CubeGridToolbar cubeGridToolbar = new CubeGridToolbar();
 cubeGridToolbar.Dock = DockStyle.Top;
 cubeGridToolbar.Parent = tabPage2;
 cubeGridToolbar.Grid = cubeGrid;
 
 
 Chart chart = new Chart();
 chart.Dock = DockStyle.Fill;
 chart.Parent = tabPage3;
 chart.Slice = slice1;
 
 
 ChartToolbar chartToolbar = new ChartToolbar();
 chartToolbar.Dock = DockStyle.Top;
 chartToolbar.Parent = tabPage3;
 chartToolbar.Chart = chart;
 
 
 cube.Load("J:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc");
 }

Вот и все. Приложение готово. «Набросать» элементы управления мышью или создать их в коде – выбирать вам.

28 октября 2024

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

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

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

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

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

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