lld.~pas
来自「应对服装行业的生产成本控制系统」· ~PAS 代码 · 共 1,072 行 · 第 1/2 页
~PAS
1,072 行
unit lld;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, Grids, DBGrids, ExtCtrls, DBCtrls,
DB, ADODB, DBClient;
type
TFrmlld = class(TForm)
Pz: TPanel;
Label25: TLabel;
Label26: TLabel;
Label28: TLabel;
Label29: TLabel;
Label41: TLabel;
SpeedButton2: TSpeedButton;
help: TLabel;
GroupBox4: TGroupBox;
tddh: TEdit;
tcldw: TEdit;
tlldh: TEdit;
DBGrid2: TDBGrid;
tclmc: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
tdj: TEdit;
tbz: TEdit;
tsl: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
tclfl: TEdit;
DBGrid1: TDBGrid;
Pd: TPanel;
Label1: TLabel;
rq: TDateTimePicker;
Label2: TLabel;
tje: TEdit;
pq: TPanel;
csq: TCheckBox;
cddh: TCheckBox;
qddh: TEdit;
cjglx: TCheckBox;
csz: TCheckBox;
sz: TDateTimePicker;
qjglx: TEdit;
ckhmc: TCheckBox;
qkhmc: TEdit;
ccpmc: TCheckBox;
qcpmc: TEdit;
csl: TCheckBox;
ccpfl: TCheckBox;
qsl: TEdit;
qcpfl: TEdit;
ccpdw: TCheckBox;
cdj: TCheckBox;
qcpdw: TEdit;
qdj: TEdit;
sq: TDateTimePicker;
cwgzt: TCheckBox;
cje: TCheckBox;
qwgzt: TEdit;
qje: TEdit;
Cjq: TCheckBox;
Cjz: TCheckBox;
jz: TDateTimePicker;
jq: TDateTimePicker;
Panel7: TPanel;
Label44: TLabel;
Label45: TLabel;
Label50: TLabel;
tfb: TEdit;
tfz: TEdit;
tllr: TEdit;
Label9: TLabel;
Label10: TLabel;
tflr: TEdit;
tzgr: TEdit;
tggxh: TEdit;
bnew: TBitBtn;
bsave: TBitBtn;
bcancel: TBitBtn;
bprint: TBitBtn;
breturn: TBitBtn;
Bquery: TBitBtn;
GroupBox1: TGroupBox;
DBGrid5: TDBGrid;
DBGrid4: TDBGrid;
tys: TEdit;
DBGrid6: TDBGrid;
DBGrid3: TDBGrid;
procedure tdjKeyPress(Sender: TObject; var Key: Char);
procedure tslKeyPress(Sender: TObject; var Key: Char);
procedure tlldhKeyPress(Sender: TObject; var Key: Char);
procedure tclmcKeyPress(Sender: TObject; var Key: Char);
procedure tddhKeyPress(Sender: TObject; var Key: Char);
procedure tcldwKeyPress(Sender: TObject; var Key: Char);
procedure tbzKeyPress(Sender: TObject; var Key: Char);
procedure tclmcChange(Sender: TObject);
procedure tddhChange(Sender: TObject);
procedure bcancelClick(Sender: TObject);
procedure bprintClick(Sender: TObject);
procedure breturnClick(Sender: TObject);
procedure DBGrid4DblClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure tslChange(Sender: TObject);
procedure bsaveClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure tclflKeyPress(Sender: TObject; var Key: Char);
procedure DBGrid3DblClick(Sender: TObject);
procedure rqKeyPress(Sender: TObject; var Key: Char);
procedure tjeKeyPress(Sender: TObject; var Key: Char);
procedure BqueryClick(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure bnewClick(Sender: TObject);
procedure tllrChange(Sender: TObject);
procedure DBGrid5TitleClick(Column: TColumn);
procedure DBGrid5DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure SpeedButton2Click(Sender: TObject);
procedure tfbKeyPress(Sender: TObject; var Key: Char);
procedure tfzKeyPress(Sender: TObject; var Key: Char);
procedure tllrKeyPress(Sender: TObject; var Key: Char);
procedure tflrKeyPress(Sender: TObject; var Key: Char);
procedure tzgrKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
rzczy,rzsj,rzjsj,rzcsj:string;
errzt: integer;
errcode:boolean;
commandstring,commandstringq: string;
function check():boolean;
function khchange():boolean;
function save():boolean;
function errdelete():boolean;
public
{ Public declarations }
end;
var
Frmlld: TFrmlld;
implementation
uses unit28, Unit1, Unit16, xtfz, clml, cpml, yg;
{$R *.dfm}
procedure TFrmlld.tdjKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8,#13,'.']) then
begin
key:=#0;
help.caption:=' 请输入数字!';
end;
if key=#13 then tje.SetFocus;
end;
procedure TFrmlld.tslKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8,#13,'.','-']) then
begin
key:=#0;
help.caption:=' 请输入数字!';
end;
if key=#13 then tdj.SetFocus;
end;
procedure TFrmlld.tlldhKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tys.SetFocus;
end;
procedure TFrmlld.tclmcKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tclfl.SetFocus;
end;
procedure TFrmlld.tddhKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tclmc.SetFocus;
end;
procedure TFrmlld.tcldwKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tggxh.SetFocus;
end;
procedure TFrmlld.tbzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tfb.SetFocus;
end;
function TFrmlld.check:boolean;
begin
result:=true;
if trim(tlldh.Text)='' then
begin
showmessage('编号不能为空!');
result:=false;
exit;
end;
if trim(tddh.Text)='' then
begin
showmessage('订单不存在,请您核对后输入!');
result:=false;
exit;
end;
if trim(tclmc.Text)='' then
begin
showmessage('请选择一个材料名称,如果没有出现在列表中,请添加!');
result:=false;
tclmc.SetFocus;
exit;
end;
if trim(tclfl.Text)='' then
begin
showmessage('请选择一个材料分类,如果没有出现在列表中,请添加!');
result:=false;
tclfl.SetFocus;
exit;
end;
if trim(tcldw.Text)='' then
begin
showmessage('请选择一个材料单位,如果没有出现在列表中,请添加!');
result:=false;
tcldw.SetFocus;
exit;
end;
if trim(tsl.Text)='' then
begin
showmessage('请输入材料数量!');
result:=false;
tsl.SetFocus;
exit;
end;
if trim(tdj.Text)='' then
begin
showmessage('请输入材料单价!');
result:=false;
tdj.SetFocus;
exit;
end;
if trim(tje.Text)='' then
begin
showmessage('请输入材料金额!');
result:=false;
tje.SetFocus;
exit;
end;
if trim(tfb.Text)='' then
begin
showmessage('请输入部门!');
result:=false;
tfb.SetFocus;
exit;
end;
end;
function tFrmlld.khchange:boolean;
var
relation,cx:string;
begin
relation:=' = ''';
cx:='';
commandstring:='select * from dbo.llb';
if trim(tddh.Text)<>'' then
begin
commandstring:=commandstring+' where (ddh'+relation+cx+trim(tddh.Text)+cx+''')'+' order by lldh desc';;
DataModule1.ClientDataSet20.Close;
DataModule1.ClientDataSet20.CommandText:=commandstring;
DataModule1.ClientDataSet20.Open;
end;
end;
procedure TFrmlld.tclmcChange(Sender: TObject);
var
relation,cx:string;
begin
relation:=' like ''';
cx:='%';
commandstring:='select * from dbo.clmlb';
if trim(tclmc.Text)<>'' then
begin
commandstring:=commandstring+' where (clmc'+relation+cx+trim(tclmc.Text)+cx+''')'+' order by xh';;
DataModule1.ClientDataSet15.Close;
DataModule1.ClientDataSet15.CommandText:=commandstring;
DataModule1.ClientDataSet15.Open;
end;
if trim(tclmc.Text)='' then
begin
help.Caption:=' 请您输入或选择一个材料!';
exit;
end;
end;
procedure TFrmlld.tddhChange(Sender: TObject);
begin
khchange;
end;
function TFrmlld.save:boolean;
begin
try
tlldh.Text:=trim(tlldh.Text);
tddh.Text:=trim(tddh.Text);
tclmc.Text:=trim(tclmc.Text);
tclfl.Text:=trim(tclfl.Text);
tcldw.Text:=trim(tcldw.Text);
tggxh.Text:=trim(tggxh.Text);
tys.Text:=trim(tys.Text);
tsl.Text:=trim(tsl.Text);
tdj.Text:=trim(tdj.Text);
tje.Text:=trim(tje.Text);
tbz.Text:=trim(tbz.Text);
tfb.Text:=trim(tfb.Text);
tfz.Text:=trim(tfz.Text);
tllr.Text:=trim(tllr.Text);
tflr.Text:=trim(tflr.Text);
tzgr.Text:=trim(tzgr.Text);
errcode:=true;
errzt:=1;
if not DataModule1.ClientDataSet20.Locate('lldh',tlldh.Text,[]) then
begin
DataModule1.clientdataset20.Edit;
DataModule1.ClientDataSet20.First;
DataModule1.clientdataset20.Insert;
DataModule1.clientdataset20.FieldByName('lldh').AsString:=tlldh.Text;
DataModule1.clientdataset20.FieldByName('ddh').AsString:=tddh.Text;
DataModule1.clientdataset20.FieldByName('rq').AsString:=formatdatetime('yyyy-mm-dd',rq.DateTime);
DataModule1.clientdataset20.FieldByName('clmc').AsString:=tclmc.Text;
DataModule1.clientdataset20.FieldByName('clfl').AsString:=tclfl.Text;
DataModule1.clientdataset20.FieldByName('dw').AsString:=tcldw.Text;
DataModule1.clientdataset20.FieldByName('ggxh').AsString:=tggxh.Text;
DataModule1.clientdataset20.FieldByName('ys').AsString:=tys.Text;
DataModule1.clientdataset20.FieldByName('sl').AsString:=tsl.Text;
DataModule1.clientdataset20.FieldByName('dj').AsString:=tdj.Text;
DataModule1.clientdataset20.FieldByName('je').AsString:=tje.Text;
DataModule1.clientdataset20.FieldByName('bz').AsString:=tbz.Text;
DataModule1.clientdataset20.FieldByName('fb').AsString:=tfb.Text;
DataModule1.clientdataset20.FieldByName('fz').AsString:=tfz.Text;
DataModule1.clientdataset20.FieldByName('llr').AsString:=tllr.Text;
DataModule1.clientdataset20.FieldByName('flr').AsString:=tflr.Text;
DataModule1.clientdataset20.FieldByName('zgr').AsString:=tzgr.Text;
DataModule1.clientdataset20.FieldByName('czy').AsString:=trim(form1.StatusBar1.Panels[4].text);
DataModule1.clientdataset20.ApplyUpdates(-1);
end;
errcode:=false;
errzt:=0;
except
errcode:=true;
errzt:=1;
showmessage('数据库没有打开!');
end;
end;
procedure TFrmlld.bcancelClick(Sender: TObject);
var
i,i1:integer;
begin
bsave.Enabled:=false;
bcancel.Enabled:=false;
bnew.Enabled:=false;
bprint.Enabled:=false;
tlldh.Text:='';
tddh.Text:='';
tclmc.Text:='';
tclfl.Text:='';
tcldw.Text:='';
tggxh.Text:='';
tys.Text:='';
tsl.Text:='';
tdj.Text:='';
tje.Text:='';
tbz.Text:='';
tfb.Text:='';
tfz.Text:='';
tllr.Text:='';
tflr.Text:='';
tzgr.Text:='';
help.Caption:=' 要记录请点击〈新增〉按钮!';
dbgrid1.Enabled:=true;
end;
procedure TFrmlld.bprintClick(Sender: TObject);
begin
help.Caption:=' 暂不提供打印功能!';
end;
procedure TFrmlld.breturnClick(Sender: TObject);
begin
try
rzcsj:=datetimetostr(now);
form16.WriteTorz(rzczy,rzsj,rzjsj,rzcsj);
DataModule1.ClientDataSet17.IndexFieldNames:='';
if DataModule1.clientdataset17.Active then DataModule1.ClientDataSet17.Active:=false;
DataModule1.ClientDataSet20.IndexFieldNames:='';
if DataModule1.clientdataset20.Active then DataModule1.ClientDataSet20.Active:=false;
if DataModule1.clientdataset18.Active then DataModule1.ClientDataSet18.Active:=false;
if DataModule1.clientdataset3.Active then DataModule1.ClientDataSet3.Active:=false;
if DataModule1.clientdataset15.Active then DataModule1.ClientDataSet15.Active:=false;
if DataModule1.clientdataset24.Active then DataModule1.ClientDataSet24.Active:=false;
except
showmessage('数据库没有打开!');
end;
close;
end;
procedure TFrmlld.DBGrid4DblClick(Sender: TObject);
begin
if not DataModule1.ClientDataSet15.Active then exit;
if DataModule1.ClientDataSet15.RecordCount>0 then
begin
tclmc.Text:=DataModule1.ClientDataSet15.FieldByName('clmc').AsString;
tclfl.Text:=DataModule1.ClientDataSet15.FieldByName('clfl').AsString;
tcldw.text:=DataModule1.ClientDataSet15.FieldByName('cldw').AsString;
tggxh.SetFocus;
end;
end;
procedure TFrmlld.DBGrid1TitleClick(Column: TColumn);
var i : integer;
begin
for i:= 1 to DBGrid1.Columns.Count do
begin
//恢复所有标题字体为默认
DBGrid1.Columns[i-1].Title.Font.Color := clBlue;
DBGrid1.Columns[i-1].Title.Font.Style := [];
end;
if DataModule1.ClientDataSet17.IndexFieldNames<>(Column.FieldName) then //判断原排序方式
begin
DataModule1.ClientDataSet17.IndexFieldNames:= Column.FieldName;
Column.Title.Font.Color := clRed; //改变标题行字体为红色,表示当前的排序方式为升序
Column.Title.Font.Style := [fsBold];
end;
end;
procedure TFrmlld.tslChange(Sender: TObject);
var
zhrmb:string;
begin
if trim(tje.Text)='' then tje.Text:='0';
if trim(tdj.Text)='' then tdj.Text:='0';
if (trim(tsl.Text)<>'') and (trim(tdj.Text)<>'') then
begin
tje.Text:=formatfloat('0.00',strtofloat(tsl.Text)*strtofloat(tdj.Text));
end;
end;
procedure TFrmlld.bsaveClick(Sender: TObject);
var
datestr:string;
begin
if not bsave.Enabled then exit;
bsave.Enabled:=false;
bcancel.Enabled:=false;
errcode:=true;
errzt:=1;
if not check then
begin
bsave.Enabled:=true;
bcancel.Enabled:=true;
exit;
end;
datestr:=frmxtfz.checkfzrq(formatdatetime('yyyy-mm-dd',rq.date));
if datestr<>'' then
begin
help.Caption:=' 封账日期为'+datestr+'您不能添加封账日期前的数据';
exit;
end;
form1.clmc:=trim(tclmc.Text);
form1.clfl:=trim(tclfl.Text);
form1.cldw:=trim(tcldw.Text);
frmclml.checkcl(form1.clmc,form1.clfl,form1.cldw);
if form1.clmc='' then
begin
bsave.Enabled:=true;
bcancel.Enabled:=true;
tclmc.SetFocus;
help.Caption:=' 该材料不存在,请您输入正确的材料名称!';
exit;
end;
form1.clmc:='';
form1.clfl:='';
form1.cldw:='';
form1.yg:=trim(tllr.Text);
form1.fb:=trim(tfb.Text);
form1.fz:=trim(tfz.Text);
frmyg.checkll(form1.yg,form1.fb,form1.fz);
if form1.yg='' then
begin
bsave.Enabled:=true;
bcancel.Enabled:=true;
tllr.SetFocus;
help.Caption:=' 该员工不存在,请您输入正确的员工!';
exit;
end;
form1.yg:='';
form1.fb:='';
form1.fz:='';
try
form1.dorandombh;
DataModule1.clientdataset11.Refresh;
DataModule1.ClientDataSet11.First;
tlldh.Text:=floattostr(DataModule1.clientdataset11.FieldByName('lldh').AsFloat)+form1.randombh+form1.tbh.Text;
DataModule1.ClientDataSet11.Edit;
DataModule1.ClientDataSet11.FieldByName('lldh').AsFloat:= DataModule1.ClientDataSet11.FieldByName('lldh').AsFloat+1;
DataModule1.ClientDataSet11.ApplyUpdates(-1);
if DataModule1.ClientDataSet20.Locate('lldh',tlldh.Text,[]) then
begin
showmessage('该编号已经存在,请您重新输入!');
bsave.Enabled:=false;
bcancel.Enabled:=true;
bnew.Enabled:=true;
exit;
end;
save;
if errcode or (errzt<>0) then save;
if errcode or (errzt<>0) then save;
if errcode or (errzt<>0) then save;
if errcode or (errzt<>0) then
begin
showmessage(' 数据库在保存主记录时失败,请您稍后重新保存!');
errdelete;
bsave.Enabled:=true;
bcancel.Enabled:=true;
exit;
end;
help.Caption:=' 记录领料操作成功!' ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?