Смекни!
smekni.com

Проектирование системы автоматизации ведения учетно-отчетной документации (стр. 3 из 7)


электроэнергии юридических абонентов"

При ведении учета потребления электроэнергии юридических абонентов инженеру необходимо предоставить возможность введения данных о потреблении электроэнергии юридических абонентов. А именно: №, коэффициент счетчика; настоящие и предыдущие показания.

Предыдущие показания должны заноситься автоматически, т.е. считываться с настоящих показаний предыдущего месяца.

Также необходимо реализовать возможность на основании введенных данных автоматических расчетов:

расчет среднесуточного потребления электроэнергии;

расчет предполагаемого (ожидаемого) расхода электроэнергии за месяц;

расчет текущего расхода;

расчет разности предполагаемого и текущего расходов.

На рисунке 3.5 показан алгоритм работы подсистемы " Учет потребления электроэнергии бытовых абонентов".


Рисунок 3.5 - Алгоритм работы подсистемы "Учет потребления электроэнергии бытовых абонентов"

При ведении учета потребления электроэнергии бытовых абонентов необходимо иметь возможность внесения данных о расходе потребления электроэнергии бытовыми абонентами на фидерах.

Для формирования отчетов инженеру пофидерного анализа необходимо предоставить возможность выбора типа отчета. А также возможность предварительного просмотра отчета нажатием кнопки "сформировать отчет", и если необходимо, распечатать его.

3.2 Разработка структуры базы данных

При проектировании базы данных следует придерживаться правил нормализации таблиц:

каждое поле любой таблицы должно быть уникальным;

каждая таблица должна иметь уникальный идентификатор (первичный ключ), который может состоять из одного или нескольких полей таблицы;

для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы;

должна иметься возможность изменения значения любого поля (не входящего в первичный ключ), и это не должно повлечь за собой изменения другого поля.

Каждый объект будет представлен отдельной таблицей базы данных. Элементы данных будут представлены полями таблиц. Имена таблиц и их полей подберем исходя из имен объектов и элементов данных. Проект базы данных включает в себя 5 таблиц:

таблицу фидеров (Phider);

таблицу абонентов "Abonent-inf";

таблицу расхода на фидерах "Phider- Rashod";

таблицу расхода юридических абонентов "Abonent_Pashod";

таблицу расхода бытовых абонентов "Bit".

Опишем базу данных в табличной форме.

Таблица 3.1 - Структура таблицы "Phider"

Имя поля Описание Тип Размер Ключ
Name Наименование фидера Текстовый 25 *
N_schetchik № счетчика Числовой Длинное целое
Koef Коэффициент Числовой Короткое целое
Pokaz Показания Числовой Значение с плавающей точкой
Temp Поле для хранения промежуточной информации Числовой Длинное целое

Таблица "Phider- Rashod" (таблица 3.2) является подчиненной таблице "Phider".

Таблица 3.2 - Структура таблицы "Phider- Rashod"

Имя поля Описание Тип Размер Ключ
Nomer Номер записи Счетчик Длинное целое *
Name Наименование фидера Текстовый 25
Data Дата Дата Краткий формат даты
Pred_Pokaz Предыдущие показания Числовой Длинное целое
Nast Настоящие показания Числовой Длинное целое
Raznost Разность Числовой Длинное целое
Koef Коэффициент Числовой Длинное целое
Rashod Расход Числовой 6
Polez Полезный отпуск электроэнергии Числовой Длинное целое
Poteri Количество неоплаченной электроэнергии Числовой Длинное целое
Procenti Количество неоплаченной электроэнергии в процентах Числовой Длинное целое

Таблица 3.3 - Структура таблицы "Abonent-inf"

Имя поля Описание Тип Размер Ключ
Name Наименование абонента Текстовый 100 *
N_schetchik № счетчика Числовой Длинное целое
Nast_Pokaz Настоящие показания Числовой Длинное целое
Phider Фидер Текстовый 50
Adres Адрес Текстовый 240
Tel Телефон Текстовый 10
Temp Поле для хранения промежуточной информации Числовой Длинное целое

Таблица "Abonent_Pashod" (таблица 3.4) является подчиненной таблице "Abonent-inf".

Таблица 3.4 - Структрура таблицы "Abonent_Pashod"

Имя поля Описание Тип Размер Ключ
Nomer Номер записи Счетчик Длинное целое *
Name Наименование абонента Текстовый 255
Data Дата Дата Краткий формат даты
Pred_Pokaz Предыдущие показания Числовой Длинное целое
Nast Настоящие показания Числовой Длинное целое
Rashod Расход Числовой Длинное целое
Pokaz_Kontr Показания контрольного съема Числовой Длинное целое
Data_Rasnost Разность между датой отчета и датой контрольного съема в днях Числовой Короткое целое
Day_Rashod Среднесуточный расход Числовой Длинное целое
Ozid_Rashod Ожидаемый расход Числовой Длинное целое
Rasnost_Rashod Разность между отчетом по расходу и ожидаемым расходом Числовой Длинное целое
Phider Фидер Текстовый 50

Таблица 3.5 - Структура таблицы "Bit"

Имя поля Описание Тип Размер Ключ
Phider Фидер Текстовый 50
Data Дата Дата Краткий формат даты
Pokaz Показания Числовой Длинное целое

Итак, спроектировано 5 таблиц базы данных. Для удобства работы две из них следует проиндексировать.

Таблицу "Phider- Rashod" - по полю Name и Data. Индекс по полю Data необходим для фильтрации записей в таблице по дате отчетного месяца. Индекс по полю Name применяется для фильтрации записей по наименованию фидера.

Таблицу "Abonent_Pashod" - по полю Nast для определения записей, которые содержат показания контрольного съема и не содержат данных о показаниях по отчету, и по полям Name и Data.

Связи между таблицами показаны на рисунке 3.7.


Рисунок 3.7 - Структура базы данных.

3.3 Разработка программы ведения учетно-отчетной документации пофидерного анализа

Данная программа написана на языке Delphi, имеет простой графический интерфейс.


Рисунок 3.8 - Главное окно программы

При запуске программы на рабочий стол выводится главное окно, в верхней части которого находится меню для выбора режимов работы. Главное окно программы изображено на рисунке 3.8.

Для начала работы с данной программой необходимо внести данные о фидерах. Для этого в меню "Фидера" необходимо выбрать подменю "Ввод начальных показаний", которое активирует окно "Выбор даты ввода показаний" Вводится дата, которая должна быть последним днем месяца (рисунок 3.9).

Рисунок 3.9 - "Выбор даты ввода показаний"

Дата указывается при помощи компонента DateTimePicker. Окно содержит две кнопки "Далее" и "Отменить".


Рисунок 3.9 - "Ввод начальных показаний"

При нажатии кнопки "Далее" активируется окно "Ввод начальных показаний" (рисунок 3.9).

При активации окна "Ввод начальных показаний" необходимо ввести следующую информацию:

наименование фидера;

номер счетчика;

коэффициент счетчика;

начальные показания.

Начальные показания счетчика конкретного фидера предоставляются инженеру пофидерного анализа в последний день месяца перед отчетным месяцем. Например, при начале работы с программой в январе месяце начальные показания фидеров вносятся за декабрь месяц.

Ввод информации в программе осуществляется при помощи визуального компонента для работы с БД TDBGRID.

Перемещение в ячейках компонента для ввода информации осуществляется при помощи клавиш на клавиатуре "влево - вправо", а для создания новой записи - клавиши "вниз".

После нажатия на кнопку "Сохранить" данные сохраняются.

При нажатии кнопки "Отменить" возвращаемся в главное окно.

При выборе подменю "Ввод показаний" на рабочем столе активируется окно "Ввод ежемесячных показаний на фидерах" (рисунок 3.10).

Данные показания ежемесячно предоставляются инженеру пофидерного анализа в последний день месяца.

Перед активацией данного окна также появляется окно "Выбор даты ввода показаний".

Рисунок 3.10 - "Ввод ежемесячных показаний"

В окне "Ввод ежемесячных показаний" инженер вручную заносит данные в поле "Настоящие показания". Поля "Наименование фидера", "Дата", "Предыдущие показания" заполняются автоматически, а поля "Разность" и "Расход" - высчитываются программным путем.