Реализация проекта в программной среде Delphi 5

База данных – это организованная структура, предназначенная для хранения информации.

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

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

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

Типы данных таблице следующие: текстовые, мемо, числовое, дата, денежный, логические типы.

Производственная практика пройдена мною на частном предприятии “ATM — Express”. Цель данной работы является автоматизация обработки данным по постоянным клиентам с целью упрощения работы персонала с клиентам.

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

Мая задача облегчить и ускорить работу менеджера с клиентами.

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

Изложение задачи

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

В данной задаче существует два наиболее значимых объекта:

  • отправитель,
  • получатель.

Отправитель, как правило, имеет:

  • наименование организации,
  • адрес расположения организации,
  • номер счета.

В качестве получателя может быть любой деловой партнер и имеет

ряд свойств:

  • наименование организации,
  • адрес.

Помимо выше перечисленных свойств отправителя и получателя в квитанции содержится, собственны свойства:

  • номер,
  • вид платежа,
  • дата отправки,
  • стоимость отправки,
  • количество мест отправки,
  • вес отправки,
  • название отправки (т. е. уточняется, что подлежит отправки).

Отметим, что оплата может производить не только отправитель, но и получатель, т. е. отправитель доставляет груз, его оформляют. А после отправляют по месту расположения получателя. После прихода получатель оплачивает свою посылку. И переводит деньги на указанный счет нашей организации. За предоставленные услуги. После истечения двух – трех дневного срока из банка приходит подтверждение о том, что платежная операция прошла, успешна или, напротив, с указанием причин. В конце каждого месяца приходит выписка, из банка содержащая итоговую сумму за истекший месяц по прошедшим через банк платежам. Эту сумму необходимо сверить со своей. Данная процедура значительно упрощается, если эти отправки хранить в электронном виде и суммирование может производить компьютер.

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

Постановка задачи

В процессе реализации задачи при разработке структуры для хранения данных, первым объектом выступает список данных об отправители.

Как известно запросы к базам данных обрабатывают системы управления базами данных (СУБД), для этих целей из множеств существующих СУБД был выбран Paradox. Paradox использует для хранения каждой таблицы отдельный файл.

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

Структура данных

Чтобы сохранить данные о реквизитах отправителя, была создана база Otprav.db, следующими полями:

Название

 

Тип

Назначение
 

 

ONum

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

OSchet

Строковое поле длиной 10 символов. Номер счета, на который переводит отправитель деньги.

OName

Строковое поле длиной 30 символов. Полные данные отправителя.
OAdr Строковое поле длиной 100 символов. Полный адрес отправителя.
OOtpr Строковое поле длиной 100 символов. Перечень отправляемого груза.
OOest Строковое поле длиной 3 символов. Количество мест которое занимает груз.
OVes Строковое поле длиной 10 символов. Вес отправляемого груза (в килограммах).

Теперь заведем базу для получателя которую назовем Poluch.db. Она имеет следующую структуру:

Название

 

Тип

Назначение

PNum

Поле с неповторяющимися значениями (т.е. номер накладной). Данное поле является ключевым, т. к. содержит уникальную идентификацию записей и служит для точного разделения значений. Каждая запись имеет свой неповторяющийся номер.
PName Строковое поле длиной 30 символов. Полные данные получателя.
PAdr Строковое поле длиной 100 символов. Полный адрес получателя.

Все выше перечисленные базы являются справочными и используются при заполнении основной базы, в корой храниться информация по отправкам. Эта база получила имя Bank.db и состоит из:

Название

 

Тип

Назначение

Date

Дата (день, месяц, год)

 

Дата отправки.
Summa Денежный формат Сумма на которую произведена отправка.
Vid Строковое поле длиной 15 символов. Вид платежа: наличными, переводом на счет.

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

Otprav.db

 

Реквизиты отправителя.

 

Poluch.db

 

Реквизиты получателя.

 
   

Bank.db

 

Банковские реквизиты.

База Otprav.db имеет поле Number целого числового типа, оно содержит номер о квитанции отправки не может быть использовано в качеств ключевого. Так как каждой отправки присваивается свой номер, который в дальнейшем не будет повторяться. Для решения данной проблемы существует много путей решения, но я остановилась на одной:

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

Выбор, обоснование и описание программно инструментальных средств.

Программная реализация данной задачи состоит из девяти модулей: AboutUnit, CPUnit, DMUnit, EditTUnit, ItogUnit, MainUnit, PrUnit, SPOtpUnit, TorgUnit.

Во многих этих моделях используется одни и те же процедуры и функции. Например, процедура LowerCaseRus приобретает все большие буквы в маленькие, это нужно для того, чтобы пользователь не ввел 2 одинаковых клиентов, но разным написанием. Функции LowerCaseRus_string, LowerTovor необходимо для обнаружения ошибки в набранном тексте.

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

Таким образом, при работе с папками требуется несколько нестандартных функций. Например, функция name_p из текущей даты вырезает номер месяца, и год составляет имя для папки (например, 11_2003), тоже делает функция date_pap только для любой даты. Процедура chislo, наоборот, по имени папки возвращает значения месяца и года. А функция date_last определяет соответствие количество дней в месяц для високосного и не високосных годов, что необходимо при проверке данных за месяц (т.е. данных не может быть больше чем дней в месяце). Так же существуют функции подсчета количества имеющихся папок в директории и проверки имен этих папок. Функция find_p осуществляет поиск необходимой папки в текущей директории.

Работа с папками ведется во всех модулях, поэтому описанные процедуры и функции имеют применение очень часто.

Модуль MainUnit здесь используется все основные процедуры и функции, а кроме того процедуры предназначенные для работы с резервной папкой, такие как: find_p_rez – предназначена для поиска резервной папки, rezerv – копирование всех существующих папок в Rez.

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

Модуль SPOtpUnit никаких основных задач не выполняет. Здесь происходит вызов окна ввода данных.

Модуль EditTUnit. Основной функцией здесь является функция proverka – проверяется, если у нас в данных такой отравитель.

Модуль TorgUnit работает с отправкой нужных данных в имеющейся таблице. Событие DTPChange – изменение числа, месяца, года, а значит, происходит изменение путей к нужной папке и базе по приходу. Но с измененной датой ввод новых данных приходит к изменению денег в общей кассе, это учитывается процедурой pereschet – здесь происходит пересчет данных от начала месяца до введенных даты. Создание новых записей, как и редактирование уже существующей, вызывают работу формы fmPr_ra. При этом проверяется дата, так как новая или измененная запись влияет на общую сумму в кассе.

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

Модуль PrUnit (заполнение данных о приходе). Здесь используются все основные процедуры и функции, кроме того процедуры проверки запоминания полей необходимых для дальнейшей работы (количество отправок, сумма на которую произведены отправки). Проверка корректности данных. Процедура add_otpr – проверяет, существует ли такой у нас отправитель в базе, если нет то добавляет его в базу отправитель, а если есть то используем процедуру add_t – выводит все имеющиеся данные по отправителю.

Модуль ItogUnit (вывод итоговых данных). В этом модуле в основном производится вывод всех необходимых данных из соответствующих баз в предназначенные для того таблицы.

Реализация проекта в программной среде Delphi

Пользовательский интерфейс построен в соответствии с классическими требованиями и правилами системы Windows, правилами системы Delphi. Основными задачами при построении интерфейса были: простота, удобство.

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

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

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

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

Непосредственно ввод данных о получателе осуществляется в отдельном окне “Получатель”, где пользователь представляется возможность заполнения каждого из предложенного полей. Кнопка «Запись» осуществляет запись в базу данных Получатель.

Процесс редактирования данных происходит в том же самом окне, при нажатии на кнопку «Исправить», в этом же окне происходит уведомление пользователя о недопустимых ошибках. Кнопка «Удалить» позволяет удалить запись из базы Получатель.

При необходимости упорядочивания данных, по какому – либо из полей, был предусмотрен выплывающий список выбора параметров сортировки. И, наконец, для завершения работы с формой “Получатель”, достаточно нажать кнопку «Выход», или кнопку закрытия окна, и пользователь попадает на форму главного меню.

Пункт меню “Отправитель”, вызывает работу окна «Отправитель», непосредственно с которым пользователю и придется иметь дело. Данное окно имеет почти такой же интерфейс, как и окно «Получателя». Здесь так де, для добавления новой записи в базу, необходимо нажать на кнопку «Новое», после чего появится окно заполнения полей записи для соответствующей базы. Если какие-то данные не устраивают пользователя, то он может изменить их по своему усмотрению.

Изменения данных можно производить как во время добавления новой записи в базу, так и при редактировании уже существующих данных (кнопка «Изменить»), а все изменения будут сохранены после нажатия на кнопку «Записать». Удаление записи из соответствующей базы происходит при нажатии на кнопку «Удалить».

При выводе итога для пункта «Начало дня» происходит вывод данных об отправках, произведенных на начало дня за выбранную дату. Если же убрать ‘птичку’ в окне «За выбранную дату», то будет выводиться все данные на начало дня текущей даты.

Так де как и в окне «Получатель» , здесь тоже предусмотрена сортировка данных по каждому из имеющихся полей. В любой момент результаты сортировки можно отменить, нажав на кнопку « отменить сортировку».

В любой момент работы можно просматривать итоговые результаты по введенным данным. По нажатию кнопки “Итоги” появляется соответствующее окно, в котором осуществляется вывод итоговых результатов за указанный период времени. По умолчанию устанавливается текущая дата. А значит, выводятся на действительное число. Можно установить какой-то определенный отрезок времени, Тогда будет осуществляться вывод данных за данный период.

По нажатию на кнопку “По всем отправителям”, происходит вывод данных по всем имеющимся отправкам за указанный промежуток времени. Данные выводятся в две таблице. Первая таблица – таблица отправителя. Вторая – получателя. Под таблицей выводятся количества отправок и общая сумма, на которую произведены отправки.

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

Пункт меню “Справка” содержит пункт вызова справки и сведения о программе.

Пункт меню “Выход” – завершает работу с данной программой.

Инсталляция программы 

Для установки программы на компьютер пользователя используется процесс инсталляции. Создания инсталлятора было необходимо потому, что компьютер пользователя не содержал некоторых системных файлов и баз, необходимых при работе с Delphi. А так как программа написана на этом языке и имеет дело с базами, то и работа без этих файлов была невозможна. Поэтому было необходимо либо установить на компьютер пользователя либо саму программу Delphi, либо создать инсталлятор с помощью InstallShield Express Forr Delphi 5 включить необходимые базы в процессе инсталляции.

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