В дополнение к сказанному требуется упомянуть о том, что поле «Status» таблицы «Uchet_Rabota» может принимать три различных значения: ожидает выполнения, выполняется и готово. Данное поле таблицы БД говорит нам о том, в каком состоянии находится работа, напрямую связанная с капитальным ремонтом.
Как уже было сказано мною ранее, отдельной таблицей является таблица «Log_Pass», которая хранит в себе логины и пароли пользователей управляющей компании. Помимо логина и пароля пользователя, данная таблица БД имеет логическое поле «Status», которое говорит нам о том, является ли пользователь администратором данного ПО или нет.
В заключение отмечу, что разработанная БД поддерживает абсолютную целостность между значениями родительских и подчинённых таблиц.
4. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Для реализации поставленной передо мною прикладной задачи требуется разработать полноценный модуль информационной системы для учёта, анализа и информационной поддержки плательщиков в управлении капитальным ремонтом в управляющих компаниях города Вологды. Как уже было упомянуто мною ранее, данное ПО разрабатывается в ИСР Delphi 7. Рассмотрим поэтапно процесс разработки программного продукта «Капитальный ремонт».
4.1 Основные компоненты Delphi 7, используемые при разработке
Для начала требуется определиться с тем, какие компоненты среды разработки будут использованы в приложении модуля информационной системы. Чтобы обеспечить целостную работу с БД в приложении, используются компоненты, представленные в таблице 4.1.
Таблица 4.1 - Компоненты, обеспечивающие целостную работу с БД в приложении
|
Компонент |
Свойство |
Описание свойства |
|
|
1 |
2 |
3 |
|
|
ADOQuery |
SQL |
Содержит прописанный запрос |
|
|
DataSource |
DataSet |
Связь невизуального компонента с визуальным |
|
|
DBComboBox |
DataSource |
Связь с набором данных |
|
|
DataField |
Имя поля в источнике данных |
||
|
DBCheckBox |
DataSource |
Связь с набором данных |
|
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
DBDataSet |
DataSet |
Связь невизуального компонента с визуальным |
|
|
DBEdit |
DataSource |
Связь с набором данных |
|
|
DataField |
Имя поля в источнике данных |
||
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
DBGrid |
DataSource |
Отображение таблицы БД |
|
|
DBMemo |
DataSource |
Связь с набором данных |
|
|
DataField |
Имя поля в источнике данных |
||
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
DBText |
DataSource |
Связь с набором данных |
|
|
DataField |
Имя поля в источнике данных |
Компоненты, используемые в приложении и образующие его функциональную составляющую, представлены в таблице 4.2.
Таблица 4.2 - Компоненты, образующие функциональную составляющую приложения
|
Компонент |
Свойство |
Описание свойства |
|
|
1 |
2 |
3 |
|
|
BitBtn |
Caption |
Надпись, отображаемая на кнопке |
|
|
Glyph |
Иконка, отображаемая на кнопке |
||
|
Hint |
Всплывающая подсказка |
||
|
Kind |
Разновидность кнопки |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
Button |
Caption |
Надпись, отображаемая на кнопке |
|
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
ComboBox |
DropDownCount |
Количество видимых строк выпадающего списка |
|
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
Style |
Раскрытие списка |
||
|
Edit |
Hint |
Всплывающая подсказка |
|
|
ShowHint |
Отображение всплывающей подсказки |
||
|
GroupBox |
Caption |
Заголовок панели |
|
|
Image |
Align |
Выравнивание компонента на экранной форме |
|
|
Picture |
Изображение, отображающееся в поле компонента |
||
|
Label |
Caption |
Заголовок метки |
|
|
Font |
Множество характеристик, описывающих шрифт |
||
|
MainMenu |
Caption |
Наименование пункта/подпункта меню |
|
|
Items |
Пункты/подпункты меню |
||
|
Bitmap |
Иконка, отображающаяся на пункте/подпункте меню |
||
|
MaskEdit |
EditMask |
Статичный шаблон ввода |
|
|
Hint |
Всплывающая подсказка |
||
|
ShowHint |
Отображение всплывающей подсказки |
||
|
Panel |
Color |
Цвет панели |
|
|
ProgressBar |
Hint |
Всплывающая подсказка |
|
|
ShowHint |
Отображение всплывающей подсказки |
||
|
Orientation |
Ориентация шкалы компонента |
||
|
Smooth |
Непрерывное или дискретное отображение процесса |
||
|
RadioButton |
Caption |
Наименование переключателя |
|
|
Checked |
Состояние переключателя |
||
|
Report |
DataSet |
Связь невизуального компонента с визуальным |
|
|
Shape |
Brush |
Цвет фигуры |
|
|
Pen |
Границы фигуры |
||
|
Shape |
Форма, которую может принимать компонент |
||
|
Visible |
Видимость объекта |
||
|
ShapeObject |
- |
- |
Получив представление о компонентах, которые будут использоваться в приложении, мы сможем построить полнофункциональный модуль информационный системы, выполняющий заявленные функции.
4.2 Описание схемы диалога
Любая информационная система или её модуль, как в нашем случае, должна иметь понятную схему диалога (меню), поэтому перейдём к её описанию, так как это является одним из важнейших аспектов как при разработке ПО, так и при использовании ПО.
Главное меню было разработано при помощи компонента MainMenu. Оно осуществляет доступ к шести основным пунктам:
1) справочная информация;
2) перерасчёт;
3) платежи;
4) учёт работ по капитальному ремонту;
5) смена пользователя;
6) выход.
В свою очередь, пункт меню «Справочная информация» осуществляет вызов следующих подпунктов меню:
1) виды работ;
2) тарифы;
3) льготы;
4) редактирование пользователей;
5) настройки организации.
Каждый из пунктов и подпунктов меню, за исключением «Смена пользователя» и «Выход», осуществляет переход на соответствующую его названию форму. Как уже было упомянуто мною, исключениями являются пункты меню «Смена пользователя» и «Выход». При выборе пункта меню «Смена пользователя» происходит закрытие всех форм, исчезновение главного меню и переход на форму «Авторизация пользователя», а при выборе пункта меню «Выход» производится выход из программного продукта.
Отмечу, что схема диалога (меню) для обычного пользователя, то есть оператора, и для администратора системы имеет значительные отличия, что можно пронаблюдать на рисунках 4.1 и 4.2, соответственно.
Рисунок 4.1 - Схема диалога для оператора
Рисунок 4.2 - Схема диалога для администратора системы
На основе приведённых схем диалога (меню) было разработано тринадцать экранных форм, каждая из которых выполняет одну или несколько функций, о которых было упомянуто в разделе 1.1.
4.3 Описание экранных форм
Для представления полной картины работы приложения «Капитальный ремонт», я опишу экранные формы, которые были разработаны мною для того, чтобы выполнить все заявленные ранее функции программного продукта.
Перед началом работы с модулем информационной системы пользователя встречает форма авторизации, представленная на рисунке 4.3.
Рисунок 4.3 - Форма «Авторизация пользователя»
Следует отметить, что данная форма возникает не только в начале работы с ПО, но и при выборе пункта меню «Смена пользователя». Компоненты ComboBox и Edit напрямую связаны с БД «Database.mdb» при помощи компонента ADOQuery. В поле «Имя пользователя» заключена информация о логине пользователя, а в поле «Пароль» необходимо произвести ручную печать с клавиатуры набора символов и знаков, предназначенную для подтверждения его личности. Если имя пользователя и пароль совпадают с данными из таблицы «Log_Pass» БД, то возможно произвести вход при помощи кнопки «Войти», созданной компонентом «Button».
На рисунке 4.4 отображена главная форма приложения «Капитальный ремонт». модуль информационный программный приложение
Рисунок 4.4 - Форма «Капитальный ремонт»
На данной форме расположено меню приложения, которое находится в верхней части формы. Оно создано при помощи компонента MainMenu. На рабочей области формы присутствует свой стиль оформления, который был применён благодаря компоненту Image.
В свою очередь, на рисунке 4.5 изображена форма «Виды работ» приложения «Капитальный ремонт».
Рисунок 4.5 - Форма «Виды работ»
На данной форме расположено три компонента DBEdit, которые размещаются на панели, полученной при помощи компонента Panel. Каждый размещённый на панели компонент DBEdit несёт в себе определённую информацию о виде работы по капитальному ремонту. Первый содержит наименование проводимого вида работы, второй, в свою очередь, выводит на экран единицу измерения площади рабочей области, а третий стоимость проводимых работ за одну единицу измерения. Для переключения между видами работ используются кнопки, созданные при помощи компонента BitBtn:
- кнопка «Первая», при нажатии на которую выполняется переход к первой записи;
- кнопка «Назад», при нажатии на которую выполняется перемещение на одну запись назад;
- кнопка «Вперёд», при нажатии на которую выполняется перемещение на одну запись вперёд;
- кнопка «Последняя», при нажатии на которую выполняется переход к последней записи.
Для удобства поиска пользователем нужной для себя или собственника жилья информации о видах проводимых работ, создана поисковая строка при помощи компонента Edit. Пользователь может ввести в поле данной строки полное, либо частичное наименование проводимой работы и, нажав на кнопку «Найти», исполнит заданный алгоритм.
Требуется упомянуть о том, что администратор программного продукта имеет право на изменение информации о видах работ по капитальному ремонту. Используя кнопки «Добавить, «Удалить» и «Сохранить», возможно редактирование, увеличение и уменьшение записей в таблице «Vid_Rabota» БД, поля которой и расположены в наборе компонент DBEdit.
Формирование и изменений данных о тарифных планах представлено на форме «Тарифы», изображённой на рисунке 4.6.
Рисунок 4.6 - Форма «Тарифы»
Форма «Тарифы» по своему составу и расположению компонентов идентична форме «Виды работ». При описании данной экранной формы я сделаю акцент только на то, что расположено в строках компонента DBEdit. Поле «Тариф» содержит в себе информацию о виде населённого пункта, а остальные два поля говорят нам о предустановленном размере выбранного тарифного плана и о предусмотренном налоговом сборе, равном в процентном соотношении с размером тарифа, то есть пени, которым облагается данный тарифный план.
Аналогичную структуру, в сравнении с формами «Виды работ» и «Тарифы», имеет форма «Льготы», изображённая на рисунке 4.7
Рисунок 4.7 - Форма «Льготы»
По образу и подобию данная форма почти не имеет отличий от двух других форм предшественников, описанных ранее. Чтобы долго не останавливаться на описании данной формы, сделаем только упоминание о том, что на ней содержится информация о категории льгот или документов о предоставление полного или частичного освобождения от выплат, а также размер послабления, указывающийся в процентах.
В начале разработки программного продукта «Капитальный ремонт» было принято решение создать отдельную форму для редактирования пользователей, работающих с данным модулем информационной системы. Для того чтобы не тратить лишнее время администратору на внесение нового пользователя в БД программного продукта, была разработана форма «Редактирование пользователей», которая имеет вид, представленный на рисунке 4.8.
Рисунок 4.8 - Форма «Редактирование пользователей»
Проиллюстрированная форма содержит в себе такие компоненты, как:
- компонент DBEdit, содержащий в себе определённую информацию о пользователе модуля;
- компонент DBCheckBox, при помощи которого можно лишить прав администратора или, наоборот, приобрести права администратора;
- компонент Button, при помощи которого можно выполнять различные действия: переход в начало/конец записей, переход на одну запись назад/вперёд, добавление нового пользователя в систему, удаление данных о пользователе из БД программного продукта «Капитальный ремонт», сохранение всех внесённых изменений;
- компонент Panel, использующийся только для стилистического оформления формы;
- компонент Label, содержащий в себе статичный текст.
Компонент DBEdit, упомянутый при описании этой экранной формы, очень часто используется мною при написании различного ПО. Он является с одной стороны простым и ограниченным по функционалу, а с другой стороны этого самого функционала хватает для воплощения многих опций.
При внедрении данного программного продукта в управляющую компанию первым делом будет производиться заполнение информации о самой организации. Это делается для того, чтобы в дальнейшем при печати квитанций, извещений и иных документов происходило отображение частичной или полной информации об организации, то есть управляющей компании. Данная информация заполняется ответственным лицом, имеющим права администратора в системе, на форме «Настройки организации», имеющей вид, представленный на рисунке 4.9.