- •Теоретическая часть
- •Описание предметной области
- •2. Описание постановки задачи
- •2.1 Характеристика задачи
- •2.1.1 Цели и задачи разработки автоматизированной системы
- •1.3. Выбор инструментария для разработки программного продукта
- •2. Проектная часть
- •2.1.6 Условия прекращения автоматизированной обработки
- •2.2 Алгоритм функционирования автоматизированной системы
- •2.3 Организация данных
- •2.5 Выходная информация
- •2.3 Требование к системе
- •2.4 Описание работы программы
2.4 Описание работы программы
Для разработки приложения для работы с базой данной «СТО Западный» была использована среда разработки Borland Delphi 7. Приложение обеспечивает простой, понятный интерфейс ввода данных, а также защищает БД от некорректных данных.
База данных «СТО Западный» предназначена для организаций, занимающихся любыми видами услуг по техническому обслуживанию и ремонту автомобилей. Она позволяет вести учет всех автомобилей, когда-либо находящихся в автосервисе, хранит полную информацию о каждом автомобиле (марка, регистрационный знак, цвет, год выпуска, серийные номера завода-изготовителя и т.п.), позволяет вести учет владельцев автомобилей, которые когда-либо обращались в автосервис. Программа позволяет также распечатать отчет по всем параметрам, интересующим как владельцев автосервиса (информация о владельцах автомобилей, информация об автомобилях, полный отчет по всем заказам либо по заказам за определенный интервал времени), так и его клиентов (расценки на услуги, новые запчасти, сезонные скидки); это позволяет вести отчетность на бумаге.
В БД хранится информация о каждом владельце, о каждом автомобиле, которые хотя бы единожды пользовались услугами автосервиса. Существует возможность хранения не только основной и самой необходимой информации, но и примечаний, уточнений, фотографий владельцев и автомобилей, описания и тех. характеристик устанавливаемых запчастей и много другой полезной информации.
Существует один, на первый взгляд, недостаток, который при постоянном использовании БД характеризует себя с положительной стороны: в данной БД информация об автомобилях и владельцах в исходном состоянии является независимой. Связь владельца с автомобилем отслеживается лишь в процессе оформления заказа, после чего успешно хранится в базе. Это допущение создано с целью предотвращения нестандартных ситуаций, возникающих при существовании у владельца нескольких автомобилей и т.п.
При загрузке базы данных «Автосервис» открывается главная форма, с помощью которой осуществляется полный контроль над базой данных и перемещение по ней.
Диаграмма-отчет
о востребованности услуг, предоставляемых
автосервисом, для проведения соответствующих
расчетов и получения информации для
размышления как для владельцев
автосервиса, так и для его клиентов.
Аналогичная
диаграмма, но по устанавливаемым на
автомобили запчастям.
Просмотр
и печать прайс-листа «Услуги автосервиса».
Функция необходима как для владельцев
автосервиса, так и для его клиентов.
Прайс-лист приведен в приложении к
данному отчету.
Аналогично
прайс-листу «Услуги автосервиса», но
по новым автозапчастям.
Занесение
информации о новом владельце, ранее не
пользовавшимся услугами автосервиса.
Регистрация
нового автомобиля, до сей поры не
замеченного в автосервисе.
Оформление
нового заказа с занесением всей
необходимой информации.
Здесь же есть возможность зарегистрировать новый автомобиль, нового владельца, напечатать отчет по данному заказу (чек), выполнить поиск заказов за определенный интервал времени и т.п.
Просмотр,
редактирование и внесение новых
компонентов в список услуг, которые
предоставляет автосервис.
Аналогично
услугам, но по новым автозапчастям.
ЗАКЛЮЧЕНИЕ
Результатом выполнения дипломного проекта является разработанная автоматизированная система для главного механика на станции технического обслуживания «Западная» (ИП Макаров В. А.). Система позволяет ускорить и автоматизировать деятельность сотрудников станции технического обслуживания.
В ходе выполнения дипломного проектирования произведен анализ структуры станции технического обслуживания. Построена организационная модель объекта автоматизации и сформулированы существующие проблемы. На основе проблем определены цели, задачи и план создания автоматизированной системы, построена ее структура.
Разработанная автоматизированная система главного механика станции технического обслуживания позволит решить ранее выявленные проблемы, а так же снизить временные затраты.
Система в настоящий момент находится на стадии тестирования на станции технического обслуживания ИП Макаров В.А. с последующим внедрением.
СПИСОК ЛИТЕРАТУРЫ
Климова Л.М. Delphi7. Основы программирования. Решение типовых задач. Самоучитель. Издание второе дополненное / Л.М. Климова. – М.: КУДИЦ-ОБРАЗ, 2005. – 480 с.
ПРИЛОЖЕНИЯ
Приложение 1
Исходные тексты
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Image1: TImage;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit4, Unit5, Unit3, Unit6, Unit7, Unit8;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form4.Show;
Form4.Table1.Insert;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Form2.Close;
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm2.Button7Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
Form8.QuickRep3.Preview;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
Dialogs, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, Mask, Buttons;
type
TForm4 = class(TForm)
Table2OrderNum: TIntegerField;
Table2CodeWork: TIntegerField;
Table1OrderNum: TAutoIncField;
Table1CodeAuto: TIntegerField;
Table1CodeOwner: TIntegerField;
Table1ActDate: TDateField;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Panel1: TPanel;
DataSource1: TDataSource;
Panel2: TPanel;
Panel3: TPanel;
Splitter1: TSplitter;
Table1: TTable;
Table2: TTable;
DataSource2: TDataSource;
Table3: TTable;
DataSource3: TDataSource;
Table1Marca: TStringField;
Table1Reg: TStringField;
DBGrid3: TDBGrid;
Table4: TTable;
DataSource4: TDataSource;
Table4OrderNum: TIntegerField;
Table4CodePart: TIntegerField;
DataSource5: TDataSource;
Table5: TTable;
Table6: TTable;
DataSource6: TDataSource;
Table2KindWork: TStringField;
Table4PartName: TStringField;
DataSource7: TDataSource;
Table7: TTable;
Table1Name: TStringField;
Table1LasteName: TStringField;
Table1SecondName: TStringField;
Table6CodePart: TAutoIncField;
Table6PartName: TStringField;
Table6CostPart: TCurrencyField;
Table6Guarantee: TIntegerField;
Table5CodeWork: TAutoIncField;
Table5KindWork: TStringField;
Table5CostWork: TCurrencyField;
Table5PeriodExecution: TIntegerField;
Table5Guarantee: TIntegerField;
Table2CostWork: TCurrencyField;
Table1CostSum: TCurrencyField;
Table4CostPart: TCurrencyField;
Button1: TButton;
Button2: TButton;
Query1: TQuery;
Query1SUMOFCostWork: TCurrencyField;
Query1OrderNum: TIntegerField;
DataSource8: TDataSource;
Table3CodeAuto: TAutoIncField;
Table3Info: TMemoField;
Table3TradeMarkAuto: TStringField;
Table3StateSign: TStringField;
Table3TPassport: TStringField;
Table3ColourAuto: TStringField;
Table3OutputYear: TSmallintField;
Table3MotorNum: TStringField;
Table3BodyNum: TStringField;
Table3UnderCgeNum: TStringField;
Table7CodeOwner: TAutoIncField;
Table7OLastName: TStringField;
Table7OFirstName: TStringField;
Table7OSecondName: TStringField;
Table7OPassportNum: TStringField;
Table7ODrivingLicence: TStringField;
Table7OContactPhone: TStringField;
Table7Info: TMemoField;
Table7Photo: TBlobField;
DBEdit1: TDBEdit;
Button3: TButton;
Label2: TLabel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Table1CalcFields(DataSet: TDataSet);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure Table1AfterInsert(DataSet: TDataSet);
procedure Button3Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit5, Unit6, Unit9;
{$R *.DFM}
procedure TForm4.FormCreate(Sender: TObject);
begin
Table1.Open;
Table2.Open;
//Edit1.Text:=DateToStr(Date);
Label2.Caption:=DateToStr(Date);
end;
procedure TForm4.Table1CalcFields(DataSet: TDataSet);
begin
//Table1CostSum.Value:=Summ(Table2CostWork.Value);
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm4.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
//Query1.Filter:='OrderNum='+ Form4.Table1OrderNum.AsString;
end;
procedure TForm4.Table1AfterInsert(DataSet: TDataSet);
begin
Form4.Table1ActDate.Value:=Date;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Form9.Show;
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls, DB, DBTables;
type
TForm8 = class(TForm)
QuickRep1: TQuickRep;
QuickRep2: TQuickRep;
QuickRep3: TQuickRep;
TitleBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
QRLabel1: TQRLabel;
Table1: TTable;
PageFooterBand1: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRSysData1: TQRSysData;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRSysData2: TQRSysData;
QRLabel6: TQRLabel;
QRDBText4: TQRDBText;
QRLabel7: TQRLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
end.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, DBTables, DB, Grids, DBGrids;
type
TForm9 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Query1: TQuery;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
DataSource2: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
{$R *.dfm}
procedure TForm9.BitBtn1Click(Sender: TObject);
begin
Query1.Params.ParamValues['A']:=DateTimePicker1.Date;
Query1.Params.ParamValues['B']:=DateTimePicker2.Date;
Query1.Close;
Query1.Open;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Table1CodePart: TAutoIncField;
Table1PartName: TStringField;
Table1CostPart: TCurrencyField;
Table1Guarantee: TIntegerField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
