📄 uqtcgjh_lr.pas
字号:
unit uqtcgjh_lr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, RzButton, ExtCtrls, StdCtrls, Mask, Buttons, Grids,
DBGridEh, DB, ADODB, RzTabs, ComCtrls, FR_DSet, FR_DBSet, FR_Class, RzDTP,
GridsEh, Menus;
type
Tfrmqtcgjh_lr = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
RzBitBtn4: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
RzBitBtn6: TRzBitBtn;
RzBitBtn7: TRzBitBtn;
RzBitBtn8: TRzBitBtn;
RzBitBtn9: TRzBitBtn;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBMemo1: TDBMemo;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
DBGridEh1: TDBGridEh;
GroupBox1: TGroupBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
Edit1: TEdit;
RzBitBtn12: TRzBitBtn;
RzBitBtn13: TRzBitBtn;
ADOQuery4: TADOQuery;
DataSource3: TDataSource;
dtp1: TRzDateTimePicker;
Label14: TLabel;
DBEdit11: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBCheckBox2: TDBCheckBox;
Label6: TLabel;
DBEdit5: TDBEdit;
RzMenuToolbarButton2: TRzMenuToolbarButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Label15: TLabel;
dtp2: TRzDateTimePicker;
dtp3: TRzDateTimePicker;
Edit2: TEdit;
DBEdit10: TDBEdit;
procedure FormCreate(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzBitBtn6Click(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure RzBitBtn8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RzBitBtn9Click(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure RzBitBtn12Click(Sender: TObject);
procedure RzBitBtn13Click(Sender: TObject);
procedure RzBitBtn7Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn5Click(Sender: TObject);
procedure RzBitBtn4Click(Sender: TObject);
procedure DBEdit5Enter(Sender: TObject);
procedure DBEdit5Exit(Sender: TObject);
procedure RzMenuToolbarButton2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(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 }
cgsl:longint;
public
{ Public declarations }
end;
var
frmqtcgjh_lr: Tfrmqtcgjh_lr;
implementation
uses uconst,ufunction,udm1,uxqdh_lb,uwllb,ucx,ugyslb,unit3;
{$R *.dfm}
procedure tfrmqtcgjh_lr.csh();
begin
if jb<>'系统维护' then
strsql:='select cgjhdh as 采购计划单号,cgxqdh as 采购需求单号,shhe as 审核,'+
'sfxd as 下单,gysdm as 供应商代码,gysmc as 供应商名称,srrq as 日期,djr as 负责人,node as 备注'+
' from cgjh_main where cgxqdh=:cgjhdh and srrq>=:rq1 and srrq<=:rq2'+
' and djr='+''''+trim(username)+''''+' order by cgjhdh desc'
else
strsql:='select cgjhdh as 采购计划单号,cgxqdh as 采购需求单号,shhe as 审核,'+
'sfxd as 下单,gysdm as 供应商代码,gysmc as 供应商名称,srrq as 日期,djr as 负责人,node as 备注'+
' from cgjh_main where cgxqdh=:cgjhdh and srrq>=:rq1 and srrq<=:rq2'+
' order by cgjhdh desc';
if adoquery4.Active then adoquery4.Close;
adoquery4.SQL.Clear;
adoquery4.sql.Add(strsql);
adoquery4.Parameters.ParamByName('rq1').Value:=dtp2.Date;
adoquery4.Parameters.ParamByName('rq2').Value:=dtp3.Date;
adoquery4.Parameters.ParamByName('cgjhdh').Value:='其它采购需求';
adoquery4.Open;
end;
function tfrmqtcgjh_lr.jcsj():boolean;
begin
strsql:='select * from cgdd_main where jhdh='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
begin
showmessage('此计划单已被采用,不能编辑!');
result:=true;
end else begin
result:=false;
end;
end;
procedure Tfrmqtcgjh_lr.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 Tfrmqtcgjh_lr.RzBitBtn1Click(Sender: TObject);
begin
if not qxjc(userid,'jhd_add') then exit;
adoquery4.Append;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
dbedit3.Text:=username;
dbedit4.Text:=datetostr(date);
dbedit2.Text:='其它采购需求';
end;
procedure Tfrmqtcgjh_lr.RzBitBtn2Click(Sender: TObject);
begin
if adoquery4.Recordset.EOF and adoquery4.Recordset.BOF then exit;
if not qxjc(userid,'jhd_edit') and (username<>trim(dbedit3.Text)) then exit;
if jcsj then exit;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
adoquery4.edit;
dbedit3.Text:=username;
dbedit4.Text:=datetostr(date);
end;
procedure Tfrmqtcgjh_lr.RzBitBtn3Click(Sender: TObject);
var
qz:string;
begin
if trim(dbedit2.Text)='' then
begin
showmessage('没有选择物料需求单号');
exit;
end;
if adoquery4.State in[dsinsert] then
begin
qz:='CGJH'+formatdatetime('yy',now)+
formatdatetime('mm',now)+formatdatetime('dd',date);
strsql:='select * from cgjh_main where cgjhdh like'+''''+qz+'%'+''''+'order by cgjhdh asc';
adoexect(adoquery3,strsql);
dbedit1.Text:=creatdh(adoquery3,11,qz);
end;
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
adoquery4.post;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn6Click(Sender: TObject);
begin
if not qxjc(userid,'jhd_del')and (username<>trim(dbedit3.Text)) then exit;
if adoquery4.Recordset.EOF and adoquery4.Recordset.BOF then exit;
if jcsj then exit;
if messagebox(handle,'是否真的要删除该计划单?','警告',mb_yesno+mb_iconquestion)=idyes then
begin
strsql:='delete from cgjh_detail where cgjhdh='+''''+trim(dbedit1.Text)+'''';
adodel(adoquery3,strsql);
adoquery4.Delete;
adoquery1.Requery;
end;
end;
procedure Tfrmqtcgjh_lr.DBEdit1Change(Sender: TObject);
begin
if not adoquery4.Active then exit;
strsql:='select * from view_cgjh where cgjhdh='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery1,strsql);
end;
procedure Tfrmqtcgjh_lr.RzBitBtn8Click(Sender: TObject);
begin
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
adoquery4.CancelUpdates;
end;
procedure Tfrmqtcgjh_lr.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (adoquery4.State in[dsinsert]) or (adoquery4.State in[dsedit]) then
begin
if messagebox(handle,'计划当前正处于编辑状态,是否需要保存?','询问'
,mb_yesno+mb_iconquestion)=idyes then
begin
RzBitBtn3Click(self);
end else begin
RzBitBtn8Click(self);
end;
end;
action:=cafree;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn9Click(Sender: TObject);
begin
close;
end;
procedure Tfrmqtcgjh_lr.TabSheet2Enter(Sender: TObject);
begin
if not adoquery1.Active then exit;
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then exit;
edit1.Text:=adoquery1.fieldbyname('jhsl').Value;
edit2.Text:=adoquery1.fieldbyname('xqsl').Value;
dtp1.Date:=adoquery1.fieldbyname('srrq').Value;
edit1.SetFocus;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn12Click(Sender: TObject);
begin
if trim(edit1.Text)='0' then
begin
showmessage('计划数量不呢为0');
exit;
end;
try
strsql:='update cgjh_detail set jhsl='+trim(edit1.text)+
',srrq='+''''+datetostr(dtp1.Date)+''''+' where cgjhdh='+''''+
trim(adoquery1.fieldbyname('cgjhdh').AsString)+''''+'and wldm='+
''''+trim(adoquery1.fieldbyname('wldm').AsString)+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
adoquery1.Requery();
except
showmessage('更新数据失败');
end;
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn13Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn7Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery4;
frmcx.ShowModal;
adoquery4:=frmcx.adocx;
ADOquery4.Requery();
end;
procedure Tfrmqtcgjh_lr.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn5Click(Sender: TObject);
begin
if adoquery2.Active then adoquery2.Close;
adoquery2.Parameters.ParamByName('cgjhdh').Value:=trim(dbedit1.Text);
adoquery2.Open;
form3.frDBDataSet1.dataset:=adoquery1;
form3.frDBDataSet2.dataset:=adoquery2;
form3.frReport1.DoublePass := True;
form3.frReport1.Clear;
form3.frReport1.LoadFromFile(strpath+'/report/cgwljh.frf');
frVariables['username']:=username;
form3.frReport1.Preview := Form3.frPreview1;
if form3.frReport1.PrepareReport then
begin
form3.frReport1.ShowPreparedReport;
end;
form3.ShowModal;
adoquery2.Close;
end;
procedure Tfrmqtcgjh_lr.RzBitBtn4Click(Sender: TObject);
begin
if not qxjc(userid,'jhd_shhe') then exit;
try
strsql:='update cgjh_main set shhe=1'+
' where cgjhdh='+''''+trim(dbedit1.Text)+'''';
adodel(adoquery3,strsql);
except
showmessage('审核出错!');
exit;
end;
adoquery3.Close;
end;
procedure Tfrmqtcgjh_lr.DBEdit5Enter(Sender: TObject);
begin
RzMenuToolbarButton2.Visible:=true;
end;
procedure Tfrmqtcgjh_lr.DBEdit5Exit(Sender: TObject);
begin
RzMenuToolbarButton2.Visible:=false;
end;
procedure Tfrmqtcgjh_lr.RzMenuToolbarButton2Click(Sender: TObject);
begin
if (not (adoquery4.State in [dsinsert])) and (not (adoquery4.State in [dsedit])) then
begin
showmessage('计划单号当前不处于编辑状态,请选择修改后进行编辑!');
exit;
end;
lbname:='';
strhthm:='';
frmgyslb:=tfrmgyslb.create(self);
frmgyslb.ShowModal;
dbedit5.Text:=lbname;
dbedit10.Text:=strhthm;
end;
procedure Tfrmqtcgjh_lr.N1Click(Sender: TObject);
begin
if jcsj then exit;
if not qxjc(userid,'jhd_add') then exit;
title:='';
frmwllb.ShowModal;
if title='' then exit;
try
strsql:='select * from cgjh_detail where cgjhdh='+''''+trim(dbedit1.Text)+''''+
'and wldm='+''''+title+'''';
adoexect(adoquery3,strsql);
if adoquery3.Recordset.eof and adoquery3.Recordset.BOF then
begin
strsql:='insert into cgjh_detail(cgjhdh,wldm,jhsl,xqsl,srrq) values ('+
''''+trim(dbedit1.Text)+''''+','+''''+trim(title)+''''+',0,0,'+''''+
datetostr(date+30)+''''+')';
adodel(adoquery3,strsql);
adoquery3.Close;
adoquery1.Requery;
end else begin
showmessage('此物料在该计划单已存在!');
exit;
end;
except
showmessage('添加记录时出错');
end;
title:='';
end;
procedure Tfrmqtcgjh_lr.N2Click(Sender: TObject);
begin
if jcsj then exit;
if not qxjc(userid,'jhd_del')and (username<>trim(dbedit3.Text)) then exit;
try
strsql:='delete from cgjh_detail where cgjhdh='+''''+
trim(adoquery1.fieldbyname('cgjhdh').AsString)+''''+
'and wldm='+''''+trim(adoquery1.fieldbyname('wldm').AsString)+'''';
adodel(adoquery3,strsql);
adoquery1.Close;
adoquery1.Open;
DBGridEh1.Refresh;
except
showmessage('删除数据失败!');
end;
end;
procedure Tfrmqtcgjh_lr.dtp2Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmqtcgjh_lr.dtp3Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmqtcgjh_lr.RzPageControl1Change(Sender: TObject);
begin
if jcsj then
begin
RzPageControl1.ActivePageIndex:=0;
end;
end;
procedure Tfrmqtcgjh_lr.DBGridEh1DblClick(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
end;
procedure Tfrmqtcgjh_lr.DBGridEh1TitleClick(Column: TColumnEh);
begin
Compositor(adoquery1,Column);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -