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

begin

if tm=1 then begin

dm.com.CommandText:='Update proiz set log_p=FALSE WHERE (id_p='+tmp+')'; dm.com.Execute;

end;

e1.clear;

close;

end;

procedure TFaProiz.BitBtn2Click(Sender: TObject); begin

closequery;

end;

procedure TFaProiz.BitBtn1Click(Sender: TObject); begin

if (e1.Text='')then showmessage('Вы заполнили не все данные') else

begin

if tm=0 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_p from proiz where (nazv_p="'+e1.text+'")'; dm.temp.Active:=true;

if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Insert into proiz (nazv_p) values ("'+e1.Text+'")'; dm.com.Execute;

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

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_p from proiz where (nazv_p="'+e1.text+'")'; dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].asstring) then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Update proiz SET nazv_p="'+e1.Text+'" WHERE (id_p='+tmp+')'; dm.com.Execute;

showmessage('Запись успешно изменена'); dm.p.Requery();

closequery;

end;

end;

end;

end;

end.

unit aRasxod;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Spin, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,math;

type

TFaRasxod = class(TForm) Panel1: TPanel;

Label1: TLabel;

Label6: TLabel;

Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; cb2: TComboBox;

32!

dtp1: TDateTimePicker; GroupBox1: TGroupBox; Label2: TLabel;

Label5: TLabel; e1: TEdit;

se1: TSpinEdit; Label3: TLabel; Label4: TLabel; e2: TEdit;

cb1: TComboBox; DBGrid1: TDBGrid; BitBtn3: TBitBtn; BitBtn4: TBitBtn;

procedure cb2Change(Sender: TObject); procedure cb1Change(Sender: TObject); procedure e2Change(Sender: TObject); procedure se1Change(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject);

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

procedure BitBtn1Click(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

FaRasxod: TFaRasxod;

implementation

uses datm, main;

{$R *.dfm}

procedure TFaRasxod.cb2Change(Sender: TObject); begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_pok from pokup where (nazv_pok="'+cb2.text+'")'; dm.temp.Active:=true;

id_pok:=dm.temp.fields[0].asstring; end;

procedure TFaRasxod.cb1Change(Sender: TObject); var kol:integer;

begin dm.temp.Active:=false;

dm.temp.CommandText:='select id_tov,st_tov,kol_tov from tovar,proiz,tip where (id_t=id_t_tov) and (id_p_tov=id_p)and (([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс."&[rasf_tov])="'+cb1.text+'")'; dm.temp.Active:=true;

id_tov:=dm.temp.fields[0].asstring;

e1.Text:=floattostr ( roundto(dm.temp.fields[1].asfloat*(100+pr)/100,-2) ); se1Change(Sender);

kol:=dm.temp.Fields[2].AsInteger;

dm.temp.Active:=false;

dm.temp.CommandText:='select sum(kol_poz) from pozicii where (id_tov_poz='+id_tov+') and (id_ras_poz=0)'; dm.temp.Active:=true;

if (kol-dm.temp.Fields[0].AsInteger)=0 then begin

showmessage('Данного товара на складе больше нет'); e1.Clear;e2.Clear;se1.Value:=0;

exit;

end; se1.MaxValue:=kol-dm.temp.Fields[0].AsInteger;

end;

procedure TFaRasxod.e2Change(Sender: TObject); begin

33!

if e1.Text<>'' then begin

e2.Text:=floattostr(strtofloat(e1.Text)*se1.Value);

end;

end;

procedure TFaRasxod.se1Change(Sender: TObject); begin

if e1.Text<>'' then begin

e2.Text:=floattostr( strtofloat(e1.Text)*se1.Value ); end;

end;

procedure TFaRasxod.BitBtn3Click(Sender: TObject); begin

if (cb1.Text='') or (se1.Value=0) then showmessage('Вы заполнили не все данные') else

begin

dm.com.CommandText:='Insert into pozicii (id_tov_poz,cena_poz,kol_poz,st_poz) values ('+id_tov+',"'+e1.text+'",'+se1.Text +',"'+e2.Text+'")';

dm.com.Execute;

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

cb1.ItemIndex:=-1; e1.Clear;e2.Clear;se1.Value:=0; end;

end;

procedure TFaRasxod.BitBtn4Click(Sender: TObject); begin

if dm.poz.Fields[0].AsString='' then begin

showmessage('Запись для редактирования отсутствует'); exit;

end;

tmp:=dm.poz.Fields[0].AsString;tm:=1;

if fmain.Delete('poz','pozicii',tmp)=false then begin

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

end

else dm.poz.Requery();

end;

procedure TFaRasxod.BitBtn2Click(Sender: TObject); begin

closequery;

end;

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

dm.com.CommandText:='Delete * from pozicii where (id_ras_poz=0)'; dm.com.Execute;

e1.clear;e2.clear;

cb1.Clear;cb2.Clear;se1.Value:=0;

close;

end;

procedure TFaRasxod.FormShow(Sender: TObject); begin

dtp1.Date:=date;

end;

procedure TFaRasxod.BitBtn1Click(Sender: TObject); begin

if (cb2.Text='') then showmessage('Вы заполнили не все данные') else

begin dm.temp.Active:=false;

34!

dm.temp.CommandText:='Select id_poz from pozicii where (id_ras_poz=0)'; dm.temp.Active:=true;

if dm.temp.RecordCount=0 then showmessage('Вы не добавили ни одной позиции в заказ') else

begin

dm.com.CommandText:='Insert into rasxod (id_pok_ras,data_ras) values ('+id_pok+',"'+datetostr(dtp1.Date)+'")'; dm.com.Execute;

dm.temp.Active:=false;

dm.temp.CommandText:='Select max(id_ras) from rasxod'; dm.temp.Active:=true;

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

dm.com.CommandText:='Update pozicii set id_ras_poz="'+tmp+'" where (id_ras_poz=0)'; dm.com.Execute;

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_tov_poz,kol_poz from pozicii where id_ras_poz='+tmp+''; dm.temp.Active:=true;

While not dm.temp.Eof do begin

dm.com.CommandText:='Update tovar set kol_tov=kol_tov-"'+dm.temp.Fields[1].AsString+'" where id_tov='+dm.temp.fields[0].AsString+'';

dm.com.Execute;

dm.temp.Next;

end;

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

closequery;

end;

end;

end;

end.

unit aTip;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TFaTip = class(TForm) Panel1: TPanel; Label2: TLabel; Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

e1: TEdit;

procedure BitBtn2Click(Sender: TObject);

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

private

{Private declarations } public

{Public declarations } end;

var

FaTip: TFaTip;

implementation

uses datm;

{$R *.dfm}

procedure TFaTip.BitBtn2Click(Sender: TObject); begin

closequery;

end;

35!

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

if tm=1 then begin

dm.com.CommandText:='Update tip set log_t=FALSE WHERE (id_t='+tmp+')'; dm.com.Execute;

end;

e1.clear;

close;

end;

procedure TFaTip.BitBtn1Click(Sender: TObject); begin

if (e1.Text='')then showmessage('Вы заполнили не все данные') else

begin

if tm=0 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_t from tip where (nazv_t="'+e1.text+'")'; dm.temp.Active:=true;

if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Insert into tip (nazv_t) values ("'+e1.Text+'")'; dm.com.Execute;

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

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_t from tip where (nazv_t="'+e1.text+'")'; dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].asstring) then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Update tip SET nazv_t="'+e1.Text+'" WHERE (id_t='+tmp+')'; dm.com.Execute;

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

closequery;

end;

end;

end;

end;

end.

unit aTovar;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TFaTovar = class(TForm) Panel1: TPanel;

Label2: TLabel;

Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; e1: TEdit;

36!

cb1: TComboBox; Label1: TLabel; Label3: TLabel; cb2: TComboBox; e2: TEdit; Label4: TLabel; Label5: TLabel; e3: TEdit;

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

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

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

private

{Private declarations } public

{Public declarations } end;

var

FaTovar: TFaTovar;

implementation

uses datm, main;

{$R *.dfm}

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

key:=#0;

end;

procedure TFaTovar.cb2Change(Sender: TObject); begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_t from tip where (nazv_t="'+cb2.text+'")'; dm.temp.Active:=true;

id_t:=dm.temp.fields[0].asstring; end;

procedure TFaTovar.cb1Change(Sender: TObject); begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_p from proiz where (nazv_p="'+cb1.text+'")'; dm.temp.Active:=true;

id_p:=dm.temp.fields[0].asstring; end;

procedure TFaTovar.BitBtn2Click(Sender: TObject); begin

closequery;

end;

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

if tm=1 then begin

dm.com.CommandText:='Update tovar set log_tov=FALSE WHERE (id_tov='+tmp+')'; dm.com.Execute;

end;

e1.clear;e2.clear;e3.Clear;

cb1.Clear;cb2.Clear;

close;

end;

procedure TFaTovar.BitBtn1Click(Sender: TObject); begin

if (e1.Text='') or (e2.Text='') or (cb1.Text='') or (cb2.Text='') or (e3.Text='') then showmessage('Вы заполнили не все данные') else

begin

37!

try strtoint(e2.text); except

showmessage('Расфасовка должна быть целым числом'); exit;

end; try

strtofloat(e3.text); except

showmessage('Стоимость должна быть числом'); exit;

end;

if tm=0 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_tov from tovar where (nazv_tov="'+e1.text+'") and (id_t_tov='+id_t+') and (id_p_tov='+id_p+') and (rasf_tov='+e2.text+')';

dm.temp.Active:=true;

if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Insert into tovar (nazv_tov,id_t_tov,id_p_tov,rasf_tov,st_tov) values ("'+e1.Text+'",'+id_t+','+id_p +','+e2.text+',"'+e3.Text+'")';

dm.com.Execute;

dm.temp.Active:=false;

dm.temp.CommandText:='Select max(id_tov) from tovar'; dm.temp.Active:=true; tmpC:=dm.temp.Fields[0].AsString;

dm.com.CommandText:='Insert into rCen (id_tov_rc,cena_rc,data_rc) values ('+tmpC+',"'+e3.Text+'","'+datetostr(date)+'")'; dm.com.Execute;

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

closequery;

end; end

else begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select id_tov from tovar where (nazv_tov="'+e1.text+'") and (id_t_tov='+id_t+') and (id_p_tov='+id_p+') and (rasf_tov='+e2.text+')';

dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].asstring) then showmessage('Подобная запись уже существует') else

begin

dm.com.CommandText:='Update tovar SET nazv_tov="'+e1.Text+'",id_t_tov="'+id_t+'",id_p_tov="'+id_p +'",rasf_tov="'+e2.text+'",st_tov="'+e3.Text+'" WHERE (id_tov='+tmp+')';

dm.com.Execute;

if tmpc<>e3.Text then begin dm.temp.Active:=false;

dm.temp.CommandText:='Select id_rc from rCen WHERE (id_tov_rc='+tmp+') and (data_rc = #'+fmain.data(date)+'#)'; dm.temp.Active:=true;

if dm.temp.RecordCount=0 then begin

dm.com.CommandText:='Insert into rCen (id_tov_rc,cena_rc,data_rc) values ('+tmp+',"'+e3.Text+'","'+datetostr(date)+'")'; dm.com.Execute;

end else

begin

dm.com.CommandText:='update rCen set cena_rc="'+e3.Text+'" where id_rc='+dm.temp.Fields[0].AsString+''; dm.com.Execute;

end;

end;

showmessage('Запись успешно изменена'); dm.tov.Requery();

closequery;

end;

end;

end;

end;

end.

38!

unit chpass;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TFchpass = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel;

cb: TComboBox; e1: TEdit;

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

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

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

private

{Private declarations } public

{Public declarations } end;

var

Fchpass: TFchpass;

implementation

uses datm;

{$R *.dfm}

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

cb.Clear;

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

close;

end;

procedure TFchpass.BitBtn1Click(Sender: TObject); begin

closequery;

end;

procedure TFchpass.BitBtn2Click(Sender: TObject); begin

if cb.Text='' then showmessage('Вы не выбрали имя пользователя') else if e1.Text='' then showmessage('Вы не ввели пароль')

else if e2.Text='' then showmessage('Вы не ввели подтверждение пароля')

else if e2.Text<>e1.Text then showmessage('Пароль и подтверждение пароля не совпадают') else

begin

dm.com.Commandtext:='Update pass Set pass="'+e2.Text+'" where (login = "'+cb.Text+'")'; dm.com.Execute;

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

end;

end;

procedure TFchpass.FormShow(Sender: TObject); begin

cb.Clear;

dm.temp.Active:=false;

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

39!

dm.temp.Active:=true; while not dm.temp.Eof do

begin cb.Items.Add(dm.temp.Fields[0].AsString); dm.temp.Next;

end;

end;

end.

unit Dati;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type

TFDati = class(TForm) Panel1: TPanel; Label2: TLabel; Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

dtp1: TDateTimePicker; Label1: TLabel;

dtp2: TDateTimePicker;

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

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

private

{Private declarations } public

{Public declarations } end;

var

FDati: TFDati;

implementation

uses datm, main, rCen;

{$R *.dfm}

procedure TFDati.FormShow(Sender: TObject); begin

dtp1.Date:=date;

dtp2.Date:=date;

end;

procedure TFDati.BitBtn2Click(Sender: TObject); begin

closequery;

end;

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

close;

end;

procedure TFDati.BitBtn1Click(Sender: TObject); begin

if dtp1.Date>dtp2.Date then begin

showmessage('Дата начала не может быть больше даты конца'); exit;

end;

if tm=1 then begin

40!

dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс."&[rasf_tov]) as tov,cena_pr,kol_pr,(cena_pr*kol_pr) as st,nazv_pos,data_pr'+

'from tovar,proiz,tip,prixod,post where (id_t=id_t_tov) and (id_p_tov=id_p) and (id_pos=id_pos_pr) and (id_tov=id_tov_pr) and (data_pr between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#)';

dm.pr.Active:=true; end

else if tm=2 then begin dm.ras.Active:=false;

dm.ras.CommandText:='select id_ras,nazv_pok,(select count(id_poz) from pozicii where (id_ras=id_ras_poz)) as pozic,(select sum(st_poz) '+

'from pozicii where (id_ras=id_ras_poz)) as summa,data_ras from rasxod,pokup where (id_pok=id_pok_ras) and (data_ras between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#)';

dm.ras.Active:=true;

dm.temp.Active:=false;

dm.temp.CommandText:='select sum((select sum(st_poz) from pozicii where (id_ras=id_ras_poz))) from rasxod,pokup where (id_pok=id_pok_ras) and (data_ras between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#)';

dm.temp.Active:=true;

showmessage('Общая сумма от реализации составила: '+dm.temp.fields[0].AsString); end

else if tm=3 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='select ([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг."),count(([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс."&[rasf_tov])) from tovar,proiz,tip,prixod,post '+

'where (id_t=id_t_tov) and (id_p_tov=id_p) and (id_pos=id_pos_pr) and (id_tov=id_tov_pr) and (data_pr between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#) group by (([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг.")) '+

'order by count(([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг.")) desc'; dm.temp.Active:=true;

showmessage('Чаще всего покупался: "'+dm.temp.Fields[0].AsString+'"'+#13+'Всего покупок: '+dm.temp.Fields[1].AsString);

end

else if tm=4 then begin

dm.temp.Active:=false;

dm.temp.CommandText:='select ([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг."),sum(st_poz) from tovar,proiz,tip,rasxod,pozicii where (id_t=id_t_tov) and (id_p_tov=id_p) and (id_ras=id_ras_poz) and (id_tov=id_tov_poz)'+

'and (data_ras between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#) group by ([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг.") order by sum(st_poz) desc';

dm.temp.Active:=true;

showmessage('Наибольший доход принес: "'+dm.temp.Fields[0].AsString+'"'+#13+'Доход составил: '+dm.temp.Fields[1].AsString);

end

else if tm=5 then begin dm.rc.Active:=false;

dm.rc.CommandText:='select ([nazv_tov]&", произв.: "&[nazv_p]&", тип:"&[nazv_t]&", расфс.: "&[rasf_tov]&" кг.") as tov,cena_rc,data_rc from tovar,proiz,tip,rcen where (id_t=id_t_tov) and (id_p_tov=id_p) and (id_tov=id_tov_rc) and (data_rc between #'+fmain.data(dtp1.Date)+'# and #'+fmain.data(dtp2.Date)+'#) and (id_tov='+tmp+') order by data_rc';

dm.rc.Active:=true;

frCen.ShowModal;

end;

end;

end.

unit datm;

interface

uses

SysUtils, Classes, DB, ADODB, Dialogs;

type

TDM = class(TDataModule) ado: TADOConnection;

41!

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