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


Создание сетки многомерных данных


Компонент TDecisionGrid служит для представления многомерных данных в виде таблицы, в которой измерениям соответствуют строки и столбцы. Ячейки TDecisionGrid заполняются данными, полученными на основе расчета агрегатных функций.

Разместим в форме компонент TDecisionGrid с именем DecisionGrid1. Установим в его свойство DecisionSource имя компонента DecisionSource1 После этого произойдет визуализация многомерных данных (рис. 15.8).

Вспомним оператор SELECT, в котором определены измерения и агрегация данных в многомерном кубе:

SELECT P.GOROD, R.POKUP,Т.TYP_TOVARA, R.TOVAR, R.MES,

SUM( R.KOLVO * T.ZENA) , AVG ( R.KOLVO * T.ZENA)

FROM "Rashod.DB" R, "Pokup.DB" P, "Tovary.DB" T

WHERE R.POKUP= P.POKUP AND

T.TOVAR = R.TOVAR

GROUP BY P.GOROD, R.POKUP, TYP_TOVARA, R.TOVAR, R.MES

Согласно данному оператору, в кубе имеются измерения по полям

1. GOROD (город покупателя);

2. POKUP (название покупателя);

3. TYP_TOVARA (тип товара);

4. TOVAR (название товара);

5. MES (месяц года, в который произошел отпуск товара).

В качестве данных по измерениям будет выводиться (по выбору) результат одной из следующих агрегаций:

1. суммарная стоимость отпущенного товара (KOLVO * ZENA);

2. средняя стоимость отпущенного товара (KOLVO * ZENA).

Как видно из рис 15.8, одни измерения показываются по горизонтали, построчно ("Покупатель", "Тип товара", "Товар"), другие - вертикально, как столбцы ("Город"). По умолчанию в ячейках показываются данные той агрегатной функции, которая в списке агрегатных функций в операторе SELECT указана первой. В нашем случае - это суммарная стоимость отпущенного товара SUM( R KOLVO * T.ZENA).



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