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

ПРИЛОЖЕНИЕ Б Листинг программы

Листинг Б.1 -Fmain

unit main; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls,jpeg, ComCtrls, Menus,inifiles; type

TFmain = class(TForm) im1: TImage;

sb1: TStatusBar; MainMenu1: TMainMenu; N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure FormShow(Sender: TObject); procedure N6Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N17Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fmain: TFmain; implementation

uses datm, chPass, NasP, luchr, Podrazd, Oborud, Zakaz, ot; {$R *.dfm}

procedure TFmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

if application.MessageBox(' 'Вы уверены? ','Выход из программы!',mb_yesno+mb_iconquestion)=idyes then

begin dm.ado.Connected:=false; application.Terminate; end

else canclose:=false; end;

procedure TFmain.FormShow(Sender: TObject); begin

if fileexists(ExtractFilePath(Application.ExeName)+'data\photo.jpeg' ) then

begin

im1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)

+'data\photo.jpeg');

end;

end;

procedure TFmain.N6Click(Sender: TObject); begin

closequery;

end;

procedure TFmain.N7Click(Sender: TObject); begin

tmp:=fmain.Caption+#13+#13+#13+

'Разработчик: '+avtor +#13+ 'Группа: '+gruppa+#13+#13+

'CopyRight';

Showmessage(tmp);

end;

procedure TFmain.N4Click(Sender: TObject); var inifile:tinifile;

dbp:string;

s:string;

path1,path2:string; begin

IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'data\optio ns.ini');

DBP := IniFile.ReadString('options', 'DBPath', ''); IniFile.Free;

path1:=ExtractFilePath(Application.ExeName)+'data\Архив\COP Y_DB_'+datetostr(date)+'.mdb';

try copyfile(pchar(DBP),pchar(path1),true); except

end;

if fileexists(path1) then showmessage('Резервная копия создана успешно') else showmessage('Ошибка при создании резервной копии');

end;

procedure TFmain.N3Click(Sender: TObject); begin

fchpass.Caption:=n3.Caption;

fchpass.ShowModal;

end;

procedure TFmain.N9Click(Sender: TObject); begin

dm.np.Connection:=dm.ado;

dm.nps.DataSet:=dm.np;

fnasp.DBGrid1.DataSource:=dm.nps;

dm.np.Active:=false; dm.np.CommandText:='Select * from nasp'; dm.np.Active:=true; fnasp.Caption:=n9.Caption; fnasp.ShowModal;

end;

procedure TFmain.N10Click(Sender: TObject); begin

dm.lu.Connection:=dm.ado;

dm.lus.DataSet:=dm.lu;

fluchr.DBGrid1.DataSource:=dm.lus;

dm.lu.Active:=false;

dm.lu.CommandText:='Select id_lu,nazv_lu,nazv_np,fio_lu,tel_lu,log_lu,kod_np,kod_lu from nasp,luchr where (id_np=id_np_lu)';

dm.lu.Active:=true;

fluchr.Caption:=n10.Caption;

fluchr.ShowModal;

end;

32

procedure TFmain.N11Click(Sender: TObject); begin

dm.pod.Connection:=dm.ado;

dm.pods.DataSet:=dm.pod;

fpodrazd.DBGrid1.DataSource:=dm.pods;

dm.pod.Active:=false;

dm.pod.CommandText:='Select id_pod,nazv_pod,fio_pod,tel_pod,([nazv_lu]&" ("&[nazv_np]&")") as lu,id_lu,kod_lu,kod_pod from podrazd,luchr,nasp where (id_lu=id_lu_pod) and (id_np=id_np_lu)';

dm.pod.Active:=true;

fpodrazd.Caption:=n11.Caption;

fpodrazd.ShowModal;

end;

procedure TFmain.N13Click(Sender: TObject); begin

dm.ob.Connection:=dm.ado;

dm.obs.DataSet:=dm.ob;

foborud.DBGrid1.DataSource:=dm.obs;

dm.ob.Active:=false;

dm.ob.CommandText:='select id_ob,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_ob,st_ob,datav_ob,datap_ob,zn_ob,id_np,id_lu,id_pod, kod_np,kod_lu,kod_pod,rabota_ob from nasp,luchr,podrazd,oborud WHERE (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod = id_pod_ob)'; dm.ob.Active:=true;

Листинг Б.2 – AccessDB

unit AccessDB; interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, Menus,inifiles,datm; function data(data:tdatetime):string; function Update(rs,tab,temp:string):boolean; function Delete(rs,tab,temp:string):boolean;

Procedure Zan(rs,tab,temp:string;tm:integer); Procedure jurnal(mesto,deis:string);

implementation var tmp:string;

tm:integer;

function data (data:tdatetime):string; var g,m,d:word;

begin decodedate(data,g,m,d);

result:=''+currtostr(d)+'/'+currtostr(m)+'/'+currtostr(g)+'';

end;

function Update(rs,tab,temp:string):boolean; begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+temp+')';

dm.temp.Active:=true;

if dm.temp.Fields[0].AsBoolean=true then begin

result:=false; end

else begin

dm.com.CommandText:='Update '+tab+' set log_'+rs+'=TRUE where id_'+rs+'='+temp+'';

dm.com.Execute;

result:=true;

end;

end;

foborud.Caption:=n13.Caption;

foborud.ShowModal;

end;

procedure TFmain.N15Click(Sender: TObject); begin

dm.zk.Connection:=dm.ado;

dm.zks.DataSet:=dm.zk;

fzakaz.DBGrid1.DataSource:=dm.zks;

dm.zk.Active:=false;

dm.zk.CommandText:='Select id_zk,data_zk,count(id_ob) as kol, sum(st_ob) as summa,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]) as podr,nazv_pod,tel_pod from oborud,zakaz,nasp,luchr,podrazd '+

'WHERE (id_zk=id_zk_ob) and (id_np=id_np_lu) and (id_lu=id_lu_pod) and (id_pod=id_pod_zk) GROUP BY id_zk,data_zk,([nazv_np]&", "&[nazv_lu]&", "&[nazv_pod]),nazv_pod,tel_pod ';

dm.zk.Active:=true;

fzakaz.Caption:=n15.Caption;

fzakaz.ShowModal;

end;

procedure TFmain.N17Click(Sender: TObject); begin

fot.Caption:=n17.Caption;

fot.ShowModal;

end;

end.

function Delete(rs,tab,temp:string):boolean; begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+temp+')';

dm.temp.Active:=true;

if dm.temp.Fields[0].AsBoolean=true then begin

result:=false; end

else if application.MessageBox(‘Вы хотите удалить запись

?','Удаление',mb_yesno+mb_iconquestion)=idyes then begin

dm.com.CommandText:='Delete * from '+tab+' where (id_'+rs+'='+temp+')';

dm.com.Execute;

result:=true;

showmessage('Удаление прошло успешно'); end;

end;

Procedure Zan(rs,tab,temp:string;tm:integer); begin

if tm=1 then begin

dm.com.CommandText:='Update '+tab+' set log_'+rs+'=FALSE WHERE (id_'+rs+'='+temp+')';

dm.com.Execute;

end;

end;

Procedure jurnal(mesto,deis:string); begin

{mesto:=stringreplace(mesto,'"','+',[rfReplaceAll, rfIgnoreCase]); dm.com.CommandText:='Insert into jurnal (id_us_j,data_j,time_j,mesto_j,deis_j) values ('+id_us+',date(),time(),"'+mesto+'","'+deis+'")';

dm.com.Execute; } end;

end

Листинг Б.3 – Аluch

33

unit aluchr; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,accessdb; type

TFaLuchr = class(TForm) Label1: TLabel;

e1: TEdit; Button1: TButton; Button2: TButton; cb1: TComboBox; Label2: TLabel; Label3: TLabel; e2: TEdit;

Label4: TLabel; e3: TEdit; Label5: TLabel; e4: TEdit;

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure cb1KeyPress(Sender: TObject; var Key: Char); procedure cb1Change(Sender: TObject);

procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject);

procedure e2KeyPress(Sender: TObject; var Key: Char); procedure e3KeyPress(Sender: TObject; var Key: Char);

private

{Private declarations } public

{Public declarations } end;

var

FaLuchr: TFaLuchr; implementation

uses datm; {$R *.dfm}

procedure TFaLuchr.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin accessdb.Zan('lu','luchr',id_lu,tm); e1.Clear;e2.Clear;e3.Clear; e4.Clear; cb1.Clear;

close;

end;

procedure TFaLuchr.cb1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TFaLuchr.cb1Change(Sender: TObject); begin

if cb1.Text<>'' then begin dm.temp.active:=false;

dm.temp.commandtext:='Select id_Np from nasp where (nazv_np="'+cb1.text+'")';

dm.temp.active:=true; id_np:=dm.temp.fieldbyname('id_np').AsString;

end

else id_np:=''; end;

procedure TFaLuchr.Button2Click(Sender: TObject); begin

closequery;

end;

procedure TFaLuchr.Button1Click(Sender: TObject); begin

if (e1.text='') or (e2.text='') or (e3.text='') or (cb1.Text='') OR

(e4.Text='') then showmessage('Не все поля заполнены')

 

else

 

 

 

 

begin

 

 

 

 

if tm=0 then

 

 

 

 

begin

 

 

 

 

dm.temp.Active:=false;

 

 

 

 

dm.temp.CommandText:='Select

id_lu from

luchr

where

((nazv_lu="'+e1.text+'")

and

(id_np_lu='+id_np+'))

OR

(kod_lu="'+e4.Text+'")';

 

dm.temp.Active:=true;

 

if

dm.temp.RecordCount>0

then

application.MessageBox('Подобная запись уже существует

',pchar(Caption),mb_ok+mb_iconwarning)

 

 

else

 

 

begin

 

 

dm.com.CommandText:='INSERT

INTO

luchr

(nazv_lu,fio_lu,tel_lu,id_np_lu,kod_lu)

 

values

("'+e1.text+'","'+e2.text+'","'+e3.text+'",'+id_np+',"'+e4.Text+'")';

dm.com.Execute;

 

 

 

 

 

application.MessageBox('Добавление прошло успешно

 

',pchar(Caption),mb_ok+mb_iconasterisk);

 

 

 

dm.lu.Requery();

 

 

 

 

 

closequery;

 

 

 

 

 

 

end;

 

 

 

 

 

 

end

 

 

 

 

 

 

else

 

 

 

 

 

 

begin

 

 

 

 

 

 

dm.temp.Active:=false;

 

 

 

 

 

dm.temp.CommandText:='Select

id_lu

from

luchr

where

((nazv_lu="'+e1.text+'")

and

(id_np_lu='+id_np+'))

OR

(kod_lu="'+e4.Text+'")';

 

 

 

 

 

dm.temp.Active:=true;

 

 

 

 

 

if

(dm.temp.RecordCount>0)

 

and

(id_lu<>dm.temp.Fields[0].asstring)

 

 

 

then

application.MessageBox('Подобная запись уже существует

',pchar(Caption),mb_ok+mb_iconwarning)

 

 

 

else

 

 

 

 

 

 

begin

 

 

 

 

 

 

dm.com.CommandText:='UPDATE

luchr

 

SET

nazv_lu="'+e1.text+'",fio_lu="'+e2.text+'",tel_lu="'+e3.text+'",id_ np_lu="'+id_np+'",kod_lu="'+e4.Text+'" WHERE (id_lu='+id_lu+')';

dm.com.Execute; application.MessageBox('Изменение произошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

dm.lu.Requery();

closequery;

end;

end;

end;

end;

procedure TFaLuchr.e2KeyPress(Sender: TObject; var Key: Char); begin

if Key in ['0'..'9'] then key :=#0; end;

procedure TFaLuchr.e3KeyPress(Sender: TObject; var Key: Char); begin

if not (key in['0'..'9', #8]) then Key:=#0; end;

end.

Листинг Б.4 – АNasP

unit aNasP;

TFaNasP = class(TForm)

interface

Label1: TLabel;

uses

e1: TEdit;

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Button1: TButton;

Controls, Forms,

Button2: TButton;

Dialogs, StdCtrls,accessdb;

Label2: TLabel;

type

e2: TEdit;

 

34

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject);

procedure e1KeyPress(Sender: TObject; var Key: Char); private

{Private declarations } public

{Public declarations } end;

var

FaNasP: TFaNasP; implementation uses datm;

{$R *.dfm}

procedure TFaNasP.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin accessdb.Zan('np','nasp',id_np,tm); e1.Clear; e2.Clear;

close;

end;

procedure TFaNasP.Button2Click(Sender: TObject); begin

closequery;

end;

procedure TFaNasP.Button1Click(Sender: TObject); begin

if (e1.text='') OR (e2.Text='') then showmessage('Не все поля

заполнены')

 

 

 

 

else

 

 

 

 

begin

 

 

 

 

if tm=0 then

 

 

 

 

begin

 

 

 

 

dm.temp.Active:=false;

 

 

 

dm.temp.CommandText:='Select id_np

from

nasp

where

(nazv_np="'+e1.text+'") OR (kod_np="'+e2.Text+'")';

 

 

dm.temp.Active:=true;

 

 

 

if

dm.temp.RecordCount>0

 

then

application.MessageBox('Подобная

запись

 

уже

существует',pchar(Caption),mb_ok+mb_iconwarning)

 

else

 

 

 

 

Листинг Б.5 – Аoborud

begin

dm.com.CommandText:='INSERT INTO nasp (nazv_np,kod_np) values ("'+e1.text+'","'+e2.Text+'")';

dm.com.Execute;

application.MessageBox('Добавление прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

dm.np.Requery();

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_np from nasp where (nazv_np="'+e1.text+'") OR (kod_np="'+e2.Text+'")';

dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (id_np<>dm.temp.Fields[0].asstring) then application.MessageBox('Подобная запись уже существует',pchar(Caption),mb_ok+mb_iconwarning)

else begin

dm.com.CommandText:='UPDATE nasp SET nazv_np="'+e1.text+'",kod_np="'+e2.Text+'" WHERE (id_np='+id_np+')';

dm.com.Execute;

application.MessageBox('Изменение прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

dm.np.Requery();

closequery;

end;

end;

end;

end;

procedure TFaNasP.e1KeyPress(Sender: TObject; var Key: Char); begin

if Key in ['0'..'9'] then key :=#0;

end;

end.

unit aoborud;

public

 

 

 

interface

{ Public declarations }

 

 

 

uses

end;

 

 

 

Windows, Messages, SysUtils, Variants, Classes, Graphics,

var

 

 

 

Controls, Forms,

Faoborud: TFaoborud;

 

 

 

Dialogs, ComCtrls, StdCtrls,accessdb,dateutils;

implementation

 

 

 

type

uses datm;

 

 

 

TFaoborud = class(TForm)

{$R *.dfm}

 

 

 

Label1: TLabel;

procedure TFaoborud.Button1Click(Sender: TObject);

 

Label2: TLabel;

begin

 

 

 

Label3: TLabel;

if (e1.text='') or (e2.text='') or (e3.text='') or (cb1.Text='') OR

Label4: TLabel;

(e4.Text='') then showmessage('Не все поля заполнены')

e1: TEdit;

else

 

 

 

Button1: TButton;

begin

 

 

 

Button2: TButton;

try

 

 

 

cb1: TComboBox;

if strtofloat(e3.Text)<1 then

 

 

 

e2: TEdit;

begin

 

 

 

e3: TEdit;

showmessage('Оборудование не может стоить дешевле 1

Label5: TLabel;

р.');

 

 

 

Label6: TLabel;

exit;

 

 

 

dtp1: TDateTimePicker;

end;

 

 

 

dtp2: TDateTimePicker;

except

 

 

 

Label7: TLabel;

showmessage('Ошибка

при

вводе

стоимости

e4: TEdit;

оборудования');

 

 

 

procedure Button1Click(Sender: TObject);

exit;

 

 

 

procedure FormCloseQuery(Sender: TObject; var CanClose:

end;

 

 

 

Boolean);

if (dtp1.Date>incday(date,1)) OR (dtp2.Date>incday(date,1)) OR

procedure Button2Click(Sender: TObject);

(dtp1.Date>dtp2.Date) then

 

 

 

private

begin

 

 

 

{ Private declarations }

showmessage('Ошибка при вводе дат');

 

 

35

exit;

 

 

end.

end;

 

 

 

if tm=0 then

 

 

 

begin

 

 

 

dm.temp.Active:=false;

 

 

dm.temp.CommandText:='Select id_ob

from oborud

where

(nazv_ob="'+e1.text+'") and (zn_ob="'+e2.text+'")';

 

dm.temp.Active:=true;

 

 

if

dm.temp.RecordCount>0

then

application.MessageBox('Подобная

запись

уже

существует',pchar(Caption),mb_ok+mb_iconwarning)

 

else

 

 

 

begin

 

 

 

dm.temp.Active:=false;

 

 

dm.temp.CommandText:='Select id_zk from zakaz WHERE

(id_pod_zk='+id_pod+') and (data_zk=date())';

 

dm.temp.Active:=true;

 

 

if

dm.temp.RecordCount=1

then

id_zk:=dm.temp.Fields[0].AsString

 

 

else

 

 

 

begin

 

 

 

dm.com.CommandText:='Insert

into

zakaz

(id_pod_zk,data_zk) values ('+id_pod+',date())';

 

dm.com.Execute;

 

 

dm.temp.Active:=false;

 

 

dm.temp.CommandText:='select max(id_zk) from zakaz';

dm.temp.Active:=true;

 

 

id_zk:=dm.temp.Fields[0].AsString;

 

 

end;

 

 

 

dm.com.CommandText:='INSERT

INTO

oborud

(nazv_ob,zn_ob,st_ob,datav_ob,datap_ob,id_pod_ob,rabota_ob,id_

zk_ob)

 

 

values

("'+e1.text+'","'+e2.text+'","'+e3.text+'","'+datetostr(dtp1.Date)+'", "'+datetostr(dtp2.Date)+'",'+id_pod+',"'+e4.Text+'",'+id_zk+')';

dm.com.Execute;

application.MessageBox('Добавление прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

//dm.pod.Requery();

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_ob from oborud where (nazv_ob="'+e1.text+'") and (zn_ob="'+e2.text+'")';

dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (id_ob<>dm.temp.Fields[0].asstring) then application.MessageBox('Подобная запись уже существует',pchar(Caption),mb_ok+mb_iconwarning)

else begin

dm.com.CommandText:='UPDATE oborud SET nazv_ob="'+e1.text+'",zn_ob="'+e2.text+'",st_ob="'+e3.text+'",dat av_ob="'+datetostr(dtp1.Date)+'",datap_ob="'+datetostr(dtp2.Date) +'",rabota_ob="'+e4.Text+'" WHERE (id_ob='+id_ob+')';

dm.com.Execute;

application.MessageBox('Изменение прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

dm.ob.Requery();

closequery;

end;

end;

end;

end;

procedure TFaoborud.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin accessdb.Zan('ob','oborud',id_ob,tm); e1.Clear;e2.Clear;e3.Clear; e4.Clear; cb1.Clear;

close;

end;

procedure TFaoborud.Button2Click(Sender: TObject); begin

closequery;

end;

36

Листинг Б.6 – aPodrazd

unit aPodrazd; interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,accessdb; type

TFaPodrazd = class(TForm) Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel; e1: TEdit; Button1: TButton; Button2: TButton; cb1: TComboBox; e2: TEdit;

e3: TEdit; Label5: TLabel; e4: TEdit;

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure e2KeyPress(Sender: TObject; var Key: Char); procedure e3KeyPress(Sender: TObject; var Key: Char);

private

{Private declarations } public

{Public declarations } end;

var

FaPodrazd: TFaPodrazd; implementation

uses datm; {$R *.dfm}

procedure TFaPodrazd.Button1Click(Sender: TObject); begin

if (e1.text='') or (e2.text='') or (e3.text='') or (cb1.Text='') then showmessage('Не все поля заполнены')

else begin

if tm=0 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_pod from podrazd where ((nazv_pod="'+e1.text+'") and (id_lu_pod='+id_lu+')) OR (kod_pod="'+e4.Text+'")';

dm.temp.Active:=true;

if dm.temp.RecordCount>0 then application.MessageBox('Подобная запись уже существует',pchar(Caption),mb_ok+mb_iconwarning)

else begin

dm.com.CommandText:='INSERT INTO podrazd (nazv_pod,fio_pod,tel_pod,id_lu_pod,kod_pod) values ("'+e1.text+'","'+e2.text+'","'+e3.text+'",'+id_lu+',"'+e4.Text+'")';

dm.com.Execute;

application.MessageBox('Добавление прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

//dm.pod.Requery();

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_pod from podrazd where ((nazv_pod="'+e1.text+'") and (id_lu_pod='+id_lu+')) OR (kod_pod="'+e4.Text+'")';

dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (id_pod<>dm.temp.Fields[0].asstring) then application.MessageBox('Подобная запись уже существует',pchar(Caption),mb_ok+mb_iconwarning)

37

else begin

dm.com.CommandText:='UPDATE podrazd SET nazv_pod="'+e1.text+'",fio_pod="'+e2.text+'",tel_pod="'+e3.text+' ",id_lu_pod="'+id_lu+'",kod_pod="'+e4.Text+'" WHERE (id_pod='+id_pod+')';

dm.com.Execute;

application.MessageBox('Изменение прошло успешно',pchar(Caption),mb_ok+mb_iconasterisk);

dm.pod.Requery();

closequery;

end;

end;

end;

end;

procedure TFaPodrazd.Button2Click(Sender: TObject); begin

closequery;

end;

procedure TFaPodrazd.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin accessdb.Zan('pod','podrazd',id_pod,tm); e1.Clear;e2.Clear;e3.Clear; e4.Text:=''; cb1.Clear;

close;

end;

procedure TFaPodrazd.e2KeyPress(Sender: TObject; var Key: Char);

begin

if Key in ['0'..'9'] then key :=#0; end;

procedure TFaPodrazd.e3KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in['0'..'9', #8]) then Key:=#0; end;

end.

Листинг Б.7 – chPass

unit chPass; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls; type

TFchPass = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel;

e1: TEdit; e2: TEdit; e3: TEdit;

Button1: TButton;

Button2: TButton; cb1: TComboBox;

procedure cb1KeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure FormShow(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

FchPass: TFchPass; implementation

uses datm; {$R *.dfm}

procedure TFchPass.cb1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TFchPass.Button2Click(Sender: TObject); begin

closequery;

end;

procedure TFchPass.Button1Click(Sender: TObject); begin

if (e1.Text='') OR (e2.text='') OR (e3.Text='') OR (cb1.text='') then showmessage('Одно из полей не заполнено')

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select * from pass where (pass="'+e1.Text+'") and (login="'+cb1.text+'")';

dm.temp.Active:=true;

if dm.temp.RecordCount=0 then showmessage('Ошибка в текущем пароле')

else begin

if e2.Text=e1.Text then showmessage('Пароли не должны совпадать')

else if e2.Text<>e3.Text then showmessage('Новый пароль и подтверждение должны совпадать')

else begin

dm.com.CommandText:='Update pass SET pass="'+e2.Text+'" where (login="'+cb1.text+'")';

dm.com.Execute; showmessage('Пароль изменен'); closequery;

end;

end;

end;

end;

procedure TFchPass.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

38

e1.Clear;e2.Clear; e3.Clear; close;

end;

procedure TFchPass.FormShow(Sender: TObject); begin

cb1.Clear;

dm.temp.Active:=false;

dm.temp.CommandText:='Select login from pass order by login'; dm.temp.Active:=true;

while not dm.temp.Eof do begin

cb1.Items.Add(dm.temp.Fields[0].AsString);

dm.temp.Next;

end;

end;

end.

Листинг Б.8 – datm

unit datm; interface uses

SysUtils, Classes, DB, ADODB, Dialogs, ExtCtrls; type

Tdm = class(TDataModule) ado: TADOConnection; com: TADOCommand; temp: TADODataSet;

od: TOpenDialog; np: TADODataSet; nps: TDataSource; Timer1: TTimer; lu: TADODataSet; lus: TDataSource; pod: TADODataSet; pods: TDataSource; ob: TADODataSet; obs: TDataSource; zk: TADODataSet; zks: TDataSource;

procedure Timer1Timer(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

dm: Tdm; avtor,gruppa:string; tm:integer; tmp:string;

id_np,id_lu,id_pod,id_ob,id_zk:string; implementation

{$R *.dfm}

procedure Tdm.Timer1Timer(Sender: TObject); var rn:integer;

begin try

if dm.np.Active=true then begin

rn:=np.RecNo;

np.Requery();

np.recno:=rn;

end;

if dm.lu.Active=true then begin

rn:=lu.RecNo;

lu.Requery();

lu.recno:=rn;

end;

if dm.pod.Active=true then begin

rn:=pod.RecNo;

pod.Requery();

pod.recno:=rn;

end;

if dm.ob.Active=true then begin

rn:=ob.RecNo;

ob.Requery();

ob.recno:=rn;

end;

if dm.zk.Active=true then begin

rn:=zk.RecNo;

zk.Requery();

zk.recno:=rn;

end;

except;

end;

end;

end.

39

Листинг Б.9 – luchr

unit luchr; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,accessdb; type

TFluchr = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Panel2: TPanel;

e: TEdit; BitBtn4: TBitBtn; BitBtn5: TBitBtn; BitBtn6: TBitBtn;

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure BitBtn3Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure eChange(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fluchr: TFluchr; implementation

uses datm, aluchr, aPodrazd; {$R *.dfm}

procedure TFluchr.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin e.Clear; end;

procedure TFluchr.BitBtn3Click(Sender: TObject); begin

if dm.lu.RecordCount=0 then showmessage('Записи отсутствуют')

else begin tm:=1;

id_lu:=dm.lu.Fields[0].AsString;

if accessdb.Delete('lu','luchr',id_lu)=false then showmessage('Запись используется другим пользователем')

else dm.lu.Requery(); end;

end;

procedure TFluchr.BitBtn2Click(Sender: TObject); begin

if dm.lu.RecordCount=0 then showmessage('Записи отсутствуют')

else begin tm:=1;

id_lu:=dm.lu.Fields[0].AsString;

if accessdb.Update('lu','luchr',id_lu)=false then showmessage('Запись используется другим пользователем')

else begin

dm.temp.active:=false; dm.temp.CommandText:='select nazv_np from nasp'; dm.temp.active:=true;

While not dm.temp.Eof do begin

faluchr.cb1.items.add(dm.temp.fieldbyname('nazv_np').AsString); dm.temp.next;

end; faluchr.cb1.Text:=dm.lu.fieldbyname('nazv_np').AsString;

40

faluchr.e1.Text:=dm.lu.fieldbyname('nazv_lu').AsString; faluchr.e2.Text:=dm.lu.fieldbyname('fio_lu').AsString; faluchr.e3.Text:=dm.lu.fieldbyname('tel_lu').AsString; faluchr.e4.Text:=dm.lu.fieldbyname('kod_lu').AsString; FaLuchr.cb1Change(Sender); faluchr.Caption:=caption+' :: '+bitbtn2.caption; faluchr.ShowModal;

end;

end;

end;

procedure TFluchr.BitBtn1Click(Sender: TObject); begin

faluchr.Caption:=caption+' :: '+bitbtn1.caption; tm:=0;

dm.temp.active:=false; dm.temp.CommandText:='select nazv_np from nasp'; dm.temp.active:=true;

While not dm.temp.Eof do begin

faluchr.cb1.items.add(dm.temp.fieldbyname('nazv_np').AsString); dm.temp.next;

end;

faluchr.ShowModal;

end;

procedure TFluchr.eChange(Sender: TObject); begin

if e.Text='' then begin dm.lu.Active:=false;

dm.lu.CommandText:='Select id_lu,nazv_lu,nazv_np,fio_lu,tel_lu,log_lu from nasp,luchr where (id_np=id_np_lu)';

dm.lu.Active:=true;

end;

end;

procedure TFluchr.BitBtn4Click(Sender: TObject); begin

dm.lu.Active:=false;

dm.lu.CommandText:='Select id_lu,nazv_lu,nazv_np,fio_lu,tel_lu,log_lu,kod_np,kod_lu from nasp,luchr where (id_np=id_np_lu) and (nazv_lu like "%'+e.Text+'%")';

dm.lu.Active:=true;

end;

procedure TFluchr.BitBtn5Click(Sender: TObject); begin

dm.lu.Active:=false;

dm.lu.CommandText:='Select id_lu,nazv_lu,nazv_np,fio_lu,tel_lu,log_lu,kod_np,kod_lu from nasp,luchr where (id_np=id_np_lu) and (nazv_lu like "%'+e.Text+'%") ORDER BY nazv_np' ;

dm.lu.Active:=true;

end;

procedure TFluchr.BitBtn6Click(Sender: TObject); begin

if dm.lu.RecordCount=0 then showmessage('Записи отсутствуют')

else begin tm:=0;

id_lu:=dm.lu.Fields[0].AsString; fapodrazd.Caption:=caption+' :: '+BitBtn6.Caption; fapodrazd.cb1.text:=dm.lu.fieldbyname('nazv_lu').AsString+'

('+dm.lu.fieldbyname('nazv_np').AsString+')'; fapodrazd.ShowModal;

end;

end;

end.

Листинг Б.10 – NasP

unit NasP; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,accessdb; type

TFNasP = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Panel2: TPanel;

e: TEdit; BitBtn4: TBitBtn; BitBtn5: TBitBtn;

procedure eChange(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

private

{Private declarations } public

{Public declarations } end;

var

FNasP: TFNasP; implementation uses datm, aNasP; {$R *.dfm}

procedure TFNasP.eChange(Sender: TObject); begin

if e.Text='' then begin

dm.np.Active:=false; dm.np.CommandText:='Select * from nasp'; dm.np.Active:=true;

end;

end;

procedure TFNasP.BitBtn4Click(Sender: TObject); begin

dm.np.Active:=false;

dm.np.CommandText:='Select * from nasp WHERE (nazv_np like "%'+e.text+'%")';

dm.np.Active:=true;

end;

procedure TFNasP.BitBtn2Click(Sender: TObject); begin

if dm.np.RecordCount=0 then showmessage('Записи отсутствуют')

else begin tm:=1;

id_np:=dm.np.Fields[0].AsString;

if accessdb.Update('np','nasp',id_np)=false then showmessage('Запись используется другим пользователем')

else begin

fanasp.e1.Text:=dm.np.fieldbyname('nazv_np').AsString; fanasp.e2.Text:=dm.np.fieldbyname('kod_np').AsString; fanasp.Caption:=caption+' :: '+bitbtn2.caption; fanasp.ShowModal;

end;

end;

end;

procedure TFNasP.BitBtn1Click(Sender: TObject); begin

fanasp.Caption:=caption+' :: '+bitbtn1.caption; tm:=0;

fanasp.ShowModal;

end;

41

procedure TFNasP.BitBtn3Click(Sender: TObject); begin

if dm.np.RecordCount=0 then showmessage('Записи отсутствуют')

else begin tm:=1;

id_np:=dm.np.Fields[0].AsString;

if accessdb.Delete('np','nasp',id_np)=false then showmessage('Запись используется другим пользователем')

else dm.np.Requery(); end;

end;

procedure TFNasP.BitBtn5Click(Sender: TObject); begin

dm.np.Active:=false;

dm.np.CommandText:='Select * from nasp WHERE (nazv_np like "%'+e.text+'%") ORDER BY nazv_np';

dm.np.Active:=true;

end;

procedure TFNasP.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin e.Clear; end; end.

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