Курсовые работы / ПРИС КП_4
.pdfElse 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