📄 data.~pas
字号:
dm.djwhads_cpxsd.Edit;
frm_cpxsdwh.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.djwhads_cpxsdmxAfterPost(DataSet: TDataSet);
begin
dm.djwhads_cpxsd.Edit;
frm_cpxsdwh.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.djwhads_cpxsdmxBeforeEdit(DataSet: TDataSet);
begin
DM.djwhads_cpxsd.Edit;
end;
procedure Tdm.djwhads_cpxsdmxBeforeInsert(DataSet: TDataSet);
begin
if (dm.djwhads_cpxsd.FieldByName('单据号').Value='') or
(dm.djwhads_cpxsd.FieldByName('单据号').IsNull) or
(dm.djwhads_cpxsd.FieldByName('客户id').Value='') or
(dm.djwhads_cpxsd.FieldByName('客户id').IsNull) or
(dm.djwhads_cpxsd.FieldByName('销售员ID').Value='') or
(dm.djwhads_cpxsd.FieldByName('销售员ID').IsNull) or
(dm.djwhads_cpxsd.FieldByName('日期').IsNull) then
begin
MessageDlg('单据头的数据不完整,请先录入.', mtError , [mbOK], 0);
abort;
end;
DM.djwhads_cpXSd.AfterPost:=NIL;
DM.djwhads_cpXSd.BeforePost:=NIL;
IF DM.djwhads_cpXSd.State IN [DSINSERT] THEN
DM.djwhads_cpXSd.Post;
DM.djwhads_cpXSd.Edit;
DM.djwhads_cpXSd.AfterPost:=DM.djwhads_cpxsdAfterPost;
DM.djwhads_cpXSd.BeforePost:=DM.djwhads_cpxsdBeforePost;
end;
procedure Tdm.djwhads_cpxsdmxNewRecord(DataSet: TDataSet);
begin
dm.djwhads_cpxsdmx.FieldByName('单据号').Value:=
dm.djwhads_cpxsd.FieldByName('单据号').Value;
dm.djwhads_cpxsdmx.FieldByName('数量').Value:=1;
dm.djwhads_cpxsdmx.FieldByName('单价').Value:=0;
dm.djwhads_cpxsdmx.FieldByName('金额').Value:=0;
end;
procedure Tdm.djwhads_cpxsdmxPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
showmessage('明细数据不完整!');
end;
procedure Tdm.djwhads_cpjcdmxBeforePost(DataSet: TDataSet);
begin
if (dm.djwhads_cpjcdmx.FieldByName('产品ID').Value='') OR
(dm.djwhads_cpjcdmx.FieldByName('产品ID').IsNull) THEN
begin
showmessage('明细数据不完整.');
abort;
end;
dm.wlpdads.Close;
dm.wlpdads.CommandText:='select * from 产品表 where 产品id='+''''+
dm.djwhads_cpxsdmx.fieldbyname('产品id').Value+'''' ;
dm.wlpdads.Open;
if dm.wlpdads.RecordCount=0 then
begin
showmessage('明细中有不存在的产品,请查清再输。');
abort;
end;
//if dm.djwhads_cpjcdmx.FieldByName('数量').IsNull then
//begin
// dm.djwhads_cpjcdmx.FieldByName('数量').Value:=0
//end;
end;
procedure Tdm.djwhads_cpxsdmxBeforePost(DataSet: TDataSet);
begin
if (dm.djwhads_cpxsdmx.FieldByName('产品ID').Value='') OR
(dm.djwhads_cpxsdmx.FieldByName('产品ID').IsNull) THEN
begin
showmessage('明细数据不完整.');
abort;
end;
dm.wlpdads.Close;
dm.wlpdads.CommandText:='select * from 产品表 where 产品id='+''''+
dm.djwhads_cpxsdmx.fieldbyname('产品id').Value+'''' ;
dm.wlpdads.Open;
if dm.wlpdads.RecordCount=0 then
begin
showmessage('明细中有不存在的产品,请查清再输。');
abort;
end;
//if dm.djwhads_cpxsdmx.FieldByName('数量').IsNull then
//begin
// showmessage('数量必须大于0');
// abort;
//end;
end;
procedure Tdm.djwhads_cpxsdmxDSDesigner3Change(Sender: TField);
begin
if (not dm.djwhads_cpxsdmx.FieldByName('数量').IsNull) and
(not dm.djwhads_cpxsdmx.FieldByName('单价').IsNull) then
dm.djwhads_cpxsdmx.FieldByName('金额').Value:=
dm.djwhads_cpxsdmx.FieldByName('数量').Value*
dm.djwhads_cpxsdmx.FieldByName('单价').Value;
end;
procedure Tdm.djwhads_cpjcdBeforeDelete(DataSet: TDataSet);
begin
decodedate(dm.djwhads_cpjcd.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('单据已结转,不能删除.', mtError , [mbOK], 0);
abort;
end;
dm.adocn.BeginTrans;
dm.adocn.Execute('delete from 成品进仓明细表 where 单据号='+''''+
dm.djwhads_cpjcd.FieldByName('单据号').Value+'''');
end;
procedure Tdm.djwhads_cpxsdBeforeDelete(DataSet: TDataSet);
begin
decodedate(dm.djwhads_cpxsd.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('单据已结转,不能删除.', mtError , [mbOK], 0);
abort;
end;
dm.adocn.BeginTrans;
dm.adocn.Execute('delete from 成品出仓明细表 where 单据号='+''''+
dm.djwhads_cpxsd.FieldByName('单据号').Value+'''');
end;
procedure Tdm.whjcdadsAfterCancel(DataSet: TDataSet);
begin
dm.whjcmxads.CancelBatch;
dm.whjcdads.CancelBatch;
dm.whjcdads.FieldByName('进仓单号').ReadOnly:=true;
end;
procedure Tdm.whjcdadsAfterDelete(DataSet: TDataSet);
begin
DM.whjcdads.UpdateBatch;
dm.adocn.CommitTrans;
end;
procedure Tdm.whjcdadsAfterPost(DataSet: TDataSet);
begin
dm.adocn.BeginTrans;
dm.whjcdads.UpdateBatch;
dm.whjcmxads.UpdateBatch;
dm.adocn.CommitTrans;
dm.whjcdads.FieldByName('进仓单号').ReadOnly:=true;
end;
procedure Tdm.whjcdadsBeforeDelete(DataSet: TDataSet);
begin
decodedate(dm.whjcdads.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('单据已结转,不能删除.', mtError , [mbOK], 0);
abort;
end;
dm.adocn.BeginTrans;
dm.adocn.Execute('delete from 材料进仓明细表 where 进仓单号='+''''+
dm.whjcdads.FieldByName('进仓单号').Value+'''');
end;
procedure Tdm.whjcdadsBeforeInsert(DataSet: TDataSet);
begin
dm.whjcdads.FieldByName('进仓单号').ReadOnly:=false;
end;
procedure Tdm.whjcdadsBeforePost(DataSet: TDataSet);
begin
if (dm.whjcdads.FieldByName('进仓单号').Value='') or
(dm.whjcdads.FieldByName('进仓单号').IsNull) or
(dm.whjcdads.FieldByName('进仓类型id').Value='') or
(dm.whjcdads.FieldByName('进仓类型id').IsNull) or
(dm.whjcdads.FieldByName('供应商id').Value='') or
(dm.whjcdads.FieldByName('供应商id').IsNull) or
(dm.whjcdads.FieldByName('验收人ID').Value='') or
(dm.whjcdads.FieldByName('验收人ID').IsNull) or
(dm.whjcdads.FieldByName('日期').IsNull) then
begin
MessageDlg('单据头的数据不完整,请先录入.', mtError , [mbOK], 0);
abort;
end;
decodedate(dm.whjcdads.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('你所选的日期已结转或者目前还不能处理,请修改日期.', mtError , [mbOK], 0);
abort;
end;
if dm.whjcmxads.Modified then
dm.whjcmxads.Post;
if dm.whjcmxads.RecordCount =0 then
begin
if MessageDlg('单据没有明细项,不能保存,要取消吗?', mterror, [mbok, mbcancel], 0)=mrok then
begin
dm.whjcdads.cancel;
abort
end
else
abort;
end;
end;
procedure Tdm.whjcdadsNewRecord(DataSet: TDataSet);
begin
dm.whjcdads.FieldByName('日期').Value:=date();
end;
procedure Tdm.whjcmxadsAfterDelete(DataSet: TDataSet);
begin
dm.whjcdads.Edit;
jcdwhfrm.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.whjcmxadsAfterPost(DataSet: TDataSet);
begin
dm.whjcdads.Edit;
jcdwhfrm.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.whjcmxadsBeforeEdit(DataSet: TDataSet);
begin
DM.whjcdads.Edit;
end;
procedure Tdm.whjcmxadsBeforeInsert(DataSet: TDataSet);
begin
if (dm.whjcdads.FieldByName('进仓单号').Value='') or
(dm.whjcdads.FieldByName('进仓单号').IsNull) or
(dm.whjcdads.FieldByName('进仓类型id').Value='') or
(dm.whjcdads.FieldByName('进仓类型id').IsNull) or
(dm.whjcdads.FieldByName('供应商id').Value='') or
(dm.whjcdads.FieldByName('供应商id').IsNull) or
(dm.whjcdads.FieldByName('验收人ID').Value='') or
(dm.whjcdads.FieldByName('验收人ID').IsNull) or
(dm.whjcdads.FieldByName('日期').IsNull) then
begin
MessageDlg('单据头的数据不完整,请先录入.', mtError , [mbOK], 0);
abort;
end;
DM.whjcdads.AfterPost:=NIL;
DM.whjcdads.BeforePost:=NIL;
IF DM.whjcdads.State IN [DSINSERT] THEN
DM.whjcdads.Post;
DM.whjcdads.Edit;
DM.whjcdads.AfterPost:=DM.whjcdadsAfterPost;
DM.whjcdads.BeforePost:=DM.whjcdadsBeforePost;
end;
procedure Tdm.whjcmxadsBeforePost(DataSet: TDataSet);
begin
if (dm.whjcmxads.FieldByName('材料编码').Value='') OR
(dm.whjcmxads.FieldByName('材料编码').IsNull) THEN
begin
showmessage('明细数据不完整.');
abort;
end;
dm.wlpdads.Close;
dm.wlpdads.CommandText:='select * from 材料表 where 材料编码='+''''+
dm.whjcmxads.fieldbyname('材料编码').Value+'''';
dm.wlpdads.Open;
if dm.wlpdads.RecordCount=0 then
begin
showmessage('明细中有不存在的材料,请查清再输。');
abort;
end;
//if dm.whjcmxads.FieldByName('数量').IsNull then
//begin
// showmessage('数量必须大于0');
// abort;
//end;
end;
procedure Tdm.whjcmxadsNewRecord(DataSet: TDataSet);
begin
dm.whjcmxads.FieldByName('进仓单号').Value:=
dm.whjcdads.FieldByName('进仓单号').Value;
dm.whjcmxads.FieldByName('数量').Value:=1;
dm.whjcmxads.FieldByName('单价').Value:=0;
end;
procedure Tdm.whjcmxadsPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
showmessage('明细数据不完整!');
end;
procedure Tdm.whccdadsAfterCancel(DataSet: TDataSet);
begin
dm.whccmxads.CancelBatch;
dm.whccdads.CancelBatch;
dm.whccdads.FieldByName('出仓单号').ReadOnly:=true;
end;
procedure Tdm.whccdadsAfterDelete(DataSet: TDataSet);
begin
DM.whccdads.UpdateBatch;
dm.adocn.CommitTrans;
end;
procedure Tdm.whccdadsAfterPost(DataSet: TDataSet);
begin
dm.adocn.BeginTrans;
dm.whccdads.UpdateBatch;
dm.whccmxads.UpdateBatch;
dm.adocn.CommitTrans;
dm.whccdads.FieldByName('出仓单号').ReadOnly:=true;
end;
procedure Tdm.whccdadsBeforeDelete(DataSet: TDataSet);
begin
decodedate(dm.whccdads.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('单据已结转,不能删除.', mtError , [mbOK], 0);
abort;
end;
dm.adocn.BeginTrans;
dm.adocn.Execute('delete from 材料领料明细表 where 出仓单号='+''''+
dm.whccdads.FieldByName('出仓单号').Value+'''');
end;
procedure Tdm.whccdadsBeforeInsert(DataSet: TDataSet);
begin
dm.whccdads.FieldByName('出仓单号').ReadOnly:=false;
end;
procedure Tdm.whccdadsBeforePost(DataSet: TDataSet);
begin
if (dm.whccdads.FieldByName('出仓单号').Value='') or
(dm.whccdads.FieldByName('出仓单号').IsNull) or
(dm.whccdads.FieldByName('出仓类型id').Value='') or
(dm.whccdads.FieldByName('出仓类型id').IsNull) or
(dm.whccdads.FieldByName('部门id').Value='') or
(dm.whccdads.FieldByName('部门id').IsNull) or
(dm.whccdads.FieldByName('日期').IsNull) then
begin
MessageDlg('单据头的数据不完整,请先录入.', mtError , [mbOK], 0);
abort;
end;
decodedate(dm.whccdads.FieldByName('日期').Value,year,month,day);
if lastjznf<>year then
begin
MessageDlg('你所选的日期已结转或者目前还不能处理,请修改日期.', mtError , [mbOK], 0);
abort;
end;
if dm.whccmxads.Modified then
dm.whccmxads.Post;
if dm.whccmxads.RecordCount =0 then
begin
if MessageDlg('单据没有明细项,不能保存,要取消吗?', mterror, [mbok, mbcancel], 0)=mrok then
begin
dm.whccdads.cancel;
abort
end
else
abort;
end;
end;
procedure Tdm.whccdadsNewRecord(DataSet: TDataSet);
begin
dm.whccdads.FieldByName('日期').Value:=date();
end;
procedure Tdm.whccmxadsAfterDelete(DataSet: TDataSet);
begin
dm.whccdads.Edit;
ccdwhfrm.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.whccmxadsAfterPost(DataSet: TDataSet);
begin
dm.whccdads.Edit;
ccdwhfrm.DBGridEh1.SumList.RecalcAll;
end;
procedure Tdm.whccmxadsBeforeEdit(DataSet: TDataSet);
begin
DM.whccdads.Edit;
end;
procedure Tdm.whccmxadsBeforeInsert(DataSet: TDataSet);
begin
if (dm.whccdads.FieldByName('出仓单号').Value='') or
(dm.whccdads.FieldByName('出仓单号').IsNull) or
(dm.whccdads.FieldByName('出仓类型id').Value='') or
(dm.whccdads.FieldByName('出仓类型id').IsNull) or
(dm.whccdads.FieldByName('部门id').Value='') or
(dm.whccdads.FieldByName('部门id').IsNull) or
(dm.whccdads.FieldByName('日期').IsNull) then
begin
MessageDlg('单据头的数据不完整,请先录入.', mtError , [mbOK], 0);
abort;
end;
DM.whccdads.AfterPost:=NIL;
DM.whccdads.BeforePost:=NIL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -