1.8.7. OLAP/Pivot

1.8.7.1. TbtkOLAPDimension

class TbtkOLAPDimension

Размерность OLAP-структуры

Order: Integer

Номера, по возрастанию которых определяет порядок следования размерностей в своей области (Area) (Read-Write)

Return type:Integer
Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').Order := 4;
</pascal>
Name: String

Имя размерности (Read-Only)

Return type:String
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.DimensionCount - 1 do
    str := str + Selection.OLAP.Dimensions[i].Name + #13#10;

  ShowMessage(str);
</pascal>
ActiveHierarchy: TbtkOLAPHierarchy

Активная иерархия размерности (Read-Only)

Return type:TbtkOLAPHierarchy
Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').ActiveHierarchy.AddLevel('TestLevel');
</pascal>
AreaType: TbtkOLAPAreaType

Область которой принадлежат все поля размерности (Read-Write)

Return type:TbtkOLAPAreaType
Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').Area := atColumn;
</pascal>
HierarchyCount: Integer

Количество иерархий

Return type:Integer
Пример использования
<pascal>
  str := '';
  dimension := Selection.OLAP.DimensionByName('TestDimension');

  for i := 0 to dimension.HierarchyCount - 1 do
    str := str + dimension.Hierarchies[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Hierarchies: TbtkOLAPHierarchy

Возвращает иерархию по индексу

Return type:TbtkOLAPHierarchy
Пример использования
<pascal>
  str := '';
  dimension := Selection.OLAP.DimensionByName('TestDimension');

  for i := 0 to dimension.HierarchyCount - 1 do
    str := str + dimension.Hierarchies[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Free()

Удаляет размерность из OLAP-структуры

Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').Free;
</pascal>
DeleteHierarchy(HierarchyName: String; HierarchyIndex: Integer)

Удаляет иерархию по имени или индексу

Parameters:
  • HierarchyName (String) – Имя иерархии.
  • HierarchyIndex (Integer) – Индекс иерархии.
Пример использования
<pascal>
  Selection.OLAP.Dimensions[0].DeleteHierarchy(1);
  Selection.OLAP.Dimensions[0].DeleteHierarchy('TestHierarchy');
</pascal>
HierarchyByName(HierarchyName: String): TbtkOLAPHierarchy

Находит иерархию с указанным именем

Parameters:HierarchyName (String) – Имя иерархии.
Return type:TbtkOLAPHierarchy
Пример использования
<pascal>
  hierarchy := Selection.OLAP.Dimensions[0].HierarchyByName('TestHierarchy');
</pascal>
AddHierarchy(HierarchyName: String): TbtkOLAPHierarchy

Добавляет иерархию с заданным именем.

Parameters:HierarchyName (String) – Добавляет иерархию с заданным именем.
Return type:TbtkOLAPHierarchy
Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy');
</pascal>

1.8.7.2. TbtkScriptOLAPObject

class TbtkScriptOLAPObject

Объект реализует в себе две сущности:

  1. Обёртка для интерфейса Фрэйма Олап-куба, предоставляет доступ к олап функционалу.
  2. OLAP-структура, предоставляющая обобщенный интерфейс управления контролами OLAP-представления данных (например, PivotGrid).
Measures: TbtkOLAPMeasureItem

Поле данных по заданному индексу

Return type:TbtkOLAPMeasureItem
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.MeasureCount - 1 do
    str := str + Selection.OLAP.Measures[i].Name + #13#10;

  ShowMessage(str);
</pascal>
MeasureCount: Integer

Количество полей данных

Return type:Integer
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.MeasureCount - 1 do
    str := str + Selection.OLAP.Measures[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Dimensions: TbtkOLAPDimension

Размерность по заданному индексу

Return type:TbtkOLAPDimension
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.DimensionCount - 1 do
    str := str + Selection.OLAP.Dimensions[i].Name + #13#10;

  ShowMessage(str);
</pascal>
DimensionCount: Integer

Количество размерностей OLAP-структуры

Return type:Integer
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.DimensionCount - 1 do
    str := str + Selection.OLAP.Dimensions[i].Name + #13#10;

  ShowMessage(str);
</pascal>
DeleteMeasure(MeasureName: String; MeasureIndex: Integer)

Удаляет поле данных по указанному имени или порядковому номеру

Parameters:
  • MeasureName (String) – Имя поля данных.
  • MeasureIndex (Integer) – Индекс поля данных.
Пример использования
<pascal>
  Selection.OLAP.DeleteMeasure('NewMeasure');
  Selection.OLAP.DeleteMeasure(0);
</pascal>
MeasureByName(MeasureName: String): TbtkOLAPMeasureItem

Ищет поле данных с указанным именем

Parameters:MeasureName (String) – Имя поля данных.
Return type:TbtkOLAPMeasureItem
Пример использования
<pascal>
  measure := Selection.OLAP.MeasureByName('NewMeasure');
</pascal>
AddMeasure(MeasureName: String; MeasureAggregator: TbtkOLAPSummaryType): TbtkOLAPMeasureItem

Добавляет в OLAP-структуру поле данных с возможностью одновременного задания способа вычисления итогов (Aggregator).

Parameters:
  • MeasureName (String) – Имя поля данных.
  • MeasureAggregator (TbtkOLAPSummaryType) – Способы вычисления итогов.
Return type:

TbtkOLAPMeasureItem

Пример использования
<pascal>
  Selection.OLAP.AddMeasure('NewMeasure');
  Selection.OLAP.AddMeasure('NewMeasure', ostCount);
</pascal>
DeleteDimension(DimensionName: String; DimensionIndex: Integer)

Удаляет размерность с указанным именем или порядковым номером.

Parameters:
  • DimensionName (String) – Имя размерности.
  • DimensionIndex (Integer) – Индекс размерности.
Пример использования
<pascal>
  Selection.OLAP.DeleteDimension('TestDimension');
  Selection.OLAP.DeleteDimension(0);
 </pascal>
DimensionByName(DimensionName: String): TbtkOLAPDimension

Ищет размерность с заданным именем.

Parameters:DimensionName (String) – Имя размерности
Return type:TbtkOLAPDimension
Пример использования
<pascal>
  dim := Selection.OLAP.DimensionByName('TestDimension');
</pascal>
AddDimension(DimensionName: String): TbtkOLAPDimension

Добавляет размерность с указанным именем в OLAP-структуру

Parameters:DimensionName (String) – Уникальное непустое имя создаваемой размерности
Return type:TbtkOLAPDimension
Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension');
</pascal>
ClearOLAPStructure()

Очищает все настройки OLAP-структуры

Пример использования
<pascal>
  Selection.OLAP.ClearOLAPStructure;
</pascal>
DoUpdate()

Применяет настройки OLAP-структуры к физическому OLAP-контролу.

Пример использования
<pascal>
  Selection.OLAP.DoUpdate;
</pascal>
SupportedGeneralizeOLAPStructure(): Boolean

Возвращает, поддерживает ли OLAP-контрол возможность управления OLAP-структурой.

Return type:Boolean
Пример использования
<pascal>
  if Selection.OLAP.SupportedGenelizeOLAPStructure then
  begin
    ...
  end;
</pascal>
GetDimensionValueList(): TStringList

Возвращает список с именами и заголовками размерностей.

Return type:TStringList
Пример использования
<pascal>
  dimValueList := Selection.OLAP.GetDimensionValueList;
  names := '';
  captions := '';

  for i := 0 to dimValueList.Count - 1 do
  begin
    names := names + dimValueList.Names[i] + #13#10;
    values := values + dimValueList.Values[dimValueList.Names[i]] + #13#10;
  end;

  ShowMessage(str);
</pascal>
ShowDimensionMapEditor()

Отображает редактор карты измерений

SaveFrameSettings(ID: Variant): Boolean

Сохраняет настройки по указанному идентификатору.

Parameters:ID (Variant) – Идентификатор настройки
Return type:Boolean
Returns:
True
Возвращается в случае успешного сохранения.
False
Возвращается если сохранить не удалось, в том числе если в качестве ID передан Null.
LoadFrameSettings(ID: Variant): Boolean

Загружает настройки по указанному идентификатору.

Parameters:ID (Variant) – Идентификатор настройки
Return type:Boolean
Returns:
True
Возвращается в случае успешной загрузки.
False
Возвращается если загрузить не удалось, в том числе если в качестве ID передан Null.
OpenAllDimensions()

Разворачивает все измерения.

OpenDimension(AtrName: String)

Разворачивает измерение соответствующее указанному имени атрибута. Все измерения с более низким уровнем вложенности также разворачиваются.

Parameters:AtrName (String) – Имя атрибута
OpenRowDimension(Level: Integer)

Разворачивает измерение в области строк с указанным уровнем вложенности. Все измерения с более низким уровнем вложенности также разворачиваются.

Parameters:Level (Integer) – Уровень вложенности разворачиваемого измерения.
OpenColumnDimension(Level: Integer)

Разворачивает измерение в области колонок с указанным уровнем вложенности. Все измерения с более низким уровнем вложенности также разворачиваются.

Parameters:Level (Integer) – Уровень вложенности разворачиваемого измерения.

1.8.7.3. TbtkOLAPMeasureItem

class TbtkOLAPMeasureItem

Поле данных OLAP-структуры

Caption: String

Заголовок, визуально отображаемый в OLAP-контроле. Если пустой, используется значение по умолчанию (соответствующее заголовку атрибута выборки)

Return type:String
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.MeasureCount - 1 do
    str := str + Selection.OLAP.Measures[i].Caption + #13#10;

  ShowMessage(str);
</pascal>
Order: Integer

Номера, по возрастанию которых определяет порядок следования полей данных

Return type:Integer
Пример использования
<pascal>
  measure.Order := 1;
</pascal>
Name: String

Уникальное среди полей данных непустое имя

Return type:String
Пример использования
<pascal>
  str := '';

  for i := 0 to Selection.OLAP.MeasureCount - 1 do
    str := str + Selection.OLAP.Measures[i].Name + #13#10;

  ShowMessage(str);
</pascal>
SummaryType: TbtkOLAPSummaryType

Способ вычисления итогов.

Return type:TbtkOLAPSummaryType
Пример использования
<pascal>
  measure.SummeryType := ostAverage;
</pascal>
Free()

Удаляет поле данных из OLAP-структуры

1.8.7.4. TbtkOLAPHierarchy

class TbtkOLAPHierarchy

Иерархия OLAP-структуры

Name: String

Уникальное в пределах размерности имя

Return type:String
Пример использования
<pascal>
  str := '';
  dimension := Selection.OLAP.DimensionByName('TestDimension');

  for i := 0 to dimension.HierarchyCount - 1 do
    str := str + dimension.Hierarchies[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Order: Integer

Номера, по возрастанию которых определяет порядок следования иерархий в своей размерности. Фактически не нужен - вся работа идет только с активной иерархией

Return type:Integer
Levels: TbtkOLAPLevel

Уровень по идексу

Return type:TbtkOLAPLevel
Пример использования
<pascal>
  str := '';
  hierarchy := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy');

  for i := 0 to hierarchy.LevelCount - 1 do
    str := str + hierarchy.Levels[i].Name + #13#10;

  ShowMessage(str);
</pascal>
LevelCount: Integer

Количество уровней иерархии

Return type:Integer
Пример использования
<pascal>
  str := '';
  hierarchy := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy');

  for i := 0 to hierarchy.LevelCount - 1 do
    str := str + hierarchy.Levels[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Activate()

Делает иерархию активной в своей размерности

Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').Activate;
</pascal>
Free()

Удаляет иерархию из размерности

Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').Free;
</pascal>
DeleteLevel(LevelName: String; LevelIndex: Integer)

Удаляет уровень по имени или порядковому номеру

Parameters:
  • LevelName (String) – Имя уровня.
  • LevelIndex (Integer) – Индекс уровня.
Пример использования
<pascal>
  hierarchy.DeleteLevel('TestLevel');
  hierarchy.DeleteLevel(1);
</pascal>
LevelByName(LevelName: String): TbtkOLAPLevel

Возвращает уровень по имени

Parameters:LevelName (String) – Имя уровня.
Return type:TbtkOLAPLevel
Пример использования
<pascal>
  level := hierarchy.LevelByName('TestLevel');
</pascal>
AddLevels(InputArgs: Array)

Добавляет произвольное количество дочерних уровенй с возможностью одновременного указания их дочерних полей (Members)

Parameters:InputArgs (Array) – Массив аргументов. Включает в себя имена добавляемых уровней и массивы их дочерних полей.
Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevels(['Level1',
  ['Member1', 'Member2'], 'Level2', 'Level3', ['Member3', 'Member4']]);
</pascal>
AddLevel(LevelName, KeyMemberName: String): TbtkOLAPLevel

Добавляет уровень OLAP-структуры с заданным именем и именем ключевого поля.

Parameters:
  • LevelName (String) – Уникальное в пределах иерархии непустое имя
  • KeyMemberName (String) – Имя ключевого поля.
Return type:

TbtkOLAPLevel

Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel');
</pascal>

1.8.7.5. TbtkOLAPLevel

class TbtkOLAPLevel

Уровень OLAP-структуры. В реализации Pivot-грида верхний уровень (неподсредственно под иерархией) в области строк визуально представляет собой отдельную строку - последующие уровни идут на своих строках.

KeyMember: TbtkOLAPMember

Ключевое поле

Return type:TbtkOLAPMember
Пример использования
<pascal>
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').AddLevel('TestLevel');
  member := level.AddMember('TestMember');
  level.KeyMember := member;
</pascal>
Name: String

Уникальное в пределах иерархии имя уровня

Return type:String
Пример использования
<pascal>
  str := '';
  hierarchy := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy');

  for i := 0 to hierarchy.LevelCount - 1 do
    str := str + hierarchy.Levels[i].Name + #13#10;

  ShowMessage(str);
</pascal>
MemberCount: Integer

Количество полей уровня

Return type:Integer
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.MemberCount - 1 do
    str := str + level.Members[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Members: TbtkOLAPMember

Поле по индексу

Return type:TbtkOLAPMember
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.MemberCount - 1 do
    str := str + level.Members[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Order: Integer

Номера, по возрастанию которых определяет порядок следования уровней в своей иерархии или подуровне.

Return type:Integer
Пример использования
<pascal>
  Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel').Order := 1;
</pascal>
LevelCount: Integer

Количество подуровней

Return type:Integer
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.LevelCount - 1 do
    str := str + level.Levels[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Levels: TbtkOLAPLevel

Уровень по идексу

Return type:TbtkOLAPLevel
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.LevelCount - 1 do
    str := str + level.Levels[i].Name + #13#10;

  ShowMessage(str);
</pascal>
Free()

Удаляет уровень из иерархии или родительского уровня

Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel').Free;
</pascal>
DeleteMember(MemberName: String; MemberIndex: Integer)

Удаляет поле по имени или индексу

Parameters:
  • MemberName (String) – Имя поля.
  • MemberIndex (Integer) – Индекс поля.
Пример использования
<pascal>
  level.DeleteMember('TestMember');
  level.DeleteMember(1);
</pascal>
MemberByName(MemberName: String): TbtkOLAPMember

Ищет поле по имени

Parameters:MemberName (String) – Имя поля.
Return type:TbtkOLAPMember
Пример использования
<pascal>
  member := level.MemberByName('TestMember');
</pascal>
AddMembers(MemberNames: Array)

Добавляет поля с указанными именами

Parameters:MemberNames (Array) – Имена полей.
Пример использования
<pascal>
  level.AddMembers(['TestMember1', 'TestMember2', ...]);
</pascal>
AddMember(MemberName: String): TbtkOLAPMember

Добавляет поле в уровень

Parameters:MemberName (String) – Имя поля.
Return type:TbtkOLAPMember
Пример использования
<pascal>
  level.AddMember('TestMember');
</pascal>
DeleteLevel(LevelName: String; LevelIndex: Integer)

Удаляет уровень по имени или порядковому номеру

Parameters:
  • LevelName (String) – Имя уровня.
  • LevelIndex (Integer) – Индекс уровня.
Пример использования
<pascal>
  level.DeleteLevel('TestLevel');
  level.DeleteLevel(1);
</pascal>
LevelByName(LevelName: String): TbtkOLAPLevel

Возвращает уровень по имени

Parameters:LevelName (String) – Имя уровня.
Return type:TbtkOLAPLevel
Пример использования
<pascal>
  level := level.LevelByName('TestLevel');
</pascal>
AddLevels(InputArgs: Array)

Добавляет произвольное количество дочерних уровенй с возможностью одновременного указания их дочерних полей (Members)

Parameters:InputArgs (Array) – Массив аргументов. Включает в себя имена добавляемых уровней и массивы их дочерних полей.
Пример использования
<pascal>
  level := Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('LevelName');
  level.AddLevels(['Level1', ['Member1', 'Member2'], 'Level2', 'Level3', ['Member3', 'Member4']]);
</pascal>
AddLevel(LevelName, KeyMemberName: String): TbtkOLAPLevel

Добавляет уровень OLAP-структуры с заданным именем и именем ключевого поля.

Parameters:
  • LevelName (String) – Имя уровня.
  • KeyMemberName (String) – Имя ключевого поля.
Return type:

TbtkOLAPLevel

Пример использования
<pascal>
  Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel').AddLevel('TestLevel2');
</pascal>

1.8.7.6. TbtkOLAPMember

class TbtkOLAPMember

Поле OLAP-структуры

Order: Integer

Номера, по возрастанию которых определяет порядок следования полей в своем уровне

Return type:Integer
Пример использования
<pascal>
  member.Order := 5;
</pascal>
Caption: String

Заголовок, визуально отображаемый в OLAP-контроле. Если пустой, используется значение по умолчанию (соответствующее заголовку атрибута выборки)

Return type:String
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.MemberCount - 1 do
    str := str + level.Members[i].Caption + #13#10;

  ShowMessage(str);
</pascal>
Name: String

Уникальное в размерности непустое имя

Return type:String
Пример использования
<pascal>
  str := '';
  level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel');

  for i := 0 to level.MemberCount - 1 do
    str := str + level.Members[i].Name + #13#10;

  ShowMessage(str);
</pascal>

1.8.7.7. TbtkOLAPSummaryType

class TbtkOLAPSummaryType

Перечисление. Способы вычисления итогов полей данных OLAP-структуры.

ostCount

Количество значений.

ostSum

Сумма числовых значений.

ostMin

Наименьшее значение.

ostMax

Наибольшее значение.

ostAverage

Среднее арифметическое для числовых значений.

ostStdDev

Выборочное среднеквадратическое отклонение для числовых значений.

ostStdDevP

Генеральное среднеквадратическое отклонение для числовых значений.

ostVariance

Выборочная дисперсия для числовых значений.

ostVarianceP

Генеральная дисперсия для числовых значений.

ostCustom

Пользовательский расчёт.

1.8.7.8. TbtkOLAPAreaType

class TbtkOLAPAreaType

Перечисление. Области отображения полей OLAP-структуры.

atRow

Область строк.

atColumn

Область колонок.

atFilter

Область фильтрации.

atInvisible

Не отображаются.

1.8.7.9. TbtkScriptPivotGridObject

class TbtkScriptPivotGridObject

Класс предоставляет доступ к компоненту PivotGrid.

ResetAllSettings()

Сбрасывает все настройки конфигурации Pivot-грида. Все поля перемещаются в область фильтрации.

Пример использования
<PASCAL>
  stream := Selection.PivotGrid.ResetAllSettings;
</PASCAL>