Delphi 3 и создание приложений баз данных

       

Использование компонента TDecisionCube


Вернемся к примеру. Разместим в форме компонент TDecisionCube с именем DecisionCube1. Занесем в свойство DataSet имя набора данных DecisionQuery1. Определим свойства куба. Для этого отыщем в инспекторе объектов свойство DimensionMap и в поле данных этого свойства нажмем кнопку (...). Появится окно редактора многомерного куба {Decision Cube Editor). Оно показано на рис. 15.7.

В списке Available Fields перечислены поля, по которым строятся измерения куба, и формулы для расчета агрегированных значений. Для текущего поля или формулы слева показываются параметры:

Display Name -

метка, которая будет показываться для измерения в компонентах TDecisionGrid, TDecisionPivot, TDecisionGraph;

• Type - тип (Dimension, Sum, Average, Count);

• Active Type - определяет показываемую информацию - As Needed (показывается, когда необходимо); Active (показывается всегда); Inactive (не показывается никогда);

•Formal - формат представления значений;

•Grouping - группировка по году, кварталу, месяцу и отдельному значению;

•Initial Value - начальное значение.

Закладка Memory Control позволяет определить установки памяти:

•максимальное число измерений, сумм, ячеек (группа Cube Maximums);

•показывать только заголовки данных во время разработки приложения для экономии времени и ресурсов компьютера (группа Designer Data Options).

Определим названия измерений и агрегированных данных (поле Display Name).

Кратко рассмотрим свойства, методы и события компонента TDecisionCube.:



Свойства

property Capacity: Integer;

определяет максимальный размер кэша в байтах для хранения многомерного массива данных куба. В случае нехватки памяти возбуждается исключение ELowCapacity Error.

property DataSet: TDataSet;

содержит имя НД, который указывает данные для представления в кубе. Рекомендуется в качестве НД использовать созданный специально для указанных целей компонент TDecisionQuery.

property DimensionCount: Integer;

содержит текущее число измерений в кубе.

property DimensionMap: TCubeDims;

определяет параметры компонента TDecisionCube, такие как число и состав измерений куба; формат представления значений по конкретному измерению; метки, которые будут соответствовать каждому измерению в компонентах TDecisionGrid и TDecisionPivot; максимальное число измерений; состав показываемых значений. Установка указанных параметров осуществляется в редакторе куба (Decision Cube Editor), который активизируется при двойном щелчке мышью на компоненте TDecisionCube в форме приложения или при нажатии кнопки в поле данных свойства DimensionMap в инспекторе объектов.

property DimensionMapCount: Integer;

содержит число полей НД, которые участвуют в формировании многомерного куба.

property MaxDimensions: Integer;

содержит максимальное число измерений куба.

property MaxSummaries: Integer;

содержит максимальное число сумм для куба.

property ShowProgressDialog: Boolean;

определяет, нужно (True) или не нужно (False) показывать прогресс-индикатор во время формирования куба.

property SummaryCount: Integer;

возвращает число полей, использованных для формирования сумм.

Метод procedure ShowCubeDialog; во время выполнения осуществляет вызов редактора куба, в котором могут быть изменены или переопределены свойства куба, установленные во время разработки. Более подробно см. свойство DimensionMap.

События

property OnLowCapacity: TCapacityErrorEvent;

TCapacityErrorEvent = procedure (var Action: TErrorAction) of object;

TErrorAction = ( eaFail, eaContinue ) ;

наступает в случае, когда не хватает памяти в кэше для хранения многомерных данных. Максимальный размер кэша устанавливается в свойстве Capacity.

property OnRefresh: TCubeRefreshEvent;

TCubeRefreshEvent = procedure(DataCube: TCustomDataStore; DimMap:

TCubeDims) of object;

наступает перед изменением плана куба. Это происходит после изменения параметров куба во время выполнения (см. метод ShowCubeDialog).



Содержание раздела