虽然SAP Business One有强大的存储过程控制功能,但经测试在单据打印时是无法触发存储过程的,由于客户强烈要求无奈之下用了触发器来完成该功能(据说添加触发器在升级系统时会报错,所以升级时可能需要将触发器删掉)。
系统配置
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厂商上海达策
上海达策信息技术有限公司(简称上海达策)作为SAP亚太区的服务体系伙伴,在全国有40多家分支机构,已成为SAP中国区的咨询服务公司。
在SAP Business One产品平台上面,上海达策形成了众多的增强功能,包括集团财务管理、生产管理、立体仓库管理、质量管理、项目管理、薪酬管理、电子商务等等。发展至今,上海达策已成为SAP Business One众多服务体系伙伴中居于位置的ERP系统供应商。