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

('+tmp+',"'+datetostr(dtp1.Date)+'","'+datetostr(dtp1.Date)+'",'+e1.

Text+')';

dm.COM.Execute; showmessage('Телефон отдан в ремонт');

BitBtn1Click(Sender);

end;

end;

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

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

end.

unit atel;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TFatel = class(TForm) Panel1: TPanel; Panel2: TPanel;

e1: TEdit; Label1: TLabel; cb: TComboBox; Label2: TLabel; e2: TEdit;

e4: TEdit; e5: TEdit; e3: TEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel; cb1: TCheckBox; cb2: TCheckBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; e6: TEdit; Label7: TLabel;

procedure cbKeyPress(Sender: TObject; var Key: Char); procedure cbChange(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

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

procedure BitBtn2Click(Sender: TObject);

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

private

{Private declarations } public

{Public declarations } end;

var

Fatel: TFatel;

implementation

uses datm;

{$R *.dfm}

procedure TFatel.cbKeyPress(Sender: TObject; var Key: Char); begin

key:=#0;

end;

procedure TFatel.cbChange(Sender: TObject); begin

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='Select id_iz fROM izgot WHERE nazv_iz="'+cb.text+'"';

dm.TEMP.Active:=true; id_iz:=dm.TEMP.Fields[0].AsString; end;

procedure TFatel.BitBtn1Click(Sender: TObject); begin

closequery;

end;

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

begin //**************Многопользовательский режим***************//

if tm=1 then begin

dm.COM.CommandText:='Update tel set log_t = FALSE WHERE id_t='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e1.Text:='';e2.Text:='';e3.Text:='';e4.Text:='';e5.Text:='';

cb.Clear;cb1.Checked:=false;cb2.Checked:=false;

close;

end;

procedure TFatel.BitBtn2Click(Sender: TObject); var ind:string;

begin

if (e1.Text='') OR (e2.Text='') OR (e3.Text='') OR (e4.Text='') or (e5.Text='')or (e6.Text='') or (cb.Text='')OR (id_iz='') then showmessage('Не все поля заполнены')

else begin

try strtofloat(e2.Text); strtofloat(e3.Text); strtofloat(e4.Text); strtofloat(e5.Text); strtofloat(e6.Text); except

showmessage('Характиристики - числовые значения'); exit;

end;

if tm=0 then begin

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='Select * from tel WHERE (nazv_t = "'+e1.Text+'") AND (id_iz_t = '+id_iz+')';

dm.TEMP.Active:=true;

if dm.TEMP.RecordCount>0 then exit;

42

dm.COM.CommandText:='Insert into tel (nazv_t,id_iz_t,ves_t,dl_t,sh_t,vis_t,gprs_t,mp3_t,st_t) values ("'+e1.Text+'",'+id_iz+',"'+e2.Text+'","'+e3.Text+'","'+e4.Text+'","' +e5.Text+'","'+booltostr(cb1.Checked)+'","'+booltostr(cb2.Checke d)+'","'+e6.Text+'")';

dm.COM.Execute;

dm.TEMP.Active:=false; dm.TEMP.CommandText:='Select max(id_t) from tel'; dm.TEMP.Active:=true; ind:=dm.TEMP.Fields[0].AsString;

dm.COM.CommandText:='Insert into reg (id_t_r,cena_r,data_r) values ('+ind+',"'+e6.Text+'",date())';

dm.COM.Execute;

dm.t.Requery(); showmessage('Запись добавлена'); end

else begin

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='Select * from tel WHERE (nazv_t = "'+e1.Text+'") AND (id_iz_t = '+id_iz+')';

dm.TEMP.Active:=true;

if (dm.TEMP.RecordCount>0) AND (tmp<>dm.TEMP.Fields[0].asstring) then exit;

dm.COM.CommandText:='UPDATE tel SET nazv_t="'+e1.Text+'",id_iz_t="'+id_iz+'",ves_t="'+e2.Text+'",dl_t ="'+e3.Text+'",sh_t="'+e4.Text+'",vis_t="'+e5.Text+'",gprs_t="'+b ooltostr(cb1.Checked)+'",mp3_t="'+booltostr(cb2.Checked)+'",st_t ="'+e6.Text+'" WHERE (id_t='+tmp+')';

dm.COM.Execute;

dm.TEMP.Active:=false; dm.TEMP.CommandText:='Select id_r from reg WHERE

(id_t_r = '+tmp+') AND (data_r = date()) '; dm.TEMP.Active:=true;

if dm.TEMP.RecordCount=0 then begin

dm.COM.CommandText:='Insert into reg (id_t_r,cena_r,data_r) values ('+tmp+',"'+e6.Text+'",date())';

dm.COM.Execute; end

else begin

dm.COM.CommandText:='Update reg set cena_r = "'+e6.Text+'" WHERE id_r = '+tmp+'';

dm.COM.Execute;

end;

dm.t.Requery(); showmessage('Запись изменена'); end;

BitBtn1Click(Sender);

end;

end;

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

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

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

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

procedure TFatel.e4KeyPress(Sender: TObject; var Key: Char); begin

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

procedure TFatel.e5KeyPress(Sender: TObject; var Key: Char); begin

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

end.

unit azak;

interface

uses

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

Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls;

type

TFazak = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel;

dtp: TDateTimePicker; Label4: TLabel;

e1: TEdit;

procedure BitBtn1Click(Sender: TObject);

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

procedure BitBtn2Click(Sender: TObject);

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

{Private declarations } public

{Public declarations } end;

var

Fazak: TFazak;

implementation

uses datm;

{$R *.dfm}

procedure TFazak.BitBtn1Click(Sender: TObject); begin

closequery;

end;

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

begin

e1.Text:=''; dtp.Date:=date;close; end;

procedure TFazak.BitBtn2Click(Sender: TObject); begin

if e1.Text='' then showmessage('Заполнены не все поля') else

begin

43

dm.COM.CommandText:='Insert into zak

try

(id_t_zk,dataN_zk,st_zk,fio_zk) values

if iz.Active=true then

('+tmp+',"'+datetostr(dtp.Date)+'","'+label9.caption+'","'+e1.Text+'

begin

")';

ind:=iz.RecNo;

dm.COM.Execute;

iz.Requery();

showmessage('Телефон заказан');

iz.RecNo:=ind;

BitBtn1Click(Sender);

end;

end;

if t.Active=true then

end;

begin

 

ind:=t.RecNo;

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

t.Requery();

begin

t.RecNo:=ind;

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

end;

end;

if sk.Active=true then

 

begin

end.

ind:=sk.RecNo;

 

sk.Requery();

unit datm;

sk.RecNo:=ind;

 

end;

interface

if sdd.Active=true then

 

begin

uses

ind:=sdd.RecNo;

SysUtils, Classes, ADODB, DB, ExtCtrls, ImgList, Controls;

sdd.Requery();

 

sdd.RecNo:=ind;

type

end;

TDM = class(TDataModule)

if s.Active=true then

ADO: TADOConnection;

begin

TEMP: TADODataSet;

ind:=s.RecNo;

COM: TADOCommand;

s.Requery();

Iz: TADODataSet;

s.RecNo:=ind;

IzS: TDataSource;

end;

t: TADODataSet;

if pr.Active=true then

tS: TDataSource;

begin

sk: TADODataSet;

ind:=pr.RecNo;

sks: TDataSource;

pr.Requery();

sdd: TADODataSet;

pr.RecNo:=ind;

sdds: TDataSource;

end;

S: TADODataSet;

if zk.Active=true then

SS: TDataSource;

begin

Pr: TADODataSet;

ind:=zk.RecNo;

PrS: TDataSource;

zk.Requery();

zk: TADODataSet;

zk.RecNo:=ind;

zkS: TDataSource;

end;

Gr: TADODataSet;

if gr.Active=true then

GrS: TDataSource;

begin

Timer1: TTimer;

ind:=gr.RecNo;

IM: TImageList;

gr.Requery();

temp2: TADODataSet;

gr.RecNo:=ind;

procedure Timer1Timer(Sender: TObject);

end;

private

except

{ Private declarations }

end;

public

end;

{ Public declarations }

 

end;

end.

var

unit find;

DM: TDM;

 

tm:integer;

interface

tmp,tmp2:string;

 

pas,login:string;

uses

id_iz,id_sk:string;

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

implementation

Controls, Forms,

 

Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

{$R *.dfm}

 

 

type

procedure TDM.Timer1Timer(Sender: TObject);

TFfind = class(TForm)

var ind:integer;

Panel1: TPanel;

begin

BitBtn1: TBitBtn;

44

BitBtn2: TBitBtn; Panel2: TPanel;

dtp1: TDateTimePicker; dtp2: TDateTimePicker; Label1: TLabel; Label2: TLabel;

procedure BitBtn1Click(Sender: TObject);

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

procedure BitBtn2Click(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

Ffind: TFfind;

implementation

uses datm, main;

{$R *.dfm}

procedure TFfind.BitBtn1Click(Sender: TObject); begin

closequery;

end;

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

begin dtp1.Date:=date;dtp2.Date:=date;close; end;

procedure TFfind.BitBtn2Click(Sender: TObject); begin

dm.temp.Active:=false;

dm.temp.CommandText:='select sum(st_pr) FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (dataN_pr between #'+fmain.data(dtp1.Date)+'# AND #'+fmain.data(dtp2.Date)+'#)';

dm.temp.Active:=true;

dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,nazv_t,nazv_iz,dataN_pr,sn_pr,st_pr,dataK_pr FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (dataN_pr between #'+fmain.data(dtp1.Date)+'# AND #'+fmain.data(dtp2.Date)+'#)';

dm.pr.Active:=true;

BitBtn1Click(Sender); showmessage('Общая сумма составила: '

+dm.TEMP.Fields[0].AsString ); end;

end.

unit Gar;

interface

uses

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

Dialogs, Menus, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,dateutils;

type

TFGar = class(TForm) DBGrid1: TDBGrid; Panel2: TPanel;

SpeedButton1: TSpeedButton; Label1: TLabel;

e2: TEdit;

PopupMenu1: TPopupMenu; N1: TMenuItem;

procedure SpeedButton1Click(Sender: TObject); procedure e2Change(Sender: TObject); procedure N1Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

FGar: TFGar;

implementation uses datm;

{$R *.dfm}

procedure TFGar.SpeedButton1Click(Sender: TObject); begin

dm.gr.Active:=false;

dm.gr.CommandText:='select id_gr,nazv_t,nazv_iz,dataN_gr,dataK_gr,srok_gr FROM tel,izgot,gar,prod WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (id_pr = id_pr_gr) AND (log_gr=false)'; dm.gr.Active:=true;

e2.Text:='';

end;

procedure TFGar.e2Change(Sender: TObject); begin

dm.gr.Active:=false;

dm.gr.CommandText:='select id_gr,nazv_t,nazv_iz,dataN_gr,dataK_gr,srok_gr FROM tel,izgot,gar,prod WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (id_pr = id_pr_gr) AND (nazv_t like "%'+e2.Text+'%") AND (log_gr=false)';

dm.gr.Active:=true;

end;

procedure TFGar.N1Click(Sender: TObject); begin

if dm.gr.Fields[0].AsString='' then exit; tmp:=dm.gr.Fieldbyname('id_gr').AsString; dm.TEMP.Active:=false;

dm.TEMP.CommandText:='Select id_pr_gr FROM gar WHERE (id_gr = '+tmp+')';

dm.TEMP.Active:=true;

dm.COM.CommandText:='Update prod SET dataK_pr="'+datetostr(incmonth(date,dm.Gr.Fieldbyname('srok_gr ').AsInteger))+'" WHERE id_pr='+dm.TEMP.Fields[0].AsString+'';

dm.COM.Execute;

dm.COM.CommandText:='Update gar set log_gr=TRUE WHERE id_gr = '+tmp+'';

dm.COM.Execute; showmessage('Телефон возвращен'); dm.Gr.Requery();

45

end;

end.

unit izgot;

interface

uses

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

Dialogs, ComCtrls, ToolWin, Grids, DBGrids, Buttons, StdCtrls, ExtCtrls;

type

TFizgot = class(TForm) Panel1: TPanel;

e: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Panel2: TPanel; e2: TEdit;

SpeedButton1: TSpeedButton; DBGrid1: TDBGrid; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton;

procedure ToolButton2Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject);

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

procedure SpeedButton1Click(Sender: TObject); procedure e2Change(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fizgot: TFizgot;

implementation uses datm; {$R *.dfm}

procedure TFizgot.ToolButton2Click(Sender: TObject); begin

tm:=0;

panel1.Visible:=true;

end;

procedure TFizgot.ToolButton4Click(Sender: TObject); begin

if dm.iz.Fields[0].AsString='' then exit; tm:=1;

tmp:=dm.iz.Fields[0].AsString;

//**************Многопользовательский режим***************//

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select log_iz from izgot where id_iz = '+tmp+'';

dm.TEMP.Active:=true;

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

showmessage('Запись используется другим пользователем!'); exit;

end else

begin

dm.COM.CommandText:='Update izgot set log_iz = TRUE WHERE id_iz='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e.Text:=dm.iz.Fields[1].AsString;

panel1.Visible:=true;

end;

procedure TFizgot.ToolButton6Click(Sender: TObject); begin

if dm.iz.Fields[0].AsString='' then exit; tmp:=dm.iz.Fields[0].AsString;

//**************Многопользовательский режим***************//

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select log_iz from izgot where id_iz = '+tmp+'';

dm.TEMP.Active:=true;

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

showmessage('Запись используется другим пользователем!'); exit;

end;

//**************Многопользовательский режим***************//

if application.MessageBox('Вы хотите удалить запись?','Удаление', mb_yesno+mb_iconquestion)=idyes then

begin

dm.COM.CommandText:='delete * FROM izgot WHERE (id_iz='+tmp+')';

dm.COM.Execute;

dm.iz.Requery(); showmessage('Запись удалена'); end;

end;

procedure TFizgot.BitBtn2Click(Sender: TObject); begin

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

begin

if tm=0 then begin

dm.TEMP.Active:=false; dm.TEMP.CommandText:='Select * from izgot WHERE

(nazv_iz = "'+e.Text+'")'; dm.TEMP.Active:=true;

if dm.TEMP.RecordCount>0 then exit; dm.COM.CommandText:='Insert into izgot (nazv_iz) values

("'+e.Text+'")';

dm.COM.Execute;

46

dm.iz.Requery(); showmessage('Запись добавлена'); end

else begin

dm.TEMP.Active:=false; dm.TEMP.CommandText:='Select * from izgot WHERE

(nazv_iz = "'+e.Text+'")'; dm.TEMP.Active:=true;

if (dm.TEMP.RecordCount>0) AND (tmp<>dm.TEMP.Fields[0].asstring) then exit;

dm.COM.CommandText:='UPDATE izgot SET nazv_iz="'+e.Text+'" WHERE (id_iz='+tmp+')';

dm.COM.Execute;

dm.iz.Requery(); showmessage('Запись изменена'); end;

BitBtn1Click(Sender);

end;

end;

procedure TFizgot.BitBtn1Click(Sender: TObject); begin

//**************Многопользовательский режим***************//

if tm=1 then begin

dm.COM.CommandText:='Update izgot set log_iz = FALSE WHERE id_iz='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e.Text:='';

panel1.Visible:=false;

end;

procedure TFizgot.ToolButton8Click(Sender: TObject); begin

panel2.Visible:=true;

end;

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

begin

//**************Многопользовательский режим***************//

if tm=1 then begin

dm.COM.CommandText:='Update izgot set log_iz = FALSE WHERE id_iz='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e.Text:='';e2.Text:='';

panel1.Visible:=false;

panel2.Visible:=false;

close;

end;

procedure TFizgot.SpeedButton1Click(Sender: TObject); begin

dm.Iz.Active:=false;

dm.Iz.CommandText:='select id_iz,nazv_iz from izgot';

dm.Iz.Active:=true;

e2.Text:='';

panel2.Visible:=false;

end;

procedure TFizgot.e2Change(Sender: TObject); begin

dm.Iz.Active:=false;

dm.Iz.CommandText:='select id_iz,nazv_iz from izgot WHERE (nazv_iz like "%'+e2.Text+'%")';

dm.Iz.Active:=true;

end;

end.

unit ot;

interface

uses

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

Dialogs, StdCtrls, Buttons, ComCtrls, WordXP, OleServer;

type

TFot = class(TForm) dtp: TDateTimePicker; BitBtn1: TBitBtn;

WordDocument1: TWordDocument; WordApplication1: TWordApplication; procedure BitBtn1Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fot: TFot;

implementation

uses datm, main;

{$R *.dfm}

procedure TFot.BitBtn1Click(Sender: TObject); var p:integer;

Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;

LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;

i,k: integer; //Reg: TRegistry; flag:boolean;

begin

WordApplication1.Connect; // Устанавливаем связь с сервером

//Открываем шаблон otchet.dot в Word

Template:=ExtractFilePath(Application.EXEName)+'Прайс.dot'; //путь к шаблону документа

WordApplication1.Documents.Add(Template,EmptyParam,Empty

Param,EmptyParam);// создаем документ на основе шаблона

WordDocument1.ConnectTo(WordApplication1.ActiveDocument)

; //Связываем компонент WordDocument1 c активным документом (т.е. с только что созданным документом)

47

dm.TEMP.Active:=false; dm.TEMP.CommandText:='select distinct

id_t,nazv_t,nazv_iz,ves_t,dl_t,sh_t,vis_t,gprs_t,mp3_t,st_t from izgot,tel,reg WHERE (id_iz=id_iz_t) AND (id_t_r = id_t) AND (data_r <= #'+fmain.data(dtp.Date)+'#) ';

dm.TEMP.Active:=true;

p:=dm.TEMP.RecordCount;

//showmessage(inttostr(p));

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select id_t,nazv_t,nazv_iz,ves_t,dl_t,sh_t,vis_t,gprs_t,mp3_t,cena_r from izgot,tel,reg WHERE (id_iz=id_iz_t) AND (id_t_r = id_t) AND (data_r <= #'+fmain.data(dtp.Date)+'#)order by data_r desc';

dm.TEMP.Active:=true;

//Заполняем таблицу списка объектов

Table1:=WordDocument1.Tables.Item(1); //связываем имя

Table1 с первой таблицей документа //WordDocument1.Tables - это массив таблиц документа (тип

Tables), а WordDocument1.Tables.Item(i) - i-ая таблица i:=2;

dm.temp.First; k:=1;

While (not dm.temp.Eof) and (k<=p) do begin Table1.Rows.Add(EmptyParam);

Table1.Cell(i, 1).Range.Text := dm.temp.Fields[1].AsString; Table1.Cell(i, 2).Range.Text := dm.temp.Fields[2].AsString; Table1.Cell(i, 3).Range.Text := dm.temp.Fields[3].AsString; Table1.Cell(i, 4).Range.Text := dm.temp.Fields[4].AsString; Table1.Cell(i, 5).Range.Text := dm.temp.Fields[5].AsString; Table1.Cell(i, 6).Range.Text := dm.temp.Fields[6].AsString; Table1.Cell(i, 7).Range.Text := dm.temp.Fields[7].AsString; Table1.Cell(i, 8).Range.Text := dm.temp.Fields[8].AsString; Table1.Cell(i, 9).Range.Text := dm.temp.Fields[9].AsString; inc(i);dm.temp.next; k:=k+1;

end; Table1.Rows.Item(i).Delete;

WordApplication1.Visible:=true; //делаем приложение MS Word видимым

WordApplication1.Disconnect; // Разрываем связь с сервером end;

end.

unit prod;

interface

uses

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

Dialogs, Menus, ComCtrls, ToolWin, Grids, DBGrids, StdCtrls, Buttons,

ExtCtrls,dateutils;

type

TFprod = class(TForm) Panel1: TPanel; Panel2: TPanel; Label1: TLabel;

dtp: TDateTimePicker; Label2: TLabel; Label3: TLabel;

e1: TEdit; Label4: TLabel;

Label5: TLabel; e2: TEdit; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

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

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

{Private declarations } public

{Public declarations } end;

var

Fprod: TFprod;

implementation

uses datm;

{$R *.dfm}

procedure TFprod.BitBtn2Click(Sender: TObject); begin

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

else begin

try

if strtoint(e1.Text)<=0 then begin

showmessage('Срок не может быть отрицательным числом');

exit;

end; except

showmessage('Срок - числовое значение'); exit;

end;

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select * from prod where sn_pr = "'+e2.Text+'"';

dm.TEMP.Active:=true;

if dm.TEMP.RecordCount>0 then begin

showmessage('Телефон с данным серийным номером уже продан');

exit;

end;

dm.COM.CommandText:='Insert into prod (id_t_pr,dataN_pr,dataK_pr,srok_pr,sn_pr,st_pr) values ('+tmp+',"'+datetostr(dtp.Date)+'","'+datetostr(incmonth(dtp.Date,s trtoint(e1.Text)))+'",'+e1.Text+',"'+e2.Text+'","'+label9.caption+'")'

;

dm.COM.Execute;

dm.COM.CommandText:='Update sklad SET kol_s=kol_s-1 WHERE id_t_s = '+tmp+'';

dm.COM.Execute; showmessage('Телефон продан');

BitBtn1Click(Sender);

end;

48

end;

procedure TFprod.BitBtn1Click(Sender: TObject); begin

closequery;

end;

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

begin dtp.Date:=date;e1.Text:='';e2.Text:='';close; end;

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

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

end.

unit prod2;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, Menus;

type

TFprod2 = class(TForm) DBGrid1: TDBGrid; Panel2: TPanel;

SpeedButton1: TSpeedButton; Label1: TLabel;

e2: TEdit;

PopupMenu1: TPopupMenu; N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

procedure SpeedButton1Click(Sender: TObject); procedure e2Change(Sender: TObject);

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

procedure N1Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N5Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fprod2: TFprod2;

implementation

uses datm, agar, find; {$R *.dfm}

procedure TFprod2.SpeedButton1Click(Sender: TObject); begin

dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,nazv_t,nazv_iz,dataN_pr,sn_pr,st_pr,dataK_pr FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr)';

dm.pr.Active:=true;

e2.Text:='';

end;

procedure TFprod2.e2Change(Sender: TObject); begin

dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,nazv_t,nazv_iz,dataN_pr,sn_pr,st_pr,dataK_pr FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (nazv_t like "'+e2.Text+'")';

dm.pr.Active:=true;

end;

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

begin e2.Text:='';close; end;

procedure TFprod2.N1Click(Sender: TObject); begin

if dm.pr.Fields[0].AsString='' then exit; tmp:=inputbox('Поставка товара','Введите серийный номер:',''); dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,nazv_t,nazv_iz,dataN_pr,sn_pr,st_pr,dataK_pr FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (sn_pr like "%'+tmp+'%")';

dm.pr.Active:=true;

end;

procedure TFprod2.N3Click(Sender: TObject); begin

if dm.pr.Fields[0].AsString='' then exit;

if dm.Pr.FieldByName('dataK_pr').AsDateTime<date then begin

showmessage('Срок гарантийного обслуживания истек'); exit;

end else

begin tmp:=dm.pr.Fields[0].AsString; fagar.ShowModal;

end;

end;

procedure TFprod2.N5Click(Sender: TObject); begin

ffind.ShowModal;

end;

end.

unit search;

interface

uses

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

Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type

TFsearch = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

49

Panel2: TPanel;

 

Label4: TLabel;

interface

e1: TEdit;

 

cb1: TCheckBox;

uses

cb2: TCheckBox;

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

e2: TEdit;

Controls, Forms,

Label1: TLabel;

Dialogs, StdCtrls, ComCtrls, ToolWin, Grids, DBGrids, Buttons,

procedure BitBtn1Click(Sender: TObject);

ExtCtrls;

procedure FormCloseQuery(Sender: TObject; var CanClose:

 

Boolean);

type

procedure BitBtn2Click(Sender: TObject);

TFskid = class(TForm)

private

Panel1: TPanel;

{ Private declarations }

e1: TEdit;

public

BitBtn1: TBitBtn;

{ Public declarations }

BitBtn2: TBitBtn;

end;

Panel2: TPanel;

 

SpeedButton1: TSpeedButton;

var

e3: TEdit;

Fsearch: TFsearch;

DBGrid1: TDBGrid;

 

ToolBar1: TToolBar;

implementation

ToolButton1: TToolButton;

 

ToolButton2: TToolButton;

uses datm;

ToolButton3: TToolButton;

 

ToolButton4: TToolButton;

{$R *.dfm}

ToolButton5: TToolButton;

 

ToolButton6: TToolButton;

procedure TFsearch.BitBtn1Click(Sender: TObject);

ToolButton7: TToolButton;

begin

ToolButton8: TToolButton;

closequery;

e2: TEdit;

end;

Label1: TLabel;

 

Label2: TLabel;

procedure TFsearch.FormCloseQuery(Sender: TObject; var

procedure ToolButton2Click(Sender: TObject);

CanClose: Boolean);

procedure ToolButton4Click(Sender: TObject);

begin

procedure ToolButton6Click(Sender: TObject);

cb1.Checked:=false;cb2.Checked:=false;

procedure ToolButton8Click(Sender: TObject);

e1.Text:='';e2.Text:='';close;

procedure SpeedButton1Click(Sender: TObject);

end;

procedure e3Change(Sender: TObject);

 

procedure BitBtn1Click(Sender: TObject);

procedure TFsearch.BitBtn2Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose:

begin

Boolean);

if (e1.Text='') OR (e2.Text='') then showmessage('Нужно ввести

procedure BitBtn2Click(Sender: TObject);

числовые значения')

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

else

private

begin

{ Private declarations }

try

public

strtoint(e1.Text);

{ Public declarations }

strtoint(e2.Text);

end;

except

 

showmessage('Характеристики - числовые значения');

var

exit;

Fskid: TFskid;

end;

 

 

implementation

dm.t.Active:=false;

uses datm;

dm.t.CommandText:='select

{$R *.dfm}

id_t,nazv_t,nazv_iz,ves_t,dl_t,sh_t,vis_t,gprs_t,mp3_t,st_t from

 

izgot,tel WHERE (id_iz=id_iz_t) AND (gprs_t =

procedure TFskid.ToolButton2Click(Sender: TObject);

'+booltostr(cb1.Checked)+') AND (mp3_t =

begin

'+booltostr(cb2.Checked)+')AND (ves_t<='+e1.text+') AND (st_t

tm:=0;

<= '+e2.Text+') ';

panel1.Visible:=true;

dm.t.Active:=true;

end;

BitBtn1Click(Sender);

 

 

procedure TFskid.ToolButton4Click(Sender: TObject);

end;

begin

end;

if dm.sk.Fields[0].AsString='' then exit;

 

tm:=1;

end.

tmp:=dm.sk.Fields[0].AsString;

 

//**************Многопользовательский

unit skid;

режим***************//

50

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select log_sk from skid where id_sk = '+tmp+'';

dm.TEMP.Active:=true;

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

showmessage('Запись используется другим пользователем!'); exit;

end else

begin

dm.COM.CommandText:='Update skid set log_sk = TRUE WHERE id_sk='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e1.Text:=dm.sk.Fields[1].AsString;

e2.Text:=dm.sk.Fields[2].AsString;

panel1.Visible:=true;

end;

procedure TFskid.ToolButton6Click(Sender: TObject); begin

if dm.sk.Fields[0].AsString='' then exit; tmp:=dm.sk.Fields[0].AsString;

//**************Многопользовательский режим***************//

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select log_sk from skid where id_sk = '+tmp+'';

dm.TEMP.Active:=true;

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

showmessage('Запись используется другим пользователем!'); exit;

end;

//**************Многопользовательский режим***************//

if application.MessageBox('Вы хотите удалить запись?','Удаление', mb_yesno+mb_iconquestion)=idyes then

begin

dm.COM.CommandText:='delete * FROM skid WHERE (id_sk='+tmp+')';

dm.COM.Execute;

dm.sk.Requery(); showmessage('Запись удалена'); end;

end;

procedure TFskid.ToolButton8Click(Sender: TObject); begin

panel2.Visible:=true;

end;

procedure TFskid.SpeedButton1Click(Sender: TObject); begin

dm.sk.Active:=false;

dm.sk.CommandText:='select id_sk,nazv_sk,vel_sk from skid'; dm.sk.Active:=true;

panel2.Visible:=false;

end;

procedure TFskid.e3Change(Sender: TObject); begin

dm.sk.Active:=false;

dm.sk.CommandText:='select id_sk,nazv_sk,vel_sk from skid WHERE (nazv_sk like "%'+e3.Text+'%")'; dm.sk.Active:=true;

end;

procedure TFskid.BitBtn1Click(Sender: TObject); begin

//**************Многопользовательский режим***************//

if tm=1 then begin

dm.COM.CommandText:='Update skid set log_sk = FALSE WHERE id_sk='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e1.Text:='';e2.Text:='';

panel1.Visible:=false;

end;

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

begin

//**************Многопользовательский режим***************//

if tm=1 then begin

dm.COM.CommandText:='Update skid set log_sk = FALSE WHERE id_sk='+tmp+'';

dm.COM.Execute;

end;

//**************Многопользовательский режим***************//

e1.Text:='';e2.Text:='';e3.Text:='';

panel1.Visible:=false;

panel2.Visible:=false;

close;

end;

procedure TFskid.BitBtn2Click(Sender: TObject); begin

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

else begin

try

if (strtofloat(e2.Text)<=0) OR (strtofloat(e2.Text)>=100) then begin

showmessage('Размер скидки (0,100)'); exit;

end; except

showmessage('Стоимость - числовое значение'); exit;

end;

if tm=0 then begin

dm.TEMP.Active:=false; dm.TEMP.CommandText:='Select * from skid WHERE

(nazv_sk = "'+e1.Text+'")'; dm.TEMP.Active:=true;

if dm.TEMP.RecordCount>0 then exit;

51

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