虽然SAP Business One 提供了强大的存储过程控制能力,但在实际测试中发现,存储过程无法在单据打印操作中自动触发。为满足客户的迫切需求,我们决定采用触发器来实现相关功能。需要说明的是,使用触发器可能在系统升级时引发错误,因此建议在升级前暂时删除相关触发器,待升级完成后再行恢复。
系统配置步骤如下:
1. 添加自定义字段
在相应单据表中创建自定义字段 U_PrintNum,用于记录“打印次数”。
2. 配置用户界面模板
利用 SAP Business One 9.1 版本及以上提供的“用户界面模板”功能,将“打印次数”字段添加至目标单据界面中,并将其属性设置为“只读”,以防止用户手动修改打印次数。
3. 创建触发器
编写并部署数据库触发器,使其在打印相关事件发生时自动更新 U_PrintNum 字段的值,从而实现打印次数的自动累加。
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
4. 最终打印效果说明
本打印模板基于 SAP Business One 系统进行设计与配置,确保打印输出格式规范、内容完整,满足企业单据打印的标准化要求。
关于 SAP 服务厂商 — 上海工博云署
上海工博云署信息技术有限公司(简称“上海工博云署”)是 SAP 官方授权的正规代理商,在全国设有多达 40 余家伙伴机构,现已成为 SAP 中国区重要的合作伙伴与认证咨询服务提供商。
在 SAP Business One 产品平台上,上海工博云署积累了丰富的行业实践经验,开发并集成了多项增强型功能模块,涵盖以下业务领域:
集团财务管理
生产管理
立体仓库管理
质量管理
项目管理
薪酬管理
电子商务