3. Инструкция программисту
ПО разработано в среде Borland Delphi 6.0.
Все таблицы, запросы находятся в DateModule. Для получения доступа к любой таблице или запросу в этом модуле необходимо просто обратится к нему, а потом и к выбранному элементу. Каждой таблице, приведенной выше, соответствует форма для ввода данных в эту таблицу: Cars.db – CarsForm, Owners.db – OwnersForm, AOrders.db – FormAOrders и т.д. Ввод информации о владельцах, об автомобилях, оформление заказов осуществляется с соответствующих форм, содержащих стандартные элементы управления, связанные с данными в таблице.
Используются следующие основные запросы:
1) Query1 – запрос, на основе которого производится поиск всех заказов, оформленных в период времени с даты «А» по дату «В»:
SELECT OrderNum, CodeAuto, CodeOwner, ActDate, Info
FROM "AOrders.DB" Aorders
Where (ActDate>:A) and (ActDate<:B)
2) Query2 – запрос, на основе которого строится диаграмма процентного соотношения востребованности услуг, производимых автосервисом:
SELECT CodeWork, Count(*) AS CountWork
FROM "OrderWork.DB" Orderwork
GROUP BY CodeWork
3) Query3 – запрос, с помощью которого определяется промежуточная стоимость заказа (стоимость работ, произведенных для данного заказа):
SELECT SUM( Kindofwork.CostWork ), Orderwork.OrderNum
FROM "OrderWork.DB" Orderwork
INNER JOIN "KindOfWork.DB" Kindofwork
ON (Kindofwork.CodeWork = Orderwork.CodeWork)
GROUP BY Orderwork.OrderNum
Кроме указанных выше, также присутствуют и другие аналогичные запросы, с помощью которых производятся различные вычисления, осуществляется параметризованный поиск и т.п.
Все операции с таблицами и запросами необходимо искать в DateModule в соответствующих обработчиках событий. Для правильного функционирования программы необходимо перед первым запуском создать псевдоним БД с именем Autoservice, настроить его на каталог с файлами таблиц, выбрать драйвер PARADOX (сделать это можно, например, с помощью программы BDE Administrator). Для поддержки целостности данных при создании связей между таблицами было включено каскадное удаление и обновление.
4. Инструкция пользователю
При загрузке базы данных «Автосервис» открывается главная форма, с помощью которой осуществляется полный контроль над базой данных и перемещение по ней.
Диаграмма-отчет о востребованности услуг, предоставляемых автосервисом, для проведения соответствующих расчетов и получения информации для размышления как для владельцев автосервиса, так и для его клиентов.
Аналогичная диаграмма, но по устанавливаемым на автомобили запчастям.
Просмотр и печать прайс-листа «Услуги автосервиса». Функция необходима как для владельцев автосервиса, так и для его клиентов. Прайс-лист приведен в приложении к данному отчету.
Аналогично прайс-листу «Услуги автосервиса», но по новым автозапчастям.
Занесение информации о новом владельце, ранее не пользовавшимся услугами автосервиса.
Регистрация нового автомобиля, до сей поры не замеченного в автосервисе.
Оформление нового заказа с занесением всей необходимой информации.
|
Здесь же есть возможность зарегистрировать новый автомобиль, нового владельца, напечатать отчет по данному заказу (чек), выполнить поиск заказов за определенный интервал времени и т.п.
Просмотр, редактирование и внесение новых компонентов в список услуг, которые предоставляет автосервис.
Аналогично услугам, но по новым автозапчастям.
5. Исходные тексты
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.
... 4) Исполнение заказа. На данном этапе работы системы в соответствии с обработанным заказом производится получение недостающих запчастей для ремонта, проверка их качества в соответствии с сопроводительной документацией. Производится ремонт автомобиля и в ходе проведения ремонта выявляются дополнительные неисправности, неучтенные выше, после чего заказ дополняется новыми позициями и в соответствии ...
0 комментариев