以porel. Character01 存放采购物料代码
1,方法指令/ PO.Update
2,新建预处理p1
条件:(t1查询不小于1)
for each ttpodetail wherettpodetail.RowMod="a" or ttpodetail.RowMod="u" no-lock
行动:(ABL代码,行动页面右下角“高级”)
for each ttpodetailwhere ttpodetail.RowMod="u" or ttpodetail.RowMod="a"no-lock.
find porel wherettpodetail.PONUM = porel.PONum and ttpodetail.POLine = porel.POLine no-error.
assign porel.Character01 = ttpodetail.PartNum.
end.
{&CALL_DESIGNED_ACTIONS}
3,新建预处理p2
条件:(T2查询不小于1)
for each ttporel wherettporel.RowMod="u" or ttporel.RowMod="a"
行动:(ABL代码)
for each ttporel wherettporel.RowMod="u" or ttporel.RowMod="a" no-lock.
find podetail wherettporel.PONUM = podetail.PONum and ttporel.POLine = podetail.POLine no-error.
assign ttporel.Character01 = podetail.PartNum.
end.
4,启用,保存。
5,用part.update 方法指令 ,增加一个预处理,代码参考上面,目的是当物料被新建或者修改后,将part.partnum 写入
part.Character01 ,代码为后处理类型(),这样,可保证 part 与 porel 表的对应了 ,当然,part.Character01 也可以用DMT工具导入。
此方案目前有一点问题,如果用户分录后直接转去POheader 审核,然后就关闭采购单,这时porel表没有建立,故无效,此方案需要用户在分录页面至少保存2次(保存1次才产生发货数据),或者发货页面至少保存1次(一般采购需要输入PORel.DueDate 供应商交货日期,可满足此要求)