OLAP/Pivot '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' .. seealso:: :ref:`olap_frames` TbtkOLAPDimension ...................................................................... .. pas:class:: TbtkOLAPDimension Размерность OLAP-структуры .. pas:attribute:: Order: Integer Номера, по возрастанию которых определяет порядок следования размерностей в своей области (Area) (Read-Write) :rtype: Integer .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').Order := 4; .. pas:attribute:: Name: String Имя размерности (Read-Only) :rtype: String .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.DimensionCount - 1 do str := str + Selection.OLAP.Dimensions[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: ActiveHierarchy: TbtkOLAPHierarchy Активная иерархия размерности (Read-Only) :rtype: TbtkOLAPHierarchy .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').ActiveHierarchy.AddLevel('TestLevel'); .. pas:attribute:: AreaType: TbtkOLAPAreaType Область которой принадлежат все поля размерности (Read-Write) :rtype: TbtkOLAPAreaType .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AreaType := atColumn; .. pas:attribute:: HierarchyCount: Integer Количество иерархий :rtype: Integer .. code-block:: delphi :caption: Пример использования str := ''; dimension := Selection.OLAP.DimensionByName('TestDimension'); for i := 0 to dimension.HierarchyCount - 1 do str := str + dimension.Hierarchies[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: Hierarchies: TbtkOLAPHierarchy Возвращает иерархию по индексу :rtype: TbtkOLAPHierarchy .. code-block:: delphi :caption: Пример использования str := ''; dimension := Selection.OLAP.DimensionByName('TestDimension'); for i := 0 to dimension.HierarchyCount - 1 do str := str + dimension.Hierarchies[i].Name + #13#10; ShowMessage(str); .. pas:method:: Free() Удаляет размерность из OLAP-структуры .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').Free; .. pas:method:: DeleteHierarchy(HierarchyName: String; HierarchyIndex: Integer) Удаляет иерархию по имени или индексу :param String HierarchyName: Имя иерархии. :param Integer HierarchyIndex: Индекс иерархии. .. code-block:: delphi :caption: Пример использования Selection.OLAP.Dimensions[0].DeleteHierarchy(1); Selection.OLAP.Dimensions[0].DeleteHierarchy('TestHierarchy'); .. pas:method:: HierarchyByName(HierarchyName: String): TbtkOLAPHierarchy Находит иерархию с указанным именем :param String HierarchyName: Имя иерархии. :rtype: TbtkOLAPHierarchy .. code-block:: delphi :caption: Пример использования hierarchy := Selection.OLAP.Dimensions[0].HierarchyByName('TestHierarchy'); .. pas:method:: AddHierarchy(HierarchyName: String): TbtkOLAPHierarchy Добавляет иерархию с заданным именем. :param String HierarchyName: Добавляет иерархию с заданным именем. :rtype: TbtkOLAPHierarchy .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy'); TbtkScriptOLAPObject ...................................................................... .. pas:class:: TbtkScriptOLAPObject Объект реализует в себе две сущности: 1) Обёртка для интерфейса Фрэйма Олап-куба, предоставляет доступ к олап функционалу. 2) OLAP-структура, предоставляющая обобщенный интерфейс управления контролами OLAP-представления данных (например, PivotGrid). .. pas:attribute:: Measures: TbtkOLAPMeasureItem Поле данных по заданному индексу :rtype: TbtkOLAPMeasureItem .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.MeasureCount - 1 do str := str + Selection.OLAP.Measures[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: MeasureCount: Integer Количество полей данных :rtype: Integer .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.MeasureCount - 1 do str := str + Selection.OLAP.Measures[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: Dimensions: TbtkOLAPDimension Размерность по заданному индексу :rtype: TbtkOLAPDimension .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.DimensionCount - 1 do str := str + Selection.OLAP.Dimensions[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: DimensionCount: Integer Количество размерностей OLAP-структуры :rtype: Integer .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.DimensionCount - 1 do str := str + Selection.OLAP.Dimensions[i].Name + #13#10; ShowMessage(str); .. pas:method:: DeleteMeasure(MeasureName: String; MeasureIndex: Integer) Удаляет поле данных по указанному имени или порядковому номеру :param String MeasureName: Имя поля данных. :param Integer MeasureIndex: Индекс поля данных. .. code-block:: delphi :caption: Пример использования Selection.OLAP.DeleteMeasure('NewMeasure'); Selection.OLAP.DeleteMeasure(0); .. pas:method:: MeasureByName(MeasureName: String): TbtkOLAPMeasureItem Ищет поле данных с указанным именем :param String MeasureName: Имя поля данных. :rtype: TbtkOLAPMeasureItem .. code-block:: delphi :caption: Пример использования measure := Selection.OLAP.MeasureByName('NewMeasure'); .. pas:method:: AddMeasure(MeasureName: String; MeasureAggregator: TbtkOLAPSummaryType): TbtkOLAPMeasureItem Добавляет в OLAP-структуру поле данных с возможностью одновременного задания способа вычисления итогов (Aggregator). :param String MeasureName: Имя поля данных. :param TbtkOLAPSummaryType MeasureAggregator: Способы вычисления итогов. :rtype: TbtkOLAPMeasureItem .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddMeasure('NewMeasure'); Selection.OLAP.AddMeasure('NewMeasure', ostCount); .. pas:method:: DeleteDimension(DimensionName: String; DimensionIndex: Integer) Удаляет размерность с указанным именем или порядковым номером. :param String DimensionName: Имя размерности. :param Integer DimensionIndex: Индекс размерности. .. code-block:: delphi :caption: Пример использования Selection.OLAP.DeleteDimension('TestDimension'); Selection.OLAP.DeleteDimension(0); .. pas:method:: DimensionByName(DimensionName: String): TbtkOLAPDimension Ищет размерность с заданным именем. :param String DimensionName: Имя размерности :rtype: TbtkOLAPDimension .. code-block:: delphi :caption: Пример использования dim := Selection.OLAP.DimensionByName('TestDimension'); .. seealso:: :pas:meth:`GetDimensionValueList` .. pas:method:: AddDimension(DimensionName: String): TbtkOLAPDimension Добавляет размерность с указанным именем в OLAP-структуру :param String DimensionName: Уникальное непустое имя создаваемой размерности :rtype: TbtkOLAPDimension .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension'); .. pas:method:: ClearOLAPStructure() Очищает все настройки OLAP-структуры .. code-block:: delphi :caption: Пример использования Selection.OLAP.ClearOLAPStructure; .. pas:method:: DoUpdate() Применяет настройки OLAP-структуры к физическому OLAP-контролу. .. code-block:: delphi :caption: Пример использования Selection.OLAP.DoUpdate; .. pas:method:: SupportedGeneralizeOLAPStructure(): Boolean Возвращает, поддерживает ли OLAP-контрол возможность управления OLAP-структурой. :rtype: Boolean .. code-block:: delphi :caption: Пример использования if Selection.OLAP.SupportedGeneralizeOLAPStructure then begin ... end; .. pas:method:: GetDimensionValueList(): TStringList Возвращает список с именами и заголовками размерностей. :rtype: TStringList .. code-block:: delphi :caption: Пример использования 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); .. seealso:: :pas:meth:`DimensionByName` .. warning:: |not_implemented| .. pas:method:: ShowDimensionMapEditor() Отображает редактор карты измерений .. warning:: |not_implemented| .. pas:method:: SaveFrameSettings(ID: Variant): Boolean Сохраняет настройки по указанному идентификатору. :param Variant ID: Идентификатор настройки :rtype: Boolean :returns: True Возвращается в случае успешного сохранения. False Возвращается если сохранить не удалось, в том числе если в качестве ID передан Null. .. warning:: |not_implemented| .. pas:method:: LoadFrameSettings(ID: Variant): Boolean Загружает настройки по указанному идентификатору. :param Variant ID: Идентификатор настройки :rtype: Boolean :returns: True Возвращается в случае успешной загрузки. False Возвращается если загрузить не удалось, в том числе если в качестве ID передан Null. .. warning:: |not_implemented| .. pas:method:: OpenAllDimensions() Разворачивает все измерения. .. pas:method:: OpenDimension(AtrName: String) Разворачивает измерение соответствующее указанному имени атрибута. Все измерения с более низким уровнем вложенности также разворачиваются. :param String AtrName: Имя атрибута .. pas:method:: OpenRowDimension(Level: Integer) Разворачивает измерение в области строк с указанным уровнем вложенности. Все измерения с более низким уровнем вложенности также разворачиваются. :param Integer Level: Уровень вложенности разворачиваемого измерения. .. pas:method:: OpenColumnDimension(Level: Integer) Разворачивает измерение в области колонок с указанным уровнем вложенности. Все измерения с более низким уровнем вложенности также разворачиваются. :param Integer Level: Уровень вложенности разворачиваемого измерения. TbtkOLAPMeasureItem ...................................................................... .. pas:class:: TbtkOLAPMeasureItem Поле данных OLAP-структуры .. pas:attribute:: Caption: String Заголовок, визуально отображаемый в OLAP-контроле. Если пустой, используется значение по умолчанию (соответствующее заголовку атрибута выборки) :rtype: String .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.MeasureCount - 1 do str := str + Selection.OLAP.Measures[i].Caption + #13#10; ShowMessage(str); .. pas:attribute:: Order: Integer Номера, по возрастанию которых определяет порядок следования полей данных :rtype: Integer .. code-block:: delphi :caption: Пример использования measure.Order := 1; .. pas:attribute:: Name: String Уникальное среди полей данных непустое имя :rtype: String .. code-block:: delphi :caption: Пример использования str := ''; for i := 0 to Selection.OLAP.MeasureCount - 1 do str := str + Selection.OLAP.Measures[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: SummaryType: TbtkOLAPSummaryType Способ вычисления итогов. :rtype: TbtkOLAPSummaryType .. code-block:: delphi :caption: Пример использования measure.SummaryType := ostAverage; .. pas:method:: Free() Удаляет поле данных из OLAP-структуры TbtkOLAPHierarchy ...................................................................... .. pas:class:: TbtkOLAPHierarchy Иерархия OLAP-структуры .. pas:attribute:: Name: String Уникальное в пределах размерности имя :rtype: String .. code-block:: delphi :caption: Пример использования str := ''; dimension := Selection.OLAP.DimensionByName('TestDimension'); for i := 0 to dimension.HierarchyCount - 1 do str := str + dimension.Hierarchies[i].Name + #13#10; ShowMessage(str); .. pas:attribute:: Order: Integer Номера, по возрастанию которых определяет порядок следования иерархий в своей размерности. Фактически не нужен - вся работа идет только с активной иерархией :rtype: Integer .. pas:attribute:: Levels: TbtkOLAPLevel Уровень по идексу :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: LevelCount: Integer Количество уровней иерархии :rtype: Integer .. code-block:: delphi :caption: Пример использования 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); .. pas:method:: Activate() Делает иерархию активной в своей размерности .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').Activate; .. pas:method:: Free() Удаляет иерархию из размерности .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').Free; .. pas:method:: DeleteLevel(LevelName: String; LevelIndex: Integer) Удаляет уровень по имени или порядковому номеру :param String LevelName: Имя уровня. :param Integer LevelIndex: Индекс уровня. .. code-block:: delphi :caption: Пример использования hierarchy.DeleteLevel('TestLevel'); hierarchy.DeleteLevel(1); .. pas:method:: LevelByName(LevelName: String): TbtkOLAPLevel Возвращает уровень по имени :param String LevelName: Имя уровня. :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования level := hierarchy.LevelByName('TestLevel'); .. pas:method:: AddLevels(InputArgs: Array) Добавляет произвольное количество дочерних уровней с возможностью одновременного указания их дочерних полей (Members) :param Array InputArgs: Массив аргументов. Включает в себя имена добавляемых уровней и массивы их дочерних полей. .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevels(['Level1', ['Member1', 'Member2'], 'Level2', 'Level3', ['Member3', 'Member4']]); .. pas:method:: AddLevel(LevelName, KeyMemberName: String): TbtkOLAPLevel Добавляет уровень OLAP-структуры с заданным именем и именем ключевого поля. :param String LevelName: Уникальное в пределах иерархии непустое имя :param String KeyMemberName: Имя ключевого поля. :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel'); TbtkOLAPLevel ...................................................................... .. pas:class:: TbtkOLAPLevel Уровень OLAP-структуры. В реализации Pivot-грида верхний уровень (неподсредственно под иерархией) в области строк визуально представляет собой отдельную строку - последующие уровни идут на своих строках. .. pas:attribute:: KeyMember: TbtkOLAPMember Ключевое поле :rtype: TbtkOLAPMember .. code-block:: delphi :caption: Пример использования level := Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').AddLevel('TestLevel'); member := level.AddMember('TestMember'); level.KeyMember := member; .. pas:attribute:: Name: String Уникальное в пределах иерархии имя уровня :rtype: String .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: MemberCount: Integer Количество полей уровня :rtype: Integer .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: Members: TbtkOLAPMember Поле по индексу :rtype: TbtkOLAPMember .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: Order: Integer Номера, по возрастанию которых определяет порядок следования уровней в своей иерархии или подуровне. :rtype: Integer .. code-block:: delphi :caption: Пример использования Selection.OLAP.DimensionByName('TestDimension').HierarchyByName('TestHierarchy').LevelByName('TestLevel').Order := 1; .. pas:attribute:: LevelCount: Integer Количество подуровней :rtype: Integer .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: Levels: TbtkOLAPLevel Уровень по идексу :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования 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); .. pas:method:: Free() Удаляет уровень из иерархии или родительского уровня .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel').Free; .. pas:method:: DeleteMember(MemberName: String; MemberIndex: Integer) Удаляет поле по имени или индексу :param String MemberName: Имя поля. :param Integer MemberIndex: Индекс поля. .. code-block:: delphi :caption: Пример использования level.DeleteMember('TestMember'); level.DeleteMember(1); .. pas:method:: MemberByName(MemberName: String): TbtkOLAPMember Ищет поле по имени :param String MemberName: Имя поля. :rtype: TbtkOLAPMember .. code-block:: delphi :caption: Пример использования member := level.MemberByName('TestMember'); .. pas:method:: AddMembers(MemberNames: Array) Добавляет поля с указанными именами :param Array MemberNames: Имена полей. .. code-block:: delphi :caption: Пример использования level.AddMembers(['TestMember1', 'TestMember2', ...]); .. pas:method:: AddMember(MemberName: String): TbtkOLAPMember Добавляет поле в уровень :param String MemberName: Имя поля. :rtype: TbtkOLAPMember .. code-block:: delphi :caption: Пример использования level.AddMember('TestMember'); .. pas:method:: DeleteLevel(LevelName: String; LevelIndex: Integer) Удаляет уровень по имени или порядковому номеру :param String LevelName: Имя уровня. :param Integer LevelIndex: Индекс уровня. .. code-block:: delphi :caption: Пример использования level.DeleteLevel('TestLevel'); level.DeleteLevel(1); .. pas:method:: LevelByName(LevelName: String): TbtkOLAPLevel Возвращает уровень по имени :param String LevelName: Имя уровня. :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования level := level.LevelByName('TestLevel'); .. pas:method:: AddLevels(InputArgs: Array) Добавляет произвольное количество дочерних уровней с возможностью одновременного указания их дочерних полей (Members) :param Array InputArgs: Массив аргументов. Включает в себя имена добавляемых уровней и массивы их дочерних полей. .. code-block:: delphi :caption: Пример использования level := Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('LevelName'); level.AddLevels(['Level1', ['Member1', 'Member2'], 'Level2', 'Level3', ['Member3', 'Member4']]); .. pas:method:: AddLevel(LevelName, KeyMemberName: String): TbtkOLAPLevel Добавляет уровень OLAP-структуры с заданным именем и именем ключевого поля. :param String LevelName: Имя уровня. :param String KeyMemberName: Имя ключевого поля. :rtype: TbtkOLAPLevel .. code-block:: delphi :caption: Пример использования Selection.OLAP.AddDimension('TestDimension').AddHierarchy('TestHierarchy').AddLevel('TestLevel').AddLevel('TestLevel2'); TbtkOLAPMember ...................................................................... .. pas:class:: TbtkOLAPMember Поле OLAP-структуры .. pas:attribute:: Order: Integer Номера, по возрастанию которых определяет порядок следования полей в своем уровне :rtype: Integer .. code-block:: delphi :caption: Пример использования member.Order := 5; .. pas:attribute:: Caption: String Заголовок, визуально отображаемый в OLAP-контроле. Если пустой, используется значение по умолчанию (соответствующее заголовку атрибута выборки) :rtype: String .. code-block:: delphi :caption: Пример использования 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); .. pas:attribute:: Name: String Уникальное в размерности непустое имя :rtype: String .. code-block:: delphi :caption: Пример использования 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); TbtkOLAPSummaryType ..................... .. pas:class:: TbtkOLAPSummaryType Перечисление. Способы вычисления итогов полей данных OLAP-структуры. .. pas:attribute:: ostCount Количество значений. .. pas:attribute:: ostSum Сумма числовых значений. .. pas:attribute:: ostMin Наименьшее значение. .. pas:attribute:: ostMax Наибольшее значение. .. pas:attribute:: ostAverage Среднее арифметическое для числовых значений. .. pas:attribute:: ostStdDev Выборочное среднеквадратическое отклонение для числовых значений. .. pas:attribute:: ostStdDevP Генеральное среднеквадратическое отклонение для числовых значений. .. pas:attribute:: ostVariance Выборочная дисперсия для числовых значений. .. pas:attribute:: ostVarianceP Генеральная дисперсия для числовых значений. .. pas:attribute:: ostCustom Пользовательский расчёт. TbtkOLAPAreaType .................. .. pas:class:: TbtkOLAPAreaType Перечисление. Области отображения полей OLAP-структуры. .. pas:attribute:: atRow Область строк. .. pas:attribute:: atColumn Область колонок. .. pas:attribute:: atFilter Область фильтрации. .. pas:attribute:: atInvisible Не отображаются. TbtkScriptPivotGridObject ...................................................................... .. pas:class:: TbtkScriptPivotGridObject Класс предоставляет доступ к компоненту PivotGrid. .. pas:method:: ResetAllSettings() Сбрасывает все настройки конфигурации Pivot-грида. Все поля перемещаются в область фильтрации. .. code-block:: delphi :caption: Пример использования stream := Selection.PivotGrid.ResetAllSettings; .. warning:: |not_implemented|