SAP B1-功能方案-1 单据打印次数显示

虽然SAP B1有强大的存储过程控制功能,但经测试在单据打印时是无法触发存储过程的,由于客户强烈要求无奈之下用了触发器来完成该功能(据说添加触发器在升级系统时会报错,所以升级时可能需要将触发器删掉)。

系统配置

1、添加自定义字段:U_PrintNum 打印次数;
2、添加用户界面模板(9.1以后新功能)将“打印次数”移至单据中并将其设置为不可编辑(以防用户手动修改打印次数的值)。

添加触发器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

最终效果

打印次数显示效果

BlenderKou wechat
扫描二维码,关注我的公众号,第一时间获取文章!