- модуль визуализации;
- модуль генерации отчётов.
Модуль взаимодействия с базой данных осуществляет соединение с базой данных, выполнение запросов на стороне приложения, выполнение хранимых процедур на стороне сервера, получение результирующих наборов данных по результатам запросов, передача наборов данных в модуль визуализации.
Модуль визуализации включает в себя следующие функции:
- представление наборов данных в виде диаграмм;
- задание различных видов отображения диаграмм;
- передача данных в модуль генерации отчетов.
Модуль генерации отчетов выполняет следующие функции:
- задание параметров отчёта;
- генерация отчёта;
- экспорт отчёта в MS Excel.
Вся совокупность модулей представлена на рис. 2.5.
Рисунок 2.5 - Модульная структура программного обеспечения
Интерфейс модуля визуализации содержит функции для построения диаграмм, выбора параметров группировки.
Интерфейс модуля генерации отчёта содержит в себе функции по обработке и экспортированию отчёта в MS Excel.
Опишем процедуры и функции (табл. 2.9), которые используются в программе.
Описание содержит наименование, краткое описание и принадлежность к модулю,
т.е. полный функциональный состав программного обеспечения с подробным
описанием.
Таблица 2.9 - Описание состава модулей
|
Наименование модуля |
Наименование функции |
Описание |
|
Модуль взаимодействия с базой данных |
DataModuleCreate |
Функция, выполняющая чтение из файла параметров соединения с базой данных, а также устанавливающая необходимые параметры компонентов доступа к данным |
|
Модуль визуализации |
loadTree |
Функция, выполняющая формирование древовидной структуры организаций, имеющихся в базе данных |
|
|
sLevel_one |
Функция, осуществляющая запрос результатов для выбранного теста по ВУЗу |
|
|
sLevel_two |
Функция, осуществляющая запрос результатов для выбранного теста по институту |
|
|
sLevel_three |
Функция, осуществляющая запрос результатов для выбранного теста по группе |
|
|
dLevel_one |
Функция, осуществляющая запрос результатов для выбранного теста по ВУЗу с учетом группировки по дате |
|
|
dLevel_two |
Функция, осуществляющая запрос результатов для выбранного теста по институту с учетом группировки по дате |
|
|
dLevel_three |
Функция, осуществляющая запрос результатов для выбранного теста по группе с учетом группировки по дате |
|
|
changeTree |
Функция, осуществляющая запрос результатов для выбранной организации |
|
|
sQuery |
Функция, осуществляющая запрос результатов для выбранного теста по выбранной группе с учетом группировки по полу и/или возрасту |
|
|
Visual_Simple |
Функция, осуществляющая представление результатов запроса в виде диаграмм, без дополнительной группировки |
|
|
Visual_Advanced |
Функция, осуществляющая представление результатов запроса в виде диаграмм, с возможностью группировки по дате прохождения теста |
|
Модуль генерации отчёта |
To_Excel |
Функция, экспортирующая отчёт по выбранной группе и выбранному тесту в MS Excel |
Под идентификаторами подразумеваются имена, присваиваемые переменным, константам, типам данных и функциям, используемым в программе.
Идентификатор представляет собой последовательность символов произвольной длины, содержащую буквы, цифры и символы подчеркивания, но начинающуюся обязательно с буквы или символа подчеркивания.
Описание используемых идентификаторов приведено в таблице 2.10.
Таблица 2.10 - Описание идентификаторов
|
Наименование |
Назначение |
Тип |
|
1 |
2 |
3 |
|
tr_id |
Уникальный номер объекта в дереве организаций |
Int |
|
tr_lvl |
Уровень вложенности объекта |
Int |
|
test_id |
Идентификатор теста |
Int |
|
a |
Индекс активной вкладки |
Int |
|
sLow |
Нижняя возрастная граница |
Int |
|
sHigh |
Верхняя возрастная граница |
Int |
|
sGender |
Пол |
String |
|
ini |
Чтение настроек из ini-файла |
TIniFile |
|
Prov |
Хранение параметров настройки соединения с базой данных |
String |
|
User |
|
String |
|
DTB |
|
String |
|
PRT |
|
String |
Рассмотрим схемы алгоритмов выполнения функций "loadTree", "changeTree", "Visual_Simple", "Visual_Advanced", "To_Excel".
1. Функция "loadTree" предназначена для формирования древовидной структуры организаций, имеющихся в базе данных. Сначала выполняется запрос к базе данных на получение полной информации об организациях. Локальным переменным IDKey, ParentIndex, ItemName, lvl присваивается текущее значение столбцов в результате запроса. Далее в цикле перебираются все строки результата запроса. Если текущий уровень организации является корневым (lvl=0), то создается корень дерева, и ему присваивается имя ItemName. Если же уровень не является корневым, то происходит проверка индекса его родителя (ParentIndex), и в дерево добавляется дочерний элемент. Всем элементам дерева присваиваются уникальные индексы. После просмотра последней строки цикл завершается.
Схема алгоритма для данной функции приведена на стр. 60.
. Функция "changeTree" предназначена для формирования запроса к базе данных для выбранной организации. Выполнение данной функции возможно только если пользователь находится на определенных вкладках. Запрос к базе данных осуществляется в зависимости от выбранной пользователем вкладки и выбранной организации из древовидного списка. Схема алгоритма для данной функции приведена на стр. 61.
3. Функция "Visual_Simple" предназначена для представления результатов запроса в виде диаграмм, без дополнительной группировки результатов. В начале проверяется условие, выбран ли тест и выбрана ли организация. Если тест и организация выбраны, то происходит вызов функции "changeTree". Полученные таким образом результаты запроса представляются в виде диаграммы. Если тест либо организация не выбраны, выдается сообщение об ошибке. Схема алгоритма для данной функции приведена на стр. 62.
. Функция "Visual_Advanced" предназначена для представления результатов запроса в виде диаграмм, но с группировкой результатов по дате прохождения теста. В начале происходит очистка графика, чтобы избежать возможного наложения. Затем происходит первичный запрос к базе данных для получения полного списка заключений по выбранному тесту. После этого происходит вызов функции "changeTree" для получения конкретных числовых значений результатов теста. Далее во внешнем цикле перебираются результаты первого запроса, при этом на график добавляются группы элементов (серии диаграмм), но присвоения числовых значений при этом не происходит. Во внутреннем цикле перебираются результаты запроса, вызванного функцией "changeTree". Проверяется принадлежность числового значения (запрос 2) к заключению (запрос 1). Если значение относится к заключению, то координате Y в серии диаграмм присваивается числовое значение результата теста, а координате X - дата прохождения теста. Схема алгоритма для данной функции приведена на стр. 63.
. Функция "To_Excel" предназначена для экспорта
результатов теста по выбранной организации и выбранному тесту в MS Excel. С начала выполняется проверка, установлен ли на
компьютере MS Excel. Если не установлен - работа функции завершается.
Если установлен, происходит создание документа MS Excel и вызов функции "changeTree". Результаты запроса
перебираются в циклах (отдельно столбцы и строки), при этом значения копируются
в ячейки документа MS Excel. Схема алгоритма для данной функции
приведена на стр. 64.
Пользовательский интерфейс представляет собой совокупность программных средств, обеспечивающих взаимодействие пользователя с компьютером.
Разрабатываемое программное обеспечение использует интерфейс пользователя со свободной навигацией. Интерфейс со свободной навигацией также называют графическим пользовательским интерфейсом или интерфейсом WYSIWYG.
Данный графический интерфейс поддерживает концепцию взаимодействия с программным обеспечением, осуществляя визуальную обратную связь с пользователем и возможность прямого манипулирования объектами и информацией на экране. Кроме того, интерфейсы данного типа поддерживают концепцию совместимости программ, позволяя перемещать между ними информацию [13].
Выбор был сделан в пользу этого интерфейса по следующим причинам:
- обеспечивает возможность осуществления любых допустимых в конкретном состоянии операций;
- способен изменяться в процессе взаимодействия с пользователем, предлагая выбор только тех операций, которые имеют смысл в конкретной ситуации.
- выбор того или иного действия осуществляется с помощью мыши или клавиатуры.
На рис. 2.14. представлен граф абстрактного диалога разрабатываемой системы, который представляет собой ориентированный взвешенный граф, каждой вершине которого сопоставлено конкретное изображение на экране или определенное состояние диалога, характеризующееся набором действий.
Дуги, исходящие из вершин, показывают возможные изменения состояний при
выполнении пользователем указанных действий.
Рисунок
2.6 - Абстрактный граф диалога проектируемого программного обеспечения
Система может находиться в двух состояниях: ожидания и выполнения процесса. Переход от первого состояния во второе осуществляется посредством выполнения запроса к БД, а обратно посредством перехода на другую вкладку.
Рассмотрим граф диалога для настройки параметров запроса к БД (рис. 2.7).
Пользователь изменяет параметры запроса к БД, выбирая соответствующие объекты
из списка, желаемую дату тестирования, наименование теста. После того, как
выбор параметров закончен, пользователь подтверждает выполнение запроса.
Рисунок
2.7 - Граф диалога для настройки параметров запроса к БД
Граф диалога визуализации представлен на рис. 2.8. Здесь пользователь
может выбрать интересующий его способ представления результатов: диаграмма
сводных результатов, диаграмма изменения по времени, диаграмма сравнения,
табличная форма представления.
Рисунок 2.8 - Граф диалога визуализации
Граф диалога для генерации отчёта (рис. 2.9) показывает возможные
варианты действий пользователя. Пользователь может настроить отчёт, получить
необходимые данные, экспортировать отчет в MS Excel.
Рисунок 2.9 - Граф диалога для генерации отчёта
.9.2 Разработка форм ввода-вывода информации
Данное программное обеспечение имеет большой набор элементов графического интерфейса: окна, пиктограммы, компоненты ввода-вывода.
Окно - прямоугольная, ограниченная область физического экрана.
Рисунок 2.10 - Окно входа в систему
Окно приложения - главное окно разрабатываемой программы (рис. 2.11), которое имеет фиксированную рабочую область, строку заголовка с кнопками системного меню, кнопками минимизации окна и выхода, графическое меню вкладок (панель инструментов).
В качестве основного окна используется форма типа TPagesDlg, что позволяет уменьшить общее
количество форм, а также сделать работу более удобной и быстрой за счет
использования вкладок.
Рисунок 2.11 - Основное окно программы
Информационное окно - представлено в виде окон сообщения. Окна сообщений
предупреждают пользователя о существующей ошибке, о невозможности действия.
Рисунок 2.12 - Окно сообщения при ошибке соединения с базой данных
Рисунок 2.13 - Окно сообщения при отсутствии файла настроек
Рисунок 2.14 - Окно сообщения при неправильном выборе теста
Рисунок 2.15 - Окно сообщения при неправильном выборе объекта анализа
Еще одними элементами графического интерфейса программы являются компоненты ввода-вывода.
Компоненты ввода-вывода перечислены в табл. 2.11.
Таблица 2.11- Компоненты ввода-вывода
|
Компонент |
Внешний вид |
Предназначение |
|
TreeView древовидная нередактируемая структура |
|
Навигация по объектам обследования |
|
Button - кнопка |
|
Инициация операции |
|
CheckBox - элемент выбора |
|
Выбор или отмена опций |
|
RadioButton - выключатель |
|
Выбор одного из вариантов |
|
DBComboBox - комбинированный список |
|
Выбор одного из нескольких вариантов в списке |
|
TrackBar - односторчный редактор с возможностью увеличения и уменьшения значения |
|
Ввод или изменение значения |
|
DBChart - диаграммы |
|
Вывод результатов тестирования |
|
DBGrid - текстовая таблица |
|
Отображение табличных данных |
Компоненты для баз данных предоставляют функциональные возможности, которые необходимы для доступа к данным базы данных и управления ими. Связанные между собой, они представляют некоторую иерархическую структуру.
На самом верхнем уровне находятся визуальные управляющие компоненты. Компоненты такого типа лишь отображают на форме посылаемые им данные, не связываясь при этом с физической базой данных.