1) u_closebutton:
кнопка для закрытия родительского окна.
2) u_editmask_g0:
маскируемое окно ввода, которое воспринимает только большие нуля целые значения. При нарушении этого правила, что проверяется в при обработке события LoseFocus, выдается сообщение об ошибке и фокус ввода отстается у окна ввода.
3) u_waitwindow:
представляет собой пользовательский визуальный объект, состоящий из индикатора прогресса, рамки, текстовой строки подсказки и строки состояния процесса. Объект служит для отображения информации о протекании какого-либо потенциально продолжительного процесса.
Классы окон.
1) w_db_struct:
окно с информацией о структуре используемой БД, представляемой в виде графа отношений между логическими сущностями. При этом отображаются все поля таблиц с указанием связей между ключевыми полями.
2) w_flatpribors:
окно для модификации данных по квартире для заданного месяца. Эти данные представляют собой список приборов с указанием их числа по состоянию на указанный месяц, а также среднего времени работы в сутки. Выбор прибора осуществляется по его идентификатору.
Окно позволяет редактировать данные для указанной квартиры в одном доме. Список в верхней части окна позволяет выбрать месяц, применительно к которому будут рассматриваться приборы.
Окно использует объект DataWindow temp_1. При модификации информации в нем производится пересчет количества энергии в кВ/ч, потребляемого квартирой за сутки.
3) w_flats:
окно модификации данных о домах. В верхней его части располагается список домов, присутствующих в БД, а также месяцы года. В окне производятся операции добавления/удаления/редактирования как самих домов, так и квартир, содержащихся в них.
|
Модификация информация о доме производится в DataWindow house_of_month_h_num (постоянная информация о доме) и пользовательском элементе управления u_editmask_g0 (информация, зависящая от месяца – тариф).
Редактирование данных о квартирах в выбранном доме осуществляется в DataWindow flats_of_month_h_num. При изменении любой модифицируемой информации в этом окне, а также изменении текущего месяца или месячного тарифа, происходит автоматическое обновление вычисляемых полей, относящихся к квартирам.
Из этого окна также осуществляется вызов окна w_flatpribors для редактирования списка приборов квартиры.
4) w_main:
главное окно программы, содержащее меню и рабочую область (в программе не используется).
5) w_params:
окно модификации параметров, принимаемых по умолчанию (в данной версии программы это – тариф оплаты одного кВ/ч).
6) w_pribors_edit:
окно редактирования списка приборов, которые могут быть заданы в качестве потребителей электроэнергии. При удалении прибора либо изменении мощности уже существующего происходит модификация информация в БД: при выходе из окна выполняется сравнение текущих данных о мощности с хранимыми в БД. Если для какой-либо записи обнаружено несоответствие, то происходит изменение данных о количестве потребляемой энергии квартирой и перерасчет суммы для дома путем вызова хранимой процедуры GetHouseSum.
7) w_report_house:
- окно просмотра отчета о суммарных материальных затратах, которые несут жильцы всех квартир дома за месяц. Отчет можно просматривать в нескольких формах:
- информация об одном доме и одном месяце;
- информация о всех домах и одном месяце;
|
- информация о всех домах и всех месяцах;
- информация об одном доме и всех месяцах.
Описание программы
Доступ ко всем функциям программы осуществляется либо через меню, либо через панель инструментов, кнопки которой дублируют к основные пункты меню.
Модификация данных осуществляется, как правило, через элементы управления DataWindow. Их реализация предусматривает изменение текущих данных только при выходе из поля редактирования. Поэтому, в некоторых ситуациях, реакция программа на модификацию данных может отличаться от ожидаемой.
Описание главного меню:
1) “Программа”
а) “Структура БД” – просмотр информации о структуре БД (содержимого ее таблиц и связей между ними);
б) “Выход” – завершение работы с программой;
2) “Данные”
а) “Дома” – работа с информацией о домах. При этом появляется диалоговое окно, содержащее элементы управления для задания критериев отбора данных, и, непосредственно, сами данные.
Критерии отбора – это номер дома и месяц. Эти параметры задаются путем выбора значений из списков в верхней части экрана. При изменении текущих дома или месяца происходит автоматическое сохранение предыдущих данных в БД, после чего обновляется содержимое некоторых элементов управления.
При изменении номеров домов и квартир в случае, если такой номер уже имеется в БД, пользователь извещается об этом, и ему предлагается изменить значение поля.
При изменении данных, влияющих на расход электроэнергии за месяц, происходит перерасчет вычислимых полей в окне данных с информацией по квартирам дома.
Операции над домами:
|
- модификация. При изменении номера дома происходит немедленное автоматическое сохранение данных и обновление списка домов;
- удаление. При этом у пользователя запрашивается подтверждение на выполнение этой операции;
- добавление. При этом месяный тариф устанавливается равным значению по умолчанию (меню “Вид”->“Параметры”). Активным становится окно данных для ввода постоянной информации о доме. При выходе из него, т.е. когда оно теряет фокус ввода, производится запрос на сохранение введенных данных, т.е. добавление записей в соответствующие таблицы.
Операции над квартирами:
- модификация;
- удаление;
- добавление. При этом квартире присваивается номер, равный максимальному номеру среди всех остальных квартир плюс единица;
- сортировка. Выполняются при щелчке мышью на одном из заголовков столбцов в таблице квартир. Первый щелчок на заголовке приводит к выполнению сортировки по возрастанию данных (Ascending), а повторный – по убыванию (Descending).
Рядом с каждой записью с информацией по квартире находится кнопка “Приборы”, нажатие которой вызывает диалог редактирования приборов данной квартиры:
- в верхней его части отображаются номера квартиры и дома, а также месяц, для которого приводятся данные. В данном окне изменять можно только текущий месяц;
- при изменении месяца или выходе из диалога выводится запрос для подтверждения сохранения данных (если они были изменены);
- при модификации данных по приборам автоматически обновляется поле “кВ/ч в день”, отображающее суточное потребление энергии квартирой;
- кнопка “Копировать” осуществляет копирование информации о приборах в квартире для текущего месяца во все остальные месяцы года;
- кнопка “Undo” отменяет все изменения, сделанные в списке приборов текущего месяца. “Приборы” – работа со списком приборов, которые могут иметься в квартирах. Каждый прибор идентифицируется своим именем и потребляемой мощностью.
При удалении прибора из списка происходит перерасчет информации в БД, зависящей от расхода электроэнергии. Это необходимо делать потому, что удаляемый прибор может влиять на эти данные, если он имеется в списках приборов для квартир.
При выходе из этого диалогового окна программа проверяет, были ли сделаны изменения мощности имеющихся в БД приборов. В случае обнаружения такой ситуации также производится перерасчет данных для квартир (и, соответственно, домов), содержащих такие приборы.
3) “Отчет”
а) “Дома” – отчет по домам. Пользователь выбирает из списков в верхней части окна дом и месяц, по которым он желает получить отчет. Возможно также задание всех домов и (или)всех месяцев одновременно. В этом случае просмотр отчетных данных, которые в данный момент не отображаются, осуществляется с помощью полосы прокрутки.
Отображаемые данные:
информация о доме (его номер, число квартир и жильцов);
тариф и сумма, необходимая для погашения расходов на электроэнергию для дома в указанном месяце.
4) “Вид”
а) “Toolbar” – управление видимостью панели инструментов;
б) “Параметры” – изменение месячного тарифа, устанавливаемого по умолчанию при добавлении нового дома.
Программа и методика испытаний
Отладка программы
Простая истина состоит в том, что человек несовершенен, поэтому все мы допускаем ошибки, что является совершенно нормальным явлением как в повседневной жизни, так и в программировании. Редко кому удается с первого раза написать программу без ошибок. Их появление в программе заставляет программиста многократно проверять все с самого начала. Совокупность действий по обнаружению и устранению ошибок в программировании называется отладкой.
Процесс отладки в общем случае можно разделить на четыре этапа:
Обнаружение ошибки
Этот этап является наиболее очевидным. Компьютер либо "зависает" во время работы программы, либо происходит сбой, который проявляется в выдаче на экран бессмысленной информации. Однако, в некоторых случаях ошибка не проявляется так очевидно. Программа может работать хорошо до тех пор, пока не будет введено некоторое число (например, 0 или отрицательное число), или пока не будет тщательно проверена выдаваемая ею информация. Только после такой проверки можно обнаружить, что результат отличается от ожидаемого.