В этой статье мы рассмотрим компоненты, входящие в библиотеку FastCube.Net.
Список компонентов:
Давайте рассмотрим схему взаимосвязи компонентов.
Рассматриваем схему слева направо. Объект DataSource имеет свойство DataSet. Значением этого свойства будет ссылка на один из двух объектов: DBDataSet или DTDataSet.
Объект Cube имеет свойство DataSource. А CubeGrid и Slice связаны с объектом Cube.
В свою очередь SliceGrid и Chart связаны с объектом Slice. В дальнейшем, эта схема поможет нам в настройке связи компонентов.
А пока рассмотрим компоненты:
1) Компонент Cube – это основа всего FastCube. Он загружает файл куба и выступает поставщиком данных и схемы данных для других компонентов.
Ниже будут приведены основные свойства и методы этого компонента.
Свойства:
Свойство |
Описание |
Active
|
Активность true или false. Обязательно убедитесь, что после всех настроек, свойство Active имеет значение true. Иначе, вы просто не увидите никаких данных. |
Caption
|
Заголовок куба. Виден в CubeGrid. |
CompressCubeFile
|
Использовать ли компрессию файла куба |
DataSource
|
Источник данных необходимо выбрать, если вы заполняете куб данными из БД или DataTable. |
Description |
Описание. Видно в CubeGrid |
SkipFieldsWithErrors |
Пропускать поля с ошибками |
SourceType
|
Тип источника данных указывает откуда брать данные для заполнения куба. Может принимать одно из значений:
|
Методы:
Метод |
Описание |
ClearGroups() |
Отчистить группировку. |
Close() |
Закрыть куб. |
GetFieldsCount() |
Получить количество полей в кубе. |
GetSourceRecordsCount() |
Получить количество записей в источнике данных. |
GetSourceValue() |
Получить значение источника данных. |
GetSourceValueAsString() |
Получить значение источника данных в виде строки. |
GetSourceValueId() |
Получить идентификатор значения источника данных. |
GetSourceValueIdAndVariant() |
Получить идентификатор значения источника данных. |
Load() |
Загрузить куб. Файл или поток. |
LoadGroups() |
Загрузить группировку. |
Open() |
Открыть куб. |
Save() |
Сохранить куб в файл. |
SaveGroups() |
Сохранить группировку. |
Dispose() |
Уничтожает объект cube. |
SendAlert() |
Отправить предупреждение. |
Примеры использования в коде:
1 2 3 4 5 |
FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube(); cube.DataSource = dataSource1; cube.SourceType = FastReport.Olap.Cube.SourceType.DataSource; cube.Load("С:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc"); cube.Active = true; |
Если вы используете файл куба, который содержит данные, то свойство DataSource задавать не нужно. А для свойства SourceType необходимо значение FastReport.Olap.Cube.SourceType.File.
2) Компонент CubeGrid представляет собой сводную таблицу, заполняемую данными из куба. Проще говоря визуальное отображение куба.
Свойства:
Свойство |
Описание |
Сube |
Объект куба. |
DataZone |
Настройки отображения данных в сетке. |
Методы:
Метод |
Описание |
Export |
Экспорт куба в один из форматов:
|
CreateDataZone |
Создать новую зону данных. |
FullUpdate |
Обновить зону данных и зону заголовков. |
Примеры использования в коде:
1 2 3 4 |
CubeGrid cubeGrid = new CubeGrid(); cubeGrid.Dock = DockStyle.Fill; cubeGrid.Parent = tabPage2; cubeGrid.Cube = cube; |
Приведенный пример, показывает, как создать cubeGrid из кода приложения. Созданный объект нужно поместить на форму (свойство Parent), и настроить расположение (свойство Dock). Кроме того, необходимо указать куб, из которого брать данные.
3) Компонент CubeGridToolbar – представляет собой панель инструментов, которая работает в связке с компонентом cubeGrid.
Эта панель инструментов предоставляет только один элемент – экспорт. В таблице ниже будут приведены доступные форматы экспорта.
Свойства:
Свойство |
Описание |
Grid |
Грид, для которого действует панель инструментов. |
ToolItems |
Список элементов панели инструментов. |
Примеры использования в коде:
1 2 3 4 |
CubeGridToolbar cubeGridToolbar = new CubeGridToolbar(); cubeGridToolbar.Dock = DockStyle.Top; cubeGridToolbar.Parent = tabPage2; cubeGridToolbar.Grid = cubeGrid; |
Если свойства Dock и Grid можно настроить в инспекторе свойств, то Parent нужно задавать только в коде программы.
4) Компонент Slice содержит в себе срез куба. Для загрузки среза требуется загрузить файл со срезом. Это может быть файл куба или файл схемы.
Свойства:
Свойство |
Описание |
AutoUniqueValuesFilter |
Фильтровать повторяющиеся значения. |
Cube |
Объект куба. |
FieldsOrder |
Порядок отображения полей: ByIndex, ByName, ByCaption. |
ColCount |
Количество колонок. |
HideColZeros |
Скрывать пустые колонки. |
HideRowZeros |
Скрывать пустые строки. |
HideTotalForSingleValue |
Скрывать итог если всего одно значение. |
MeasuresContainer |
Контейнер, которые содержит показатели. |
RowCount |
Количество строк. |
ScriptLanguage |
Язык скрипта: CSharp, Vb. |
ScriptText |
Текст скрипта. |
ScriptRestristions |
Настройка ограничений скрипта. |
SliceFields |
Все поля среза. |
XAxisContainer |
Контейнер для полей, размещающихся по оси X. Для измерений. |
YAxisContainer |
Контейнер для полей, размещающихся по оси Y. Для измерений. |
Основные методы:
Метод |
Описание |
BeginUpdate |
Включить режим обновления. |
EndUpdate |
Завершить обновление. |
Clear |
Отчистить срез. Выгрузить файл среза. |
Save |
Сохранить срез. При сохранении куба выполняется автоматически. |
Load |
Загрузить срез из файла или потока. |
Transpose |
Транспонировать срез (изменить оси). |
Примеры использования в коде:
1 2 |
FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice(); slice1.Cube = cube; |
5) Компонент SliceGrid отображает срез в виде кросс-таблицы. Это основной инструмент аналитика. Позволяет настраивать расположение полей, добавлять новые, сортировать, группировать и другое.
Свойства:
Свойство |
Описание |
DataZone |
Настройки отображения данных в сетке. |
XAxisZone |
Настройки зоны отображения оси X. |
YAxisZone |
Настройки зоны отображения оси Y. |
FilterFieldsZone |
Настройки зоны фильтров. |
XFieldsZone |
Настройки зоны отображения измерений по оси X. |
YFieldsZone |
Настройки зоны отображения измерений по оси Y. |
FieldsZone |
Настройки зоны списка полей. |
Методы:
Метод |
Описание |
Export() |
Метод экспорта отчета в один из форматов:
|
ShowFieldsEditor() |
Открыть окно со списком полей среза. |
Примеры использования в коде:
1 2 3 4 |
SliceGrid sliceGrid = new SliceGrid(); sliceGrid.Dock = DockStyle.Fill; sliceGrid.Parent = tabPage1; sliceGrid.Slice = slice1; |
Этот пример показывает, как создать объект sliceGrid в коде приложения. Если такой необходимости нет, то все настройки можно произвести в инспекторе свойств.
6) Компонент SliceGridToolbar представляет собой визуализированную панель инструментов для SliceGrid:
Состав инструментария следующий:
1) Сохранить:
2) Открыть:
3) Отчистить сетку;
4) Экспортировать в:
5) Транспонировать – поменять оси X и Y местами;
6) Скрыть пустые строки;
7) Скрыть пустые столбцы;
8) Тип сортировки строк:
9) Тип сортировки колонок:
10) Редактировать показатели – настройки показателей. Сюда входит настройка условного выделения данных;
11) Формат отображения данных – задается для выбранной колонки или строки;
12) Список полей – список всех полей, доступных в срезе;
13) Редактор формул – по сути редактор скрипта на языке программирования C# или VB;
14) Информация – информация о срезе;
Свойства:
Свойство |
Описание |
Grid |
Грид, для которого действует панель инструментов |
ToolItems |
Список элементов панели инструментов |
Важной особенностью использования этого компонента является привязка к родительскому объекту в коде программы. То есть, вам недостаточно просто «перетащить» компонент на форму и настроить его свойство Grid. Необходимо в коде программы задать свойство Parent, чтобы отобразить toolbar на форме. Это может быть, например, объект sliceGrid, или TabPage, Panel, или другой подходящий.
Примеры использования в коде:
1 2 3 4 |
FastReport.Olap.Controls.SliceGridToolbar toolbar = new FastReport.Olap.Controls.SliceGridToolbar(); toolbar.Grid = sliceGrid1; toolbar.Parent = sliceGrid1; toolbar.Dock = DockStyle.Top; |
Во второй части статьи мы рассмотрим остальные объекты: Chart, ChartToolbar, DataSource, DBDataSet, DTDataSet.