Н. 3, Епманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
6.2.3   Визуальное представление данных
Теперь можно поместить на форму компонент TDecisionCube и установить значение его свойства DataSet равным DecisionQueryl. Затем следует поместить на форму компонент TDecisionSource и установить значение его свойства DecisionCube равным DecisionCubel. После этого можно поместить на форму компонент TDecisionPivot,,, установив значение его свойства Align равным аГГор, затем - TDecisionGrid (с тем же значением свойства Align), затем - TSplitter со страницы Additional (с тем же значением свойства Align) и, наконец, TDecisionGraph (со значением свойства Align, равным alClient). Теперь можно установить значение свойства Active компонента DecisionQueryl равным true, и после некоторого времени, потраченного на вычисления сумм, форма примет вид, похожий на представленный на рис. 6.17.
Рис. 6.17. Примерный вид формы после размещения компонентов и открытия запроса
Еще на этапе проектирования формы есть возможность раскрытия и сворачивания размерностей и превращения пятимерного куба в двумерную кросс-таблицу (типа представленной на рис. 6.5) или представленный в виде последовательности двумерных сечений трех- или четырехмерный куб-
122
Новые компоненты для работы с базами данных
Это удобно, делать с помощью компонента TDecisionPivot. Обратите внима-ниеГ этот компонент содержит элементы, похожие на кнопки, пять из которых соответствуют каждый своей размерности, а шестой - содержимому ячеек, а также два разделителя, отделяющих кнопку, соответствующую агрегатным данным, кнопки, соответствующие размерностям, образующим колонки и кнопки, соответствующие размерностям, образующим строки двумерных сечений, предсташтенных в TDecisionGrid. Если щелкнуть правой клавишей мыши по одной из пяти кнопок, соответствующих размерностям, можно свернуть или развернуть ее, а также переместить из области строк в область столбцов или наоборот. Если щелкнуть правой клавишей мыши по кнопке TDecisionPivot, соответствующей агрегатным данным, можно выбрать для отображения один из их типов. Можно также переносить размерности из области строк в область столбцов с помощью "перетаскивания" мышью их названий в TDecisionGrid, а также сворачивать и разворачивать их, нажимая на значки "+" и "-" возле их названий.
Если попробовать развернуть размерность SALE_DATE, можно увидеть, что вместо ожидаемых пяти значений мы имеем одно - 1998. Возможность суммирования по годам, безусловно, нужна при составлении финансовых сводок и отчетов, но в этом случае возникает вопрос: а как быть, если нужно суммировать данные по кварталам, месяцам или дням? В этом случае следует щелкнуть правой клавишей мыши по компоненту DecisionCubel и выбрать из контекстного меню опцию Decision Cube Editor (либо щелкнуть справа от названия свойства DimensionMap). В появившейся диалоговой панели можно выбрать страницу Dimension Settings и изменить установки свойства Grouping для соответствующей размерности (рис. 6.18).
123