Автор работы: Пользователь скрыл имя, 27 Ноября 2014 в 10:34, курсовая работа
Принцип устойчивости заключается в том, что система АРМ должна выполнять основные функции независимо от воздействия на нее внутренних и внешних возможных факторов. Это значит, что неполадки в отдельных ее частях должны быть легко устранимы, а работоспособность системы – быстро восстановима.
Эффективность АРМ следует рассматривать как интегральный показатель уровня реализации приведенных выше принципов, отнесенного к затратам по созданию и эксплуатации системы.
Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro 2.x, а посредством технологии ODBC – и к файлам многих других форматов.
Access может выступать как в роли OLE контролера, так и ОЕЕ сервера. Это значит, что вы можете контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот.
Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.
Пользователям, малознакомым с понятиями реляционных баз данных, Access дает возможность разделять свои сложные по структуре таблицы на несколько, связанных по ключевым полям.
Опишем сущности и атрибуты.
Таблица 2.1. Сущность Заказчик
Поле |
Тип поля |
Код_заказчика |
Счетчик |
ФИО |
Строковый [25] |
Адрес |
Строковый [25] |
Телефон |
Строковый [15] |
Таблица 2.2. Сущность Разносчик
Поле |
Тип поля |
Код_разносчика |
Счетчик |
ФИО |
Строковый [25] |
Телефон |
Строковый [15] |
Таблица 2.3. Сущность Товар
Поле |
Тип поля |
Код_товара |
Счетчик |
Наименование |
Строковый [25] |
Группа |
Строковый [15] |
Цена |
Числовой |
Таблица 2.4. Сущность Журнал
Поле |
Тип поля |
Код_журнала |
Счетчик |
Заказчик |
Числовой |
Разносчик |
Числовой |
Сумма |
Числовой |
Дата |
Дата |
Таблица 2.5. Сущность Детализация
Поле |
Тип поля |
Код_детализации |
Счетчик |
Журнал |
Числовой |
Товар |
Числовой |
Количество |
Числовой |
Физическая модель, разработанная в MS Access, представлена на рис. 2.1.
Рис. 2.1. Физическая модель
Серверная часть в данном курсовой проекте представлена базой данных MS Access bd.mdb.
База данных хранит все данные, необходимые для работы разрабатываемой системы.
Для связи сервера и клиента используется технология ADO.
Технология ADO является моделью доступа к базам данных и представляет собой объектно-ориентированный интерфейс для технологии доступа к данным OLE DB.
ADO поддерживает ключевые
возможности для построения
Рис. 3.1. Таблицы базы данных
Клиентская часть разработана в Delphi 7 и представляет собой интерфейс пользователя с функциями для управления базой данных.
Опишем основные алгоритмы клиентской части.
Алгоритм работы со справочниками.
Рис. 3.2. Схема алгоритма добавления и редактирования данных
Исходный код:
procedure TForm3.Button2Click(Sender: TObject);
begin
if Edit1.Text='' then
begin
showmessage('Введите ФИО!');
Edit1.SetFocus;
exit;
end;
if Edit2.Text='' then
begin
showmessage('Введите Адрес!');
Edit2.SetFocus;
exit;
end;
if Edit3.Text='' then
begin
showmessage('Введите телефон!'
Edit3.SetFocus;
exit;
end;
if Form3.Caption='Добавление' then
Form2.ADOQuery1.Insert
else
Form2.ADOQuery1.Edit;
Form2.ADOQuery1.FieldValues['
Form2.ADOQuery1.FieldValues['
Form2.ADOQuery1.FieldValues['
Form2.ADOQuery1.UpdateRecord;
Form2.ADOQuery1.Last;
Form2.ADOQuery1.First;
Button1Click(Sender);
end;
Рис. 3.3. Схема алгоритма удаления данных
Исходный код:
procedure TForm2.Button3.Click(Sender: TObject);
begin
with Application do
begin
if MessageBox('Вы хотите удалить запись?', 'Удаление', MB_OKCANCEL)=IDOK then
ADOQuery1.Delete;
end;
end;
В разрабатываемой системе использовались SQL-запросы для получения данных.
SQL запросы обычно выполняют следующие задачи:
Примеры использования SQL-запросов:
ADOQuery1.SQL.Clear;
st:='SELECT Журнал.Код_журнала, Заказчики.ФИО, Разносчики.ФИО, Журнал.Сумма, Журнал.Дата ';
st:=st+'FROM Журнал,Заказчики, Разносчики
WHERE (Журнал.Заказчик=Заказчики.
st:=st+'(Журнал.Разносчик=
ADOQuery1.SQL.Add(st);
ADOQuery1.Open;
st:='SELECT Товары.Наименование, Детализация.Количество FROM Детализация, Товары ';
st:=st+'WHERE (Товары.Код_товара=
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(st);
ADOQuery2.Open;
При запуске программы на выполнение на экран выводится главная форма программы.
Главная форма программы содержит пользовательское меню:
Также на форме находится таблица журнал заказов с сортировкой по дате и детализация заказа, в которой приводится список продуктов.
Главная форма представлена на рис. 4.1.
Рис. 4.1. Главная форма программы
Рассмотрим работу со справочниками на примере справочника «Заказчики». Форма содержит таблицу с данными и кнопки управления.
Все справочники имеют одинаковые функции:
Форма справочника Заказчиков представлена на рис. 4.2.
Рис. 4.2. Форма справочника Заказчиков
При нажатии кнопки Добавить на экране появится форма с полями для ввода новой записи (рис. 4.3.).
Рис. 4.3. Окно Добавление
Для добавления новой записи необходимо заполнить все поля и нажать кнопку «Сохранить». Если какое-нибудь поле не заполнено, то выдается соответствующее сообщение и предлагается повторить ввод.
Рис. 4.4. Сообщение об ошибке
Кнопка «Отмена» не сохраняет введенные данные и закрывает форму.
Редактирование записи происходит аналогично добавлению, только все поля уже заполнены данными из выбранной записи.
Рис. 4.5. Редактирование записи
После нажатия кнопки «Удаление» программа выдаст запрос на подтверждение удаления записи. После подтверждения запись будет удалена.
Рис. 4.6. Запрос на удаление записи
Рассмотрим технологию добавления заказ в журнал.
На главной форме необходимо нажать кнопку «Добавить», появится форма добавления заказа, рис. 4.7.
Рис. 4.7. Форма добавления заказа
В верхней части формы находится таблица для хранения выбранных товаров, раскрывающийся список с ФИО заказчиков и с ФИО разносчиков, а также выбор даты заказа.
В нижней части формы находится список товаров. Добавление товара в список производится двойным щелчком мыши по строке товара, после этого необходимо указать количество заказываемого товара.
Рис. 4.8. Форма указания количества товара
После нажатия кнопки «Ок» товар добавится в верхнюю таблицу и автоматически изменится сумма заказа.
Рис. 4.9. Результат добавления заказа
После составления списка товаров выбирается заказчик, разносчик и дата. Нажимается кнопка «Сохранить» и данные записываются в базу данных.
Рис. 4.10. Результат добавления заказа
В ходе выполнения курсового проекта была рассмотрена предметная область фирмы по обслуживанию клиентов.
Были определены сущности и атрибуты базы данных, разработаны UML-диаграммы системы. Разработана физическая база данных и клиентское приложение.
Результатом работы стала программа Service.exe, позволяющая вести справочники заказчиков, разносчиков, товаров, формировать заказы и хранить данные о заказах.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, Menus, StdCtrls, DB, ADODB, Grids, DBGrids;
type
TForm1 = class(TForm)
XPManifest1: TXPManifest;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
ADOConnection1: TADOConnection;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Button1: TButton;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit4, Unit6, Unit8;
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
sdr,st:string;
begin
Screen.Cursor := crSQLWait;
sdr:='';
sdr:=sdr+'Provider=Microsoft.
sdr:=sdr+'Password="";';
sdr:=sdr+'User ID=Admin;';
sdr:=sdr+'Data Source='+ ExtractFileDir(Application.
sdr:=sdr+'Mode=ReadWrite;
sdr:=sdr+'Jet OLEDB:System database="";';
sdr:=sdr+'Jet OLEDB:Registry Path="";';
sdr:=sdr+'Jet OLEDB:Database Password="";';
sdr:=sdr+'Jet OLEDB:Engine Type=5;';
sdr:=sdr+'Jet OLEDB:Database Locking Mode=1;';
sdr:=sdr+'Jet OLEDB:Global Partial Bulk Ops=2;';
sdr:=sdr+'Jet OLEDB:Global Bulk Transactions=1;';
sdr:=sdr+'Jet OLEDB:New Database Password="";';
sdr:=sdr+'Jet OLEDB:Create System Database=False;';
sdr:=sdr+'Jet OLEDB:Encrypt Database=False;';
sdr:=sdr+'Jet OLEDB:Compact Without Replica Repair=False;';
sdr:=sdr+'Jet OLEDB:SFP=False';
ADOConnection1.
try
ADOConnection1.Connected:=
ADOQuery1.SQL.Clear;
st:='SELECT Журнал.Код_журнала,Заказчики.
st:=st+'FROM Журнал,Заказчики, Разносчики
WHERE (Журнал.Заказчик=Заказчики.
st:=st+'(Журнал.Разносчик=
ADOQuery1.SQL.Add(st);
ADOQuery1.Open;
DBGrid1.Columns[0].Width:=0;
st:='SELECT Товары.Наименование, Детализация.Количество FROM Детализация, Товары ';
st:=st+'WHERE (Товары.Код_товара=
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(st);
ADOQuery2.Open;
except
showmessage('Ошибка');
end;
screen.Cursor:=crdefault;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form6.ShowModal;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
st:String;
begin
Form8.Caption:='Добавление';
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('SELECT MAX(Код_журнала) AS num FROM Журнал');
Информация о работе Разработка информационной системы для фирмы по обслуживанию клиентов