Для просмотра и редактирования кубов и срезов 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"); } |
Вот и все. Приложение готово. «Набросать» элементы управления мышью или создать их в коде – выбирать вам.