Slice
Компонент Slice содержит в себе настройки среза куба и выполняет операции по группировки и вычислению данных. Управлять настройками среза можно через подключенный компонент SliceGrid
, из кода программы, либо загрузить ранее сохраненную схему из файла или потока.
Свойства
Свойство | Описание |
---|---|
public bool AutoUniqueValuesFilter | Указывает применять мгновенный пересчет фильтра по уникальному значению поля или обрабатывать его в пакетном режиме. Актуально для выпадающего списка уникальных значений в SliceGrid |
public Cube.Cube Cube | Объект куба. |
public FieldComparerType FieldsOrder | Порядок отображения списка полей: ByIndex, ByName, ByCaption. |
public int ColCount | Возвращает количество колонок в сводной таблице. |
public bool HideColZeros | Скрывать пустые колонки (колонки, в которых все значения равны 0 или пустые). |
public bool HideRowZeros | Скрывать пустые строки (строки, в которых все значения равны 0 или пустые). |
public bool HideTotalForSingleValue | Скрывать итог если узел содержит всего одно значение. |
public int RowCount | Возвращает количество строк в сводной таблице. |
public Types.Language ScriptLanguage | Язык скрипта. Представляет собой перечисление со значениями: CSharp = 0, Vb = 1 |
public string ScriptText | Текст скрипта. |
public PermissionSet ScriptRestrictions | Настройка ограничений скрипта. |
public SliceFields SliceFields | Контейнер, который содержит все поля среза. |
public AxisContainer XAxisContainer | Контейнер для полей, размещающихся по оси X. Для измерений. |
public AxisContainer YAxisContainer | Контейнер для полей, размещающихся по оси Y. Для измерений. |
public FiltersContainer FiltersContainer | Контейнер для полей располагаемых в зоне фильтров. |
public MeasuresContainer MeasuresContainer | Контейнер, который содержит показатели. |
Основные методы
Метод | Описание |
---|---|
public void BeginUpdate() | Включить режим обновления (пакетного изменения схемы). |
public void EndUpdate() | Завершить обновление (пакетного изменения схемы). |
public void Clear() | Отчистить срез. Сброс всех настроек. |
public void Save(Stream stream, SliceSaveExtras extras = SliceSaveExtras.None) | Записывает схему среза в поток. Параметр SliceSaveExtras указывает дополнительные настройки сохранения (None, Filters, Groups, Charts). |
public void Save(XmlDocument doc, SliceSaveExtras extras = SliceSaveExtras.None) | Записывает схему среза в XML документ. Параметр SliceSaveExtras указывает дополнительные настройки сохранения (None, Filters, Groups, Charts). |
public void Save(string fileName, SliceSaveExtras extras = SliceSaveExtras.None) | Записывает схему среза в указанный файл. Параметр SliceSaveExtras указывает дополнительные настройки сохранения (None, Filters, Groups, Charts). |
public bool Load(string fileName) | Загрузить схему среза из файла с заданным именем. Схема среза, настройки групп, фильтры и диаграммы сбрасываются перед загрузкой. При успехе возвращает true. |
public bool Load(XmlDocument doc) | Загрузить схему среза из XML документа. Схема среза, настройки групп, фильтры и диаграммы сбрасываются перед загрузкой. При успехе возвращает true. |
public bool Load(Stream stream) | Загрузить схему среза из потока. Схема среза, настройки групп, фильтры и диаграммы сбрасываются перед загрузкой. При успехе возвращает true. |
public void SetColsWidth(int value) | Установить ширину всех колонок. Значение в пикселях. |
public void SetColWidth(int columnIndex, int value) | Установить ширину заданной колонки. Значение в пикселях. |
public void SetRowHeight(int rowIndex, int value) | Установить высоту заданной строки. Значение в пикселях. |
public void SetRowsHeight(int value) | Установить высоту всех строк. Значение в пикселях. |
public void Transpose() | Транспонировать срез (поменять оси). |
Настройка среза
FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice();
slice1.Cube = cube;
Настройка структуры среза
Настройка структуры среза заключается в добавлении полей и показателей в нужные контейнеры.
Для добавления и удаления полей в контейнеры оси (XAxisContainer, YAxisContainer), служат следующие методы:
Метод | Описание |
---|---|
public int AddSliceField(SliceField sliceField) | Добавить поле в срез. Возвращает индекс добавленного элемента. |
public int InsertSliceFieldToPosition(SliceField sliceField, int index) | Вставить поле среза в указанную позицию. Возвращает индекс добавленного элемента. |
public void RemoveAxisField(AxisField axisField) | Удалить поле из контейнера оси. |
public int AddMeasuresField() | Добавляет в ось поле “Показатели”. |
public void DeleteMeasuresField() | Убирает из оси поле “Показатели”. |
Для добавления и удаления показателей в контейнер показателей (MeasuresContainer) служат следующие методы:
Метод | Описание |
---|---|
public int AddMeasure(MeasureField measureField) | Добавить показатель в контейнер. Возвращает индекс добавленного элемента. |
public void DeleteMeasure(MeasureField measureField) | Удалить показатель из контейнера. При этом поле переносится в область фильтров. |
public void DeleteMeasures() | Удалить все показатели из контейнера. |
public void DeleteMeasure(int measureIndex) | Удалить показатель из контейнера по индексу. |
public void InsertMeasure(MeasureField measureField, int index) | Вставить показатель в указанную позицию. |
Пример:
//Начать изменение структуры среза
slice1.BeginUpdate();
//Добавить поле в контейнер оси X
slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByIndex(0));
//Вставить поле SliceField1 в контейнер оси Y в 5 позицию
slice1.YAxisContainer.InsertSliceFieldToPosition(slice1.SliceFields.GetFieldByName("SliceField1"), 5);
//Добавить поле "Показатели" в контейнер оси X
slice1.XAxisContainer.AddMeasuresField();
//Добавить поле в контейнер "Показатели"
slice1.MeasuresContainer.AddMeasure(new MeasureField(slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByIndex(1), null, null, "Measure1", "Measure1", false));
//Закончить обновление структуры среза
slice1.EndUpdate();
Показатели можно перемещать в списке для определения порядка их отображения с помощью метода public bool MoveMeasure(int fromIndex, int toIndex)
. Параметры: индекс элемента который нужно переместить, индекс куда переместить. При успехе возвращает true
.
Методы SetAllVisible()
и SetNoneVisible()
позволяют скрыть все показатели или отобразить все показатели.
Для того, чтобы скрыть или отобразить конкретный показатель, используйте конструкцию:
slice1.MeasuresContainer.GetMeasureFieldByIndex(1).Visible = true;