Все операции с таблицами и запросами необходимо искать в DateModule в соответствующих обработчиках событий. Для правильного функционирования программы необходимо перед первым запуском создать псевдоним БД с именем Autoservice, настроить его на каталог с файлами таблиц, выбрать драйвер PARADOX (сделать это можно, например, с помощью программы BDE Administrator). Для поддержки целостности данных при создании связей между таблицами было включено каскадное удаление и обновление.
4. Инструкция пользователю
При загрузке базы данных «Автосервис» открывается главная форма, с помощью которой осуществляется полный контроль над базой данных и перемещение по ней.
Диаграмма-отчет о востребованности услуг, предоставляемых автосервисом, для проведения соответствующих расчетов и получения информации для размышления как для владельцев автосервиса, так и для его клиентов.
Аналогичная диаграмма, но по устанавливаемым на автомобили запчастям.
Просмотр и печать прайс-листа «Услуги автосервиса». Функция необходима как для владельцев автосервиса, так и для его клиентов. Прайс-лист приведен в приложении к данному отчету.
Аналогично прайс-листу «Услуги автосервиса», но по новым автозапчастям.
Занесение информации о новом владельце, ранее не пользовавшимся услугами автосервиса.
Регистрация нового автомобиля, до сей поры не замеченного в автосервисе.
Оформление нового заказа с занесением всей необходимой информации.
Здесь же есть возможность зарегистрировать новый автомобиль, нового владельца, напечатать отчет по данному заказу (чек), выполнить поиск заказов за определенный интервал времени и т.п.
Просмотр, редактирование и внесение новых компонентов в список услуг, которые предоставляет автосервис.
Аналогично услугам, но по новым автозапчастям.
6. Исходные тексты
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;
procedure TForm2.Button2Click(Sender: TObject);
Form4.Show;
Form4.Table1.Insert;
procedure TForm2.Button3Click(Sender: TObject);
Form5.Show;
procedure TForm2.Button4Click(Sender: TObject);
Form3.Show;
procedure TForm2.Button5Click(Sender: TObject);
Form2.Close;
procedure TForm2.Button6Click(Sender: TObject);
Form6.Show;
procedure TForm2.Button7Click(Sender: TObject);
Form7.Show;
procedure TForm2.Button8Click(Sender: TObject);
Form8.QuickRep3.Preview;
end.
unit Unit4;
Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
Dialogs, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, Mask, Buttons;
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;
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;
Label2: TLabel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Table1CalcFields(DataSet: TDataSet);
procedure Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure Table1AfterInsert(DataSet: TDataSet);
{ private declarations }
{ public declarations }
Form4: TForm4;
uses Unit5, Unit6, Unit9;
{$R *.DFM}
procedure TForm4.FormCreate(Sender: TObject);
Table1.Open;
Table2.Open;
//Edit1.Text:=DateToStr(Date);
Label2.Caption:=DateToStr(Date);
procedure TForm4.Table1CalcFields(DataSet: TDataSet);
//Table1CostSum.Value:=Summ(Table2CostWork.Value);
procedure TForm4.Button1Click(Sender: TObject);
procedure TForm4.Button2Click(Sender: TObject);
procedure TForm4.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
//Query1.Filter:='OrderNum='+ Form4.Table1OrderNum.AsString;
procedure TForm4.Table1AfterInsert(DataSet: TDataSet);
Form4.Table1ActDate.Value:=Date;
procedure TForm4.Button3Click(Sender: TObject);
Form9.Show;
unit Unit8;
Dialogs, QuickRpt, QRCtrls, ExtCtrls, DB, DBTables;
TForm8 = class(TForm)
QuickRep1: TQuickRep;
QuickRep2: TQuickRep;
QuickRep3: TQuickRep;
TitleBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
QRLabel1: TQRLabel;
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;
Form8: TForm8;
unit Unit9;
Dialogs, StdCtrls, Buttons, ComCtrls, DBTables, DB, Grids, DBGrids;
TForm9 = class(TForm)
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
procedure BitBtn1Click(Sender: TObject);
Form9: TForm9;
procedure TForm9.BitBtn1Click(Sender: TObject);
Query1.Params.ParamValues['A']:=DateTimePicker1.Date;
Query1.Params.ParamValues['B']:=DateTimePicker2.Date;
Query1.Close;
Query1.Open;
unit Unit1;
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;
TForm1 = class(TForm)
Table1CodePart: TAutoIncField;
Table1PartName: TStringField;
Table1CostPart: TCurrencyField;
Table1Guarantee: TIntegerField;
Form1: TForm1;
Страницы: 1, 2