📄 uwlpd_lr.pas
字号:
unit uwlpd_lr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzButton, ExtCtrls, StdCtrls, DBCtrls, Mask, ComCtrls, RzDTP,
Grids, DBGridEh, RzTabs, Menus, DB, ADODB, Buttons, FR_DSet, FR_DBSet,
FR_Class, RzDBDTP;
type
Tfrmwlpd_lr = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
RzBitBtn6: TRzBitBtn;
RzBitBtn7: TRzBitBtn;
dtp1: TRzDateTimePicker;
dtp2: TRzDateTimePicker;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label8: TLabel;
Label9: TLabel;
DBEdit1: TDBEdit;
DBEdit4: TDBEdit;
DBEdit7: TDBEdit;
DBMemo1: TDBMemo;
Label10: TLabel;
DBEdit8: TDBEdit;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
DataSource2: TDataSource;
RzBitBtn8: TRzBitBtn;
DBNavigator1: TDBNavigator;
GroupBox1: TGroupBox;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
RzBitBtn9: TRzBitBtn;
RzBitBtn10: TRzBitBtn;
ADOQuery4: TADOQuery;
N2: TMenuItem;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
frDBDataSet2: TfrDBDataSet;
ADOQuery5: TADOQuery;
Label7: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit1: TEdit;
dtprq: TRzDBDateTimePicker;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Edit3: TEdit;
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure csh();
procedure DBEdit1Change(Sender: TObject);
procedure dtp1Exit(Sender: TObject);
procedure dtp2Exit(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzBitBtn8Click(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure RzBitBtn9Click(Sender: TObject);
procedure RzBitBtn10Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DBGridEh1DblClick(Sender: TObject);
procedure RzBitBtn7Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RzBitBtn5Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure RzBitBtn6Click(Sender: TObject);
procedure DBGridEh1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2Exit(Sender: TObject);
procedure DBGridEh1TitleClick(Column: TColumnEh);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmwlpd_lr: Tfrmwlpd_lr;
implementation
uses uconst,ufunction,udm1,ucx,uwllb;
{$R *.dfm}
procedure tfrmwlpd_lr.csh();
begin
if adoquery2.Active then adoquery1.Close;
adoquery2.SQL.Clear;
strsql:='select pddh as 盘点单号,pdr as 负责人,djr as 登记人,'+
'srrq as 日期,pdrq as 盘点日期,bz as 备注 from wlpd_main where'+
' srrq>=:rq1 and srrq<=:rq2 order by pddh desc';
adoquery2.SQL.add(strsql);
adoquery2.Parameters.ParamByName('rq1').Value:=dtp1.Date;
adoquery2.Parameters.ParamByName('rq2').Value:=dtp2.Date;
adoquery2.Open;
end;
procedure Tfrmwlpd_lr.RzBitBtn1Click(Sender: TObject);
begin
if not qxjc(userid,'pdd_add') then exit;
adoquery2.Append;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
dbedit7.Text:=username;
dbedit8.Text:=datetostr(date);
dbedit2.Text:=datetostr(date);
dtprq.Date:=date;
DBEdit4.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBEdit8.ReadOnly:=false;
dbmemo1.ReadOnly:=false;
end;
procedure Tfrmwlpd_lr.RzBitBtn2Click(Sender: TObject);
begin
{if datetostr(date)<>trim(dbedit8.Text) then
begin
showmessage('只能修改当天的盘点');
exit;
end;
}
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then exit;
if not qxjc(userid,'pdd_edit') and (username<>trim(dbedit7.Text)) then exit;
adoquery2.Edit;
dbedit7.Text:=username;
dbedit8.Text:=datetostr(date);
dtprq.Date:=date;
RzBitBtn1.Enabled:=false;
RzBitBtn3.Enabled:=true;
DBEdit4.ReadOnly:=false;
DBEdit7.ReadOnly:=false;
DBEdit8.ReadOnly:=false;
dbmemo1.ReadOnly:=false;
end;
procedure Tfrmwlpd_lr.FormCreate(Sender: TObject);
begin
dtp1.Date:=date-30;
dtp2.Date:=date;
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
adoquery4.Connection:=dm1.ADOConnection1;
adoquery5.Connection:=dm1.ADOConnection1;
strsql:='select * from view_wlpd where 盘点单号='+''''+trim(dbedit1.text)+'''';
adoexect(adoquery1,strsql);
csh;
end;
procedure Tfrmwlpd_lr.DBEdit1Change(Sender: TObject);
begin
if trim(dbedit1.Text)='' then
begin
adoquery1.Close;
exit;
end;
strsql:='select * from view_wlpd where 盘点单号='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery1,strsql);
end;
procedure Tfrmwlpd_lr.dtp1Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmwlpd_lr.dtp2Exit(Sender: TObject);
begin
csh;
end;
procedure Tfrmwlpd_lr.RzBitBtn3Click(Sender: TObject);
var
qz:string;
begin
IF TRIM(dbedit4.Text)='' then
begin
showmessage('盘点负责人不能为空!');
dbedit4.SetFocus;
exit;
end;
if adoquery2.State in [dsinsert] then
begin
qz:='PDDH'+formatdatetime('yy',now)+
formatdatetime('mm',now)+formatdatetime('dd',date);
strsql:='select * from wlpd_main where pddh like'+''''+qz+'%'+''''+'order by pddh asc';
adoexect(adoquery3,strsql);
dbedit1.Text:=creatdh(adoquery3,11,qz);
end;
adoquery2.FieldByName('日期').AsString:=datetostr(date);
adoquery2.FieldByName('登记人').AsString:=username;
adoquery2.Post;
adoquery1.Close;
adoquery1.Open;
RzBitBtn1.Enabled:=true;
RzBitBtn2.Enabled:=true;
RzBitBtn3.Enabled:=false;
DBEdit4.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBEdit8.ReadOnly:=true;
dbmemo1.ReadOnly:=true;
end;
procedure Tfrmwlpd_lr.RzBitBtn8Click(Sender: TObject);
begin
adoquery2.CancelUpdates;
RzBitBtn1.Enabled:=true;
RzBitBtn3.Enabled:=false;
DBEdit4.ReadOnly:=true;
DBEdit7.ReadOnly:=true;
DBEdit8.ReadOnly:=true;
dbmemo1.ReadOnly:=true;
end;
procedure Tfrmwlpd_lr.TabSheet2Enter(Sender: TObject);
begin
sl:=0;
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then exit;
edit2.Text:=adoquery1.fieldbyname('实际库存').AsString;
edit1.Text:=adoquery1.fieldbyname('剩余库存').AsString;
edit2.SetFocus;
end;
procedure Tfrmwlpd_lr.RzBitBtn9Click(Sender: TObject);
begin
Edit2Exit(self);
{if trim(datetostr(date))<>trim(dbedit8.Text) then
begin
showmessage('只能修改当天的盘点');
exit;
end;
}
try
strsql:='select * from wlpd_detail where pddh='+''''+trim(adoquery1.fieldbyname('盘点单号').AsString)+''''+
'and wldm='+''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adoexect(adoquery3,strsql);
adoquery3.Edit;
adoquery3.FieldByName('sjkc').Value:=strtofloat(edit2.Text);
adoquery3.FieldByName('sykc').Value:=strtofloat(edit1.Text);
adoquery3.FieldByName('yk').Value:=strtofloat(edit3.Text);
adoquery3.Post;
strsql:='update wldmk set sjkc='+trim(edit2.Text)+',sykc='+trim(edit2.Text)+'-yfpkc where wldm='+
''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adodel(adoquery3,strsql);
except
showmessage('更新数据库失败');
end;
adoquery1.Close;
adoquery1.Open;
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmwlpd_lr.RzBitBtn10Click(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=0;
end;
procedure Tfrmwlpd_lr.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
procedure Tfrmwlpd_lr.DBGridEh1DblClick(Sender: TObject);
begin
if adoquery1.Recordset.EOF and adoquery1.Recordset.BOF then exit;
RzPageControl1.ActivePageIndex:=1;
end;
procedure Tfrmwlpd_lr.RzBitBtn7Click(Sender: TObject);
begin
close;
end;
procedure Tfrmwlpd_lr.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (adoquery2.State in[dsinsert]) or (adoquery2.State in[dsedit]) then
begin
if messagebox(handle,'该单尚在编辑状态,是否放弃编辑?','询问',mb_yesno+mb_iconquestion)=idyes then
begin
RzBitBtn3Click(self);
end else begin
RzBitBtn8Click(self);
end;
end;
frReport1.Free;
action:=cafree;
end;
procedure Tfrmwlpd_lr.RzBitBtn5Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery2;
frmcx.ShowModal;
adoquery2:=frmcx.adocx;
ADOquery2.Requery();
end;
procedure Tfrmwlpd_lr.N1Click(Sender: TObject);
begin
if not qxjc(userid,'pdd_edit') and (username<>trim(dbedit7.Text)) then exit;
strsql:='delete from wlpd_detail where pddh='+''''+trim(adoquery1.fieldbyname('盘点单号').AsString)+
''''+'and wldm='+''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
adodel(adoquery3,strsql);
adoquery3.Close;
adoquery1.Close;
adoquery1.Open;
end;
procedure Tfrmwlpd_lr.N2Click(Sender: TObject);
var
a:string;
begin
zmsl:=0;
if not qxjc(userid,'pdd_edit') and (username<>trim(dbedit7.Text)) then exit;
if adoquery2.Recordset.eof and adoquery2.Recordset.BOF then exit;
if (adoquery2.State in[dsedit]) or (adoquery2.State in[dsinsert]) then
begin
showmessage('盘点单尚处于编辑状态,保存编辑结果后,才能增加记录!');
exit;
end;
frmwllb.ShowModal;
if wldm='' then exit;
strsql:='select * from wlpd_detail where pddh='+''''+trim(dbedit1.Text)+''''+
'and wldm='+''''+wldm+'''';
adoexect(adoquery3,strsql);
if adoquery3.Recordset.BOF and adoquery3.Recordset.EOF then
begin
adoquery3.Append;
adoquery3.FieldByName('pddh').AsString:=trim(dbedit1.Text);
adoquery3.FieldByName('wldm').AsString:=wldm;
adoquery3.FieldByName('sjkc').Value:=0;
adoquery3.FieldByName('sykc').Value:=0;
adoquery3.FieldByName('zmsl').Value:=zmsl;
adoquery3.Post;
end else begin
showmessage('该物料已经存在!');
exit;
end;
adoquery4.Close;
adoquery3.Close;
adoquery1.Close;
adoquery1.Open;
adoquery1.First;
RzPageControl1.ActivePageIndex:=1;
wldm:='';
end;
procedure Tfrmwlpd_lr.RzBitBtn6Click(Sender: TObject);
begin
if adoquery5.Active then adoquery5.Close;
adoquery5.Parameters.ParamByName('pddh').Value:=trim(dbedit1.Text);
frReport1.DoublePass := True;
frReport1.Clear;
frReport1.LoadFromFile(strpath+'/report/wlpd.frf');
frVariables['username']:=username;
frreport1.ShowReport;
end;
procedure Tfrmwlpd_lr.DBGridEh1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
DBGridEh1DblClick(self);
end;
procedure Tfrmwlpd_lr.Edit2Exit(Sender: TObject);
begin
strsql:='select * from wldmk where wldm='+''''+trim(dbedit9.Text)+'''';
adoexect(adoquery3,strsql);
edit1.Text:=floattostr(strtofloat(edit2.Text)-adoquery3.fieldbyname('yfpkc').Value);
edit3.Text:=floattostr(strtofloat(edit2.Text)-strtofloat(dbedit3.Text));
adoquery3.Close;
end;
procedure Tfrmwlpd_lr.DBGridEh1TitleClick(Column: TColumnEh);
begin
Compositor(adoquery1,Column);
end;
procedure Tfrmwlpd_lr.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if gdselected in state then//如果当前区域是被选区域
begin
//设置被选区域颜色
tDBGridEh(sender).Canvas.Brush.Color:=clinfobk;
//设置被选区域字体颜色
tDBGridEh(sender).Canvas.Font.Color:=clfuchsia;
end
else //如果是当前区域不是被选择区域
begin
//如果是偶数行,则背景颜色为 clskyblue
if tDBGridEh(sender).DataSource.DataSet.RecNo mod 2 =0 then
tDBGridEh(sender).Canvas.Brush.Color:=clskyblue
else
//如果是奇数行,则背景颜色为 clinactivecaptiontext
tDBGridEh(sender).Canvas.Brush.Color:=clWhite;
end;
//调用默认的绘图函数
tDBGridEh(sender).DefaultDrawColumnCell(rect,datacol,column,state);
end;
procedure Tfrmwlpd_lr.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#46,#8] ) then
key:=#0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -