虽然SAP B1有强大的存储过程控制功能,但经测试在单据打印时是无法触发存储过程的,由于客户强烈要求无奈之下用了触发器来完成该功能(据说添加触发器在升级系统时会报错,所以升级时可能需要将触发器删掉)。
1、添加自定义字段:U_PrintNum 打印次数;
2、添加用户界面模板(9.1以后新功能)将“打印次数”移至单据中并将其设置为不可编辑(以防用户手动修改打印次数的值);
CREATE TRIGGER ORDR_COMF_NUM ON ORDR /*向ORDR表添加触发器,如需向其他单据添加“打印次数显示”功能请修改ORDR至对应的表名即可。/ AFTER UPDATE AS BEGIN /*本触发器用于记录销售订单打印次数, 要使用此功能需先添加自定义字段“U_PrintNum”用来记录单据打印次数 当[Printed]的值更新为“Y”时 更新销售订单上自定义字段“打印次数”加一, [Printed]的值设置为“N” */ IF UPDATE([Printed]) /*如果更新的是Printed字段*/ BEGIN UPDATE T0 SET T0.U_PrintNum = ISNULL(T0.U_PrintNum, 0) + 1 , T0.Printed = 'N' FROM ORDR T0 WHERE T0.DocEntry = ( SELECT DocEntry FROM Inserted /*Inserted 表是SQL内部表用于存储INSERT和UPDATE语句所影响的行的副本。*/ ) END END
了解更多SAP B1 信息可点击>>SAP Business One