Проект DV-6
|
Заказчик проекта занимается сбором информации по различным направлениям: продажи автомобилей, грузовиков, автобусов, прицепов; анализ динамики макроэкономических показателей и т.д., данные хранятся в обычных базах данных, но для этого проекта производится их объединение в единое хранилище в формате MS Analisis Services (OLAP-кубы). Цель проекта – обеспечить доступ к данным через интернет, с помощью броузера, не потеряв при этом функциональности, которую может обеспечить MS Excel.
Перед началом работ над проектом мной был произведен анализ рынка программных компонентов и технологий, которые бы могли в удобном виде показывать содержание OLAP-куба, а также на основе этих данных строить графики. Мной были рассмотрены следующие варианты:
Из этого набора только компоненты от Developer Express смогли удовлетворить высоким требованиям заказчика проекта.
Архитектура проекта.
Основу проекта составляет блок управления таблицей куба.
Куб имеет в своем составе несколько сотен полей, поэтому они разбиты на логические блоки, структура этих блоков описана с помощью XML и хранится в базе данных проекта. Пользователь может иметь доступ не ко всем блокам, а только к части. При наличии доступа к нескольким блокам, происходит объединение полей из которых эти блоки состоят. При запросе данных пользователь указывает нужные ему поля и к кубу строится динамический запрос на языке MDX. |
Управление таблицей куба включает в себя:
Построение графиков
Программное обеспечение от Devexpress имеет в своем составе компонент WebChart для построение графиков. Графики могут строиться программно и с помощью подключения к компонентам PivotGrid и GridView, которые содержат данные в табличной форме. Во втором случае построение графиков носит тривиальный характер, так как не требует построения серий и заполнения их значениями, но для данного проекта этот подход оказался неприемлемым, так как графики необходимо было строить по выделенному блоку данных в таблице, для технологии ASP.NET компонент AspxPivotGrid не имеет встроенной возможности выделения области.
Механизм построения графиков в проекте имеет следующие возможности:
Цветовой анализ
Таблица куба имеет дополнительную возможность для анализа – цветовой анализ, концепция которого разработана заказчиком проекта. Анализируются все данные таблицы, строки и столбцы с итогами исключаются. Если включена фильтрация данных по количеству (функция [Прочие]), то имеется возможность оставить или убрать запись [Прочие] из анализа. Если таблица имеет несколько полей с данными, то можно использовать только одно по выбору, поля с данными должны находиться в столбцах таблицы. Каждой строке присваивается определенный цвет, набор возможных цветов хранится в системном реестре. |
При анализе производится сортировка по убыванию в рамках столбца, если в записи присутствует несколько заголовков полей, то группировка для сортировки производится по последнему полю.
Результаты анализа можно экспортировать в MS Excel.
Поиск по ВИН
ВИН – идентификационный номер транспортного средства. Заказчик проекта поддерживает базы данных по продажам транспортных средств, базы разбиты по годам и типам транспортных средств. Эта часть проекта позволяет осуществить поиск по набору кодов ВИН в различных базах данных. Результаты поиска помещаются в таблицу, возможна группировка таблицы по любому набору полей. После поиска можно увидеть коды, которые не были найдены в выделенных базах данных. Результаты можно экспортировать в MS Excel. |
Как это работает.
Данные о продажах транспортных средств хранятся в таблицах базы данных MS SQL. Таблицы разделены по годам и типам транспортных средств. Таблицы могут иметь различную структуру в зависимости от типа транспортного средства с набором общих полей. В системном реестре хранится список доступных таблиц и их структура. При запросе данных из нескольких таблиц с помощью динамического SQL производится объединение информации в одну временную таблицу, которая содержит полный набор полей из всех просматриваемых таблиц. Во избежание ошибок, при построении временной таблицы просматриваются системные таблицы базы данных MS SQL, чтобы удалить поля, которые могут быть ошибочно указаны для анализируемых таблиц. |
Управление пользователями
Проект имеет следующие возможности по управлению пользователями:
Доступ к проекту осуществляется с помощью сессий. Пользователь может открыть только одну сессию, в рамках сессии, в одном окне броузера он может открыть несколько вкладок с данными, данные о текущей сессии хранится в базе данных проекта. При отсутствии активности пользователя в течение определенного времени его сессия закрывается и для доступу к проекту пользователю необходимо пройти авторизацию повторно. |
|