Поскольку проект новый, документация только готовится, было решено не ждать выхода полного релиза и выдавать материалы в массы, что называется, "с колес".
Сегодня мы построим первый куб, чтобы сложить представление, как вообще это делается.
Запустим SoftKuB, нажмем на значок "New Cube".
Откроется окно пустого куба.
Первое, что необходимо сделать - подключиться к источнику данных. Для этого нажмем на кнопку "...". Выделена на рисунке оранжевым.
Откроется стандартный диалог для подключения к источнику данных.
Перейдем на первую вкладку и выберем поставщика данных. Поскольку мы будем подключаться к базе NorthWind.mdb (база данных в формате Microsoft Access, идущая как пример к многочисленным приложениям
), то нашим поставщиком (провайдером) данных будет Microsoft Jet 4.0 OLE DB Provider. Выбираем провайдера и жмем кнопку "Далее".
Укажем имя файла базы данных (у меня он находится в C:\Program Files\SoftKB\SoftCube\Examples\NWIND.MDB Если вы устанавливали программу с путями по умолчанию, то у вас он находится там же).
После того, как файл выбран, удостоверимся, что настройки произведены корректно - нажмем на кнопку "Проверить подключение". Если все нормально, жмем "Ок".
Обратите внимание. В строке подключения у нас появился текст подключения, а справа в окне мы наблюдаем перечень таблиц, из которых мы можем выбирать данные.
Простым перетаскиванием в белую центральную область окна зачитываем следующие таблицы:
Customers - Клиенты, в данном контексте "Покупатели".
Orders - таблица заказов, которая ссылается на клиентов, которые эти заказы сделали.
OrderDetails - перечень товаров заказа с указанием количества, цены и скидки. Каждая запись перечня содержит номер заказа, в который она включена.
Products - справочник товаров, которые указаны в заказах. Каждая запись товарного перечня в заказах содержит ссылку на товарную запись в справочнике.
Categories - группы товаров. Каждая запись товарного справочника содержит ссылку на группу, к которой этот товар принадлежит.
Более подробно о реляционных базах данных, нормализации можно почитать здесьОтметим поля в таблицах, которые мы хотим включить в наш запрос.
В таблице Customers отметим поле CompanyName для получения названий клиентов. В таблице Categories отметим поле CategoryName для вывода названий товарных групп. В таблице OrderDetails отметим поле Quantity для подсчета проданного количества.
Нам не нужно выводить данные по каждой продаже. Нам нужно вывести суммарное количество товаров определенной группы, проданных определенному покупателю. Для подсчета сумм и итогов применяются так называемые групповые операции. Отметим галочкой признак группировки первых двух строк. Для третьей строки используем агрегатную функцию Sum, которая сложит значения поля Quantity для все записий, у которых имя покупателя и категория товара повторяются.
Теперь нажмем на значок "Step Forward" (шаг вперед) и перейдем на вкладку "Query Results" (результаты запроса").
На данной вкладке мы видим так называемую "результирующую таблицу". Это ответ источника данных, в данном случае базы NorthWind на наш запрос.
Делать здесь ничего не нужно, просто посмотрим, и пойдем дальше. Снова жмем "Step Forward".
На третьем шаге на вкладке "Cube Columns Settings" мы решаем, какие поля нашей результирующей таблицы будут являться строками куба, какие столбцами, какие будут находиться на пересечении строк и столбцов в ячейках данных. Есть еще также область фильтра, в которую можно выводить "лишние" поля, которые в данный момент не отображаются в кубе, но могут влиять на расчеты и выборки из верхней области фильтра. Фильтры - тема следующих статей.
Пустим наших покупателей по строкам (Row Area), а группы товаров по столбцам (Column Area). На пересечении (Data Area) отобразим проданное количество. Нажмем на кнопку "Step Forward".
Откроется последняя вкладка, на которой будет находиться куб.
Пока что, он еще маленький и слабый, но скоро мы займемся выращиванием и разведением настоящих боевых кубов.