?? ugysbj.pas
字號(hào):
unit ugysbj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, RzButton, StdCtrls, DBCtrls, Mask, ExtCtrls, Grids,
DBGridEh, RzTabs, DB, ADODB, FR_DSet, FR_DBSet, FR_Class, GridsEh,
ComCtrls, RzDTP;
type
Tfrmgysbj = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
RzBitBtn6: TRzBitBtn;
RzBitBtn7: TRzBitBtn;
RzBitBtn8: TRzBitBtn;
RzBitBtn9: TRzBitBtn;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
DBEdit1: TDBEdit;
Label7: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBMemo1: TDBMemo;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
GroupBox1: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
Label14: TLabel;
DBEdit13: TDBEdit;
RzBitBtn4: TRzBitBtn;
RzBitBtn12: TRzBitBtn;
edit1: TEdit;
edit2: TEdit;
ADOQuery4: TADOQuery;
DataSource3: TDataSource;
dtp2: TRzDateTimePicker;
Label15: TLabel;
dtp3: TRzDateTimePicker;
RzMenuToolbarButton1: TRzToolbarButton;
RzMenuToolbarButton2: TRzToolbarButton;
DBEdit11: TDBEdit;
procedure FormCreate(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzBitBtn7Click(Sender: TObject);
procedure RzBitBtn8Click(Sender: TObject);
procedure RzBitBtn9Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBEdit3Enter(Sender: TObject);
procedure DBEdit3Exit(Sender: TObject);
procedure DBEdit4Exit(Sender: TObject);
procedure DBEdit4Enter(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure edit1KeyPress(Sender: TObject; var Key: Char);
procedure edit2KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn4Click(Sender: TObject);
procedure RzBitBtn6Click(Sender: TObject);
procedure RzBitBtn12Click(Sender: TObject);
procedure RzMenuToolbarButton1Click(Sender: TObject);
procedure RzMenuToolbarButton2Click(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure RzBitBtn5Click(Sender: TObject);
procedure csh();
procedure dtp2Exit(Sender: TObject);
procedure dtp3Exit(Sender: TObject);
function jcsj():boolean;
procedure RzPageControl1Change(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure DBGridEh1TitleClick(Column: TColumnEh);
private
{ Private declarations }
bjdh:string;
public
{ Public declarations }
end;
var
frmgysbj: Tfrmgysbj;
implementation
uses uconst,ufunction,udm1,ucx,ugyslb,ucgjhdh_lb,uwllb,uxqdh_wllb,unit3;
{$R *.dfm}
procedure tfrmgysbj.csh();
begin
if jb<>'系統(tǒng)維護(hù)' then
strsql:='select bjdh as 報(bào)價(jià)單號(hào),ybjdh as 原報(bào)價(jià)單號(hào),gysdm as 供應(yīng)商代碼,'+
'gysmc as 供應(yīng)商名稱(chēng),cgjhdh as 采購(gòu)計(jì)劃單號(hào),node as 備注,djr as 操作,srrq as 日期 '+
'from wlbj where srrq>=:rq1 and srrq<=:rq2 and '+
'djr='+''''+trim(username)+''''+' order by bjdh asc'
else
strsql:='select bjdh as 報(bào)價(jià)單號(hào),ybjdh as 原報(bào)價(jià)單號(hào),gysdm as 供應(yīng)商代碼,'+
'gysmc as 供應(yīng)商名稱(chēng),cgjhdh as 采購(gòu)計(jì)劃單號(hào),node as 備注,djr as 操作,srrq as 日期 '+
'from wlbj where srrq>=:rq1 and srrq<=:rq2 order by bjdh asc';
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add(strsql);
adoquery2.Parameters.ParamByName('rq1').Value:=dtp2.Date;
adoquery2.Parameters.ParamByName('rq2').Value:=dtp3.Date;
adoquery2.Open;
end;
function tfrmgysbj.jcsj():boolean;
begin
strsql:='select * from cgdd_main where bjdh='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.eof and adoquery3.Recordset.BOF) then
begin
showmessage('該報(bào)價(jià)單已被采用,不能再編輯');
result:=true;
end else begin
result:=false;
end;
end;
procedure Tfrmgysbj.FormCreate(Sender: TObject);
begin
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
adoquery4.Connection:=dm1.ADOConnection1;
dtp2.Date:=date-30;
dtp3.Date:=date;
csh;
end;
procedure Tfrmgysbj.RzBitBtn1Click(Sender: TObject);
begin
if not qxjc(userid,'bjd_add') then exit;
adoquery2.Append;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
dbedit5.Text:=username;
dbedit6.Text:=datetostr(date);
end;
procedure Tfrmgysbj.RzBitBtn2Click(Sender: TObject);
begin
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then exit;
if not qxjc(userid,'bjd_edit')and (username<>trim(dbedit5.Text)) then exit;
if jcsj then exit;
bjdh:=trim(dbedit1.Text);
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
adoquery2.edit;
dbedit5.Text:=username;
dbedit6.Text:=datetostr(date);
end;
procedure Tfrmgysbj.RzBitBtn3Click(Sender: TObject);
var
qz:string;
begin
if trim(dbedit4.Text)='' then
begin
showmessage('沒(méi)有選擇計(jì)劃單號(hào)');
exit;
end;
if trim(dbedit3.Text)='' then
begin
showmessage('沒(méi)有選擇供應(yīng)商');
exit;
end;
if adoquery2.State in[dsinsert] then
begin
qz:='BJDH'+formatdatetime('yy',now)+
formatdatetime('mm',now)+formatdatetime('dd',date);
strsql:='select * from wlbj where bjdh like'+''''+qz+'%'+''''+'order by bjdh asc';
adoexect(adoquery3,strsql);
dbedit1.Text:=creatdh(adoquery3,11,qz);
end;
strsql:='select * from cgjh_main where cgjhdh='+''''+trim(dbedit4.Text)+'''';
adoexect(adoquery3,strsql);
if not adoquery3.FieldByName('shhe').Value then
begin
showmessage('該采購(gòu)計(jì)劃單尚未經(jīng)過(guò)審核,不能進(jìn)行報(bào)價(jià).');
exit;
end;
if (bjdh<>trim(dbedit1.Text)) and (adoquery2.State in[dsedit]) then //如果修改了計(jì)劃單號(hào)
begin
if messagebox(handle,'該報(bào)價(jià)單已存在,是否重新生成','詢問(wèn)',mb_yesno+mb_iconquestion)=idyes then
begin
strsql:='delete from wlbjmx where bjdh='+''''+bjdh+'''';
adodel(adoquery3,strsql);
end else
exit;
end;
try
strsql:='exec insertwlbj '+ trim(dbedit4.text)+','+trim(dbedit1.text);
adodel(adoquery3,strsql);
adoquery3.Close;
bjdh:='';
adoquery1.Close;
adoquery1.Open;
except
showmessage('訪問(wèn)數(shù)據(jù)庫(kù)失敗');
end;
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
adoquery2.post;
end;
procedure Tfrmgysbj.RzBitBtn7Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery2;
frmcx.ShowModal;
adoquery2:=frmcx.adocx;
ADOquery2.Requery();
end;
procedure Tfrmgysbj.RzBitBtn8Click(Sender: TObject);
begin
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
adoquery2.CancelUpdates;
end;
procedure Tfrmgysbj.RzBitBtn9Click(Sender: TObject);
begin
adoquery1.Close;
adoquery2.Close;
adoquery3.Close;
close;
end;
procedure Tfrmgysbj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (adoquery2.State in[dsinsert]) or (adoquery2.State in[dsedit]) then
begin
if messagebox(handle,'該報(bào)價(jià)單正處于編輯狀態(tài),是否需要保存數(shù)據(jù)','詢問(wèn)',mb_yesno+mb_iconquestion)=idyes then
begin
RzBitBtn3Click(self);
end else begin
RzBitBtn8Click(self);
end;
end;
action:=cafree;
end;
procedure Tfrmgysbj.DBEdit3Enter(Sender: TObject);
begin
RzMenuToolbarButton1.Visible:=true;
end;
procedure Tfrmgysbj.DBEdit3Exit(Sender: TObject);
begin
RzMenuToolbarButton1.Visible:=false;
end;
procedure Tfrmgysbj.DBEdit4Exit(Sender: TObject);
begin
RzMenuToolbarButton2.Visible:=false;
end;
procedure Tfrmgysbj.DBEdit4Enter(Sender: TObject);
begin
RzMenuToolbarButton2.Visible:=true;
end;
procedure Tfrmgysbj.TabSheet2Enter(Sender: TObject);
begin
if not adoquery1.Active then exit;
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then exit;
edit1.Text:=adoquery1.fieldbyname('單價(jià)').AsString;
edit2.Text:=adoquery1.fieldbyname('數(shù)量').AsString;
edit1.SetFocus;
end;
procedure Tfrmgysbj.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmgysbj.edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmgysbj.RzBitBtn4Click(Sender: TObject);
begin
if not qxjc(userid,'bjd_edit') then exit;
if (trim(edit1.Text)='0') or (trim(edit2.Text)='0') then
begin
showmessage('單價(jià)或數(shù)量不能為0');
exit;
end;
try
strsql:='update wlbjmx set dj='+trim(edit1.Text)+',xql='+
trim(edit2.Text)+' where bjdh='+''''+adoquery1.fieldbyname('報(bào)價(jià)單號(hào)').AsString+
''''+'and wldm='+''''+adoquery1.fieldbyname('物料代碼').AsString+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
if adoquery1.Active then adoquery1.Close;
adoquery1.Open;
except
showmessage('更新報(bào)價(jià)單失敗');
end;
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmgysbj.RzBitBtn6Click(Sender: TObject);
begin
if not qxjc(userid,'bjd_del')and (username<>trim(dbedit5.Text)) then exit;
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then exit;
if jcsj then exit;
if messagebox(handle,'是否真的要?jiǎng)h除該報(bào)價(jià)單?','警告',mb_yesno+mb_iconquestion)=idno then exit;
try
strsql:='delete from wlbjmx where bjdh='+''''+trim(dbedit1.Text)+'''';
adodel(adoquery3,strsql);
adoquery2.Delete;
adoquery2.Requery();
adoquery3.Close;
adoquery1.Requery();
except
showmessage('刪除報(bào)價(jià)單失敗');
end;
end;
procedure Tfrmgysbj.RzBitBtn12Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmgysbj.RzMenuToolbarButton1Click(Sender: TObject);
begin
if (not (adoquery2.State in[dsinsert])) and (not (adoquery2.State in[dsedit])) then exit;
strhthm:='';
lbname:='';
frmgyslb:=tfrmgyslb.Create(self);
frmgyslb.ShowModal;
dbedit3.Text:=lbname;
dbedit11.Text:=strhthm;
end;
procedure Tfrmgysbj.RzMenuToolbarButton2Click(Sender: TObject);
begin
if (not (adoquery2.State in[dsinsert])) and (not (adoquery2.State in[dsedit])) then exit;
frmcgjhdh_lb:=tfrmcgjhdh_lb.Create(self);
frmcgjhdh_lb.ShowModal;
dbedit4.Text:=strhthm;
end;
procedure Tfrmgysbj.DBEdit1Change(Sender: TObject);
begin
if not adoquery2.Active then exit;
strsql:='select * from view_wlbjmx where 報(bào)價(jià)單號(hào)='+''''+trim(dbedit1.Text)+''''+
' order by 物料代碼 asc';
adoexect(adoquery1,strsql);
end;
procedure Tfrmgysbj.RzBitBtn5Click(Sender: TObject);
begin
if adoquery4.Active then adoquery4.Close;
adoquery4.Parameters.ParamByName('bjdh').Value:=trim(dbedit1.Text);
adoquery4.Open;
form3.frDBDataSet1.dataset:=adoquery1;
form3.frDBDataSet2.dataset:=adoquery4;
form3.frReport1.DoublePass := True;
form3.frReport1.Clear;
form3.frReport1.LoadFromFile(strpath+'/report/bjd.frf');
frVariables['username']:=username;
form3.frReport1.Preview := Form3.frPreview1;
if form3.frReport1.PrepareReport then
begin
form3.frReport1.ShowPreparedReport;
end;
form3.ShowModal;
adoquery4.Close;
end;
procedure Tfrmgysbj.dtp2Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmgysbj.dtp3Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmgysbj.RzPageControl1Change(Sender: TObject);
begin
if jcsj then
begin
RzPageControl1.ActivePageIndex:=0;
end;
end;
procedure Tfrmgysbj.DBGridEh1DblClick(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
end;
procedure Tfrmgysbj.DBGridEh1TitleClick(Column: TColumnEh);
begin
Compositor(adoquery1,Column);
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -