雖然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