Скачиваний:
11
Добавлен:
17.06.2023
Размер:
3.25 Mб
Скачать

Else Order:='order by '+Column.FieldName; CommandText:=S+' '+Order;

Open;

End;

end;

end.

Листинг В.3 – модуль «Выбор автомобиля»

unit UnitformAutomobileSelect;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls,UnitDM;

type

TformAutomobileSelect = class(TForm) G: TDBGrid;

dbModel: TADODataSet; dsModel: TDataSource; Panel1: TPanel; Button2: TButton; Button1: TButton; Panel2: TPanel; Label1: TLabel; Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Button3: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject);

procedure Button3Click(Sender: TObject); private

{Private declarations } public

aID:Integer;

aValue:string;

{Public declarations }

end;

implementation

{$R *.dfm}

procedure TformAutomobileSelect.Button3Click(Sender: TObject); var

S:String; begin

dbModel.Close;

If (Edit1.Text<>'') Or (Edit2.Text<>'') Then begin If (Edit1.Text<>'') And (Edit2.Text<>'') then

S:='manufaktured_name like "%'+Edit1.Text+'%" and model_name like "%'+Edit2.Text+'%"'

Else

72

If Edit1.Text<>'' Then S:='manufaktured_name like "%'+Edit1.Text+'%"' Else S:='model_name like "%'+Edit2.Text+'%"'; dbModel.CommandText:='select * from v_auto_select where '+S;

end Else dbModel.CommandText:='select * from v_auto_select'; dbModel.Open;

end;

procedure TformAutomobileSelect.FormClose(Sender: TObject; var Action: TCloseAction);

begin

If dbModel.Active Then Begin aID:=dbModel.FieldByName('id').AsInteger; aValue:=dbModel.FieldByName('manufaktured_name').AsString+':

'+dbModel.FieldByName('model_name').AsString; dbModel.Close;

End Else If ModalResult=mrOk Then Action:=caNone; end;

procedure TformAutomobileSelect.FormCreate(Sender: TObject); begin

G.OnTitleClick:=DM.onSort;

dbModel.Open;

end;

end.

Листинг В.4 – модуль «Словарь автомобилей»

unit UnitformAutos;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBCtrls, ExtCtrls, Grids, DBGrids,UnitDM, DB, ADODB, StdCtrls;

type

TformAutos = class(TForm) dsMnf: TDataSource; dsModel: TDataSource; dbMnf: TADODataSet; grp1: TGroupBox; dbgrd1: TDBGrid; dbnvgr1: TDBNavigator; GroupBox1: TGroupBox; DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator; dbModel: TADODataSet; Panel1: TPanel;

spl1: TSplitter; Button1: TButton;

procedure dbModelNewRecord(DataSet: TDataSet); procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure dbMnfBeforeEdit(DataSet: TDataSet);

procedure dbMnfAfterPost(DataSet: TDataSet); procedure dbMnfBeforeDelete(DataSet: TDataSet); procedure dbModelAfterPost(DataSet: TDataSet);

73

procedure dbModelBeforeEdit(DataSet: TDataSet); procedure dbModelBeforeDelete(DataSet: TDataSet);

private

{Private declarations } public

{Public declarations }

end;

implementation

{$R *.dfm}

procedure TformAutos.dbMnfAfterPost(DataSet: TDataSet); begin

DM.TWStop('dic_auto_manufaktured',DataSet.FieldByName('id').AsInteger); end;

procedure TformAutos.dbMnfBeforeDelete(DataSet: TDataSet); begin

if not DM.TWStart('dic_auto_manufaktured',DataSet.FieldByName('id').AsInteger) then Abort;

end;

procedure TformAutos.dbMnfBeforeEdit(DataSet: TDataSet); begin

if not DM.TWStart('dic_auto_manufaktured',DataSet.FieldByName('id').AsInteger) then Abort;

end;

procedure TformAutos.dbModelAfterPost(DataSet: TDataSet); begin

DM.TWStop('dic_auto_model',DataSet.FieldByName('id').AsInteger); end;

procedure TformAutos.dbModelBeforeDelete(DataSet: TDataSet); begin

If not DM.TWStart('dic_auto_model',DataSet.FieldByName('id').AsInteger) Then Abort;

end;

procedure TformAutos.dbModelBeforeEdit(DataSet: TDataSet); begin

If not DM.TWStart('dic_auto_model',DataSet.FieldByName('id').AsInteger) Then Abort;

end;

procedure TformAutos.dbModelNewRecord(DataSet: TDataSet); begin

dbModel.FieldByName('manufaktured_id').AsVariant:=dbMnf.FieldByName('id').As Variant;

end;

procedure TformAutos.FormClose(Sender: TObject; var Action: TCloseAction); begin

dbMnf.Active:=False;

74

dbModel.Active:=False;

Action:=caFree;

end;

procedure TformAutos.FormCreate(Sender: TObject); begin

dbgrd1.OnTitleClick:=DM.onSort;

DBGrid1.OnTitleClick:=DM.onSort;

dbMnf.Active:=True;

dbModel.Active:=True;

end;

end.

Листинг В.5 – модуль «Выбор клиента»

unit UnitformCustomerSelect;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, ExtCtrls, Grids, DBGrids,UnitDM;

type

TformCustomerSelect = class(TForm) G: TDBGrid;

Panel1: TPanel;

Button2: TButton;

Button1: TButton;

Panel2: TPanel;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit; Button3: TButton; dbModel: TADODataSet; dsModel: TDataSource;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button3Click(Sender: TObject);

private

{ Private declarations } public

aID:Integer;

end;

implementation

{$R *.dfm}

procedure TformCustomerSelect.Button3Click(Sender: TObject); var

S:String; begin

dbModel.Close;

If (Edit1.Text<>'') Or (Edit2.Text<>'') Then begin

75

If (Edit1.Text<>'') And (Edit2.Text<>'') then S:='uppercase(customer_name) like "%'+AnsiUpperCase(Edit1.Text)+'%" and

uppercase(customer_address) like "%'+AnsiUpperCase(Edit2.Text)+'%"' Else

If Edit1.Text<>'' Then S:='uppercase(customer_name) like "%'+AnsiUpperCase(Edit1.Text)+'%"'

Else S:='uppercase(customer_address) like "%'+AnsiUpperCase(Edit2.Text)+'%"';

dbModel.CommandText:='select * from customer where '+S; end Else dbModel.CommandText:='select * from customer'; dbModel.Open;

end;

procedure TformCustomerSelect.FormClose(Sender: TObject; var Action: TCloseAction);

begin

If dbModel.Active Then Begin aID:=dbModel.FieldByName('id').AsInteger; dbModel.Close;

End Else If ModalResult=mrOk Then Action:=caNone;

end;

procedure TformCustomerSelect.FormCreate(Sender: TObject); begin

G.OnTitleClick:=DM.onSort;

dbModel.Open;

end;

end.

Листинг В.6 – модуль «Обслуживание клиента»

unit UnitformCustomerService;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,UnitDM, DB, ADODB, Mask, DBCtrls, Grids,

DBGrids;

type

TformCustomerService = class(TForm) GroupBox1: TGroupBox;

Panel1: TPanel;

Panel2: TPanel;

Button1: TButton;

Button3: TButton;

Panel3: TPanel;

Button6: TButton;

Button8: TButton;

Label1: TLabel;

Label2: TLabel;

Button2: TButton;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit; dbCustomer: TADODataSet;

76

dsCustomer: TDataSource; GroupBox2: TGroupBox;

G: TDBGrid; Panel4: TPanel; Button4: TButton; Button5: TButton;

dsAuto: TDataSource; dbAuto: TADODataSet; lbl1: TLabel; DBEdit3: TDBEdit; DBEdit4: TDBEdit; Label3: TLabel; Label4: TLabel; DBEdit5: TDBEdit; Label5: TLabel; DBEdit6: TDBEdit; Button7: TButton; Button9: TButton; grp1: TGroupBox; GroupBox3: TGroupBox; GroupBox4: TGroupBox; G1: TDBGrid;

Panel5: TPanel; Button10: TButton; Button11: TButton; Button12: TButton; Button13: TButton; Label6: TLabel; Label7: TLabel; Label8: TLabel; Button14: TButton; Button15: TButton; Label9: TLabel; Label10: TLabel; Label11: TLabel; dbTO: TADODataSet; dsTO: TDataSource;

procedure Button2Click(Sender: TObject); procedure dbCustomerAfterPost(DataSet: TDataSet); procedure dbCustomerBeforeEdit(DataSet: TDataSet);

procedure dbCustomerBeforeInsert(DataSet: TDataSet); procedure Button3Click(Sender: TObject);

procedure dbCustomerAfterOpen(DataSet: TDataSet); procedure dbCustomerAfterClose(DataSet: TDataSet); procedure Button8Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button6Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure dbCustomerBeforeClose(DataSet: TDataSet);

procedure Button7Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure dbAutoBeforeEdit(DataSet: TDataSet); procedure dbAutoAfterOpen(DataSet: TDataSet); procedure dbAutoBeforeClose(DataSet: TDataSet); procedure dbAutoAfterClose(DataSet: TDataSet); procedure dbAutoAfterPost(DataSet: TDataSet); procedure Button9Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure dbAutoNewRecord(DataSet: TDataSet); procedure dbAutoBeforeInsert(DataSet: TDataSet);

77

procedure GDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

procedure dbAutoAfterScroll(DataSet: TDataSet); procedure Button15Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure dbTOAfterPost(DataSet: TDataSet); procedure dbTOBeforeEdit(DataSet: TDataSet); procedure dbTOAfterOpen(DataSet: TDataSet); procedure dbTOAfterClose(DataSet: TDataSet); procedure Button10Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button11Click(Sender: TObject);

procedure dbCustomerBeforeDelete(DataSet: TDataSet); procedure FormCreate(Sender: TObject);

procedure dbAutoBeforeDelete(DataSet: TDataSet); procedure dbTOBeforeDelete(DataSet: TDataSet);

private GBOid:Integer;

procedure GetGBOInfo;

public

{ Public declarations } end;

implementation

Uses UnitformCustomerSelect,UnitformAutomobileSelect,UnitformLPGDSelect; {$R *.dfm}

procedure TformCustomerService.Button10Click(Sender: TObject); begin

dbTO.Post;

end;

procedure TformCustomerService.Button11Click(Sender: TObject); Var

Dt,Pr:string; begin

Dt:=InputBox('Укажите дату TO','Дата TO',DateToStr(Date)); if Dt<>'' then

With DM.QW Do Begin SQL.Clear;

SQL.Add('select price from v_LPG_TO_price_select where '); SQL.Add(' (date_from<=CDate("'+Dt+'")) AND (iif(date_to is

null,cDate("01.01.2500"),date_to)>CDate("'+Dt+'"))'); SQL.Add(' and id=:i');

Parameters.ParamByName('i').Value:=dbTO.Parameters.ParamByName('id').Value; // Parameters.ParamByName('d').Value:=Dt;

Open;

Pr:=InputBox('Укажите стоимость установки','Текущая стоимость',FieldByName('price').AsString);

If Pr<>'' Then

With DM.QW Do Begin SQL.Clear; SQL.Add('insert into

customer_LPG_device_TO(date_TO,customer_LPG_device_id,full_price)'); SQL.Add('values(:d,:id,:p)'); Parameters.ParamByName('d').Value:=dt;

78

Parameters.ParamByName('id').Value:=dbTO.Parameters.ParamByName('id').Value; Parameters.ParamByName('p').Value:=Pr;

ExecSQL;

dbTO.Close;

dbTO.Open;

end;

end;

end;

procedure TformCustomerService.Button12Click(Sender: TObject); begin

dbTO.Delete;

end;

procedure TformCustomerService.Button13Click(Sender: TObject); begin

dbTO.Edit;

end;

procedure TformCustomerService.Button14Click(Sender: TObject); Var

Dt,Pr:string;

formLPGDSelect: TformLPGDSelect; begin

Dt:=InputBox('Укажите дату установки','Дата установки',DateToStr(Date)); if Dt<>'' then begin

formLPGDSelect:=TformLPGDSelect.Create(Self,dbAuto.FieldByName('auto_model_i d').AsInteger,Dt);

formLPGDSelect.ShowModal;

If formLPGDSelect.ModalResult=mrOk Then begin Pr:=InputBox('Укажите стоимость установки','Текущая

стоимость',CurrToStr(formLPGDSelect.aPrice)); If Pr<>'' Then

With DM.QW Do Begin SQL.Clear;

SQL.Add('delete customer_LPG_device where customer_auto_id=:id;'); Parameters.ParamByName('id').Value:=dbAuto.FieldByName('id').AsInteger; SQL.Clear;

SQL.Add('insert into customer_LPG_device(customer_auto_id,LPG_device_id,Install_date,full_price)' );

SQL.Add('values(:cid,:lid,:id,:p)');

Parameters.ParamByName('cid').Value:=dbAuto.FieldByName('id').AsInteger; Parameters.ParamByName('lid').Value:=formLPGDSelect.aID; Parameters.ParamByName('id').Value:=Dt; Parameters.ParamByName('p').Value:=Pr;

ExecSQL;

GetGBOInfo;

end;

end;

formLPGDSelect.Free;

end;

end;

procedure TformCustomerService.Button15Click(Sender: TObject); begin

79

If MessageDlg('Вы уверены, что ходите удалить все данные?',mtConfirmation,[mbOk],0)=mrOk Then

If DM.TWStart('customer_LPG_device',GBOid) Then With DM.Qw Do Begin

SQL.Clear;

SQL.Add('delete from customer_LPG_device where customer_auto_id=:id;'); Parameters.ParamByName('id').Value:=dbAuto.FieldByName('id').AsInteger; ExecSQL;

SQL.Add('delete from customer_LPG_device_TO where customer_LPG_device_id=:id;');

Parameters.ParamByName('id').Value:=GBOid; ExecSQL;

GetGBOInfo;

end;

end;

procedure TformCustomerService.Button1Click(Sender: TObject); begin

if not dbCustomer.Active Then dbCustomer.Open; dbCustomer.Insert;

End;

procedure TformCustomerService.Button2Click(Sender: TObject); begin

If dbCustomer.State in [dsEdit,dsInsert] Then dbCustomer.Post; end;

procedure TformCustomerService.Button3Click(Sender: TObject); begin

dbCustomer.Delete;

dbCustomer.Close;

end;

procedure TformCustomerService.Button4Click(Sender: TObject); Var

F:TformAutomobileSelect; begin

if dbAuto.Active Then begin F:=TformAutomobileSelect.Create(Self);

F.ShowModal;

If F.ModalResult=mrOk then begin dbAuto.Insert;

dbAuto.FieldByName('auto_model_id').AsInteger:=F.aID; end;

F.Free;

end;

end;

procedure TformCustomerService.Button5Click(Sender: TObject); begin

dbAuto.Edit;

end;

procedure TformCustomerService.Button6Click(Sender: TObject); var

formCustomerSelect: TformCustomerSelect; begin

formCustomerSelect:=TformCustomerSelect.Create(Self);

formCustomerSelect.ShowModal;

If formCustomerSelect.ModalResult=mrOk Then Begin

80

If dbCustomer.Active then dbCustomer.Close; dbCustomer.Parameters.ParamByName('id').Value:=formCustomerSelect.aID; dbCustomer.Open;

dbAuto.Open;

End;

formCustomerSelect.Free;

end;

procedure TformCustomerService.Button7Click(Sender: TObject); begin

If dbAuto.State in [dsEdit] Then dbAuto.Post; If dbAuto.State in [dsInsert] Then begin

dbAuto.Post;

dbAuto.Close;

dbAuto.Open;

end;

end;

procedure TformCustomerService.Button8Click(Sender: TObject); begin

dbCustomer.Edit;

end;

procedure TformCustomerService.GetGBOInfo; begin

With DM.QW Do Begin SQL.Clear;

SQL.Add('select * from v_customer_LPG_device where customer_auto_id=:i;'); Parameters.ParamByName('i').Value:=dbAuto.FieldByName('id').AsInteger; Open;

If RecordCount>0 Then begin label9.Caption:=FieldByName('manufakture_name').AsString+':

'+FieldByName('model_name').AsString; label9.Font.Color:=clGreen; label10.Caption:=FieldByName('Install_date').AsString; label10.Font.Color:=clGreen; label11.Caption:=FieldByName('full_price').AsString; label11.Font.Color:=clGreen;

Button14.Enabled:=False;

Button15.Enabled:=True; dbTO.Parameters.ParamByName('id').Value:=FieldByName('id').AsInteger; GBOid:=FieldByName('id').AsInteger;

dbTO.Open; end Else Begin

label9.Caption:='<Нет данных>'; label9.Font.Color:=clRed; label10.Caption:=label9.Caption; label10.Font.Color:=label9.Font.Color; label11.Caption:=label9.Caption; label11.Font.Color:=label9.Font.Color; Button14.Enabled:=True; Button15.Enabled:=False;

dbTO.Close;

GBOid:=0;

End;

Close;

End;

end;

procedure TformCustomerService.Button9Click(Sender: TObject); begin

With DM.QW Do Begin

81

Соседние файлы в папке Курсовые работы