【套打】表单插件实现当前业务对象套打原创
金蝶云社区-_Tmp
_Tmp
20人赞赏了该文章 2849次浏览 未经作者许可,禁止转载编辑于2020年04月29日 09:35:34

不使用套打操作进行套打(连续套打或者单个打印):

image.png

代码上该有的注释都有了,逻辑就是生成打印任务List<PrintJob>,放到当前视图缓存中,然后发送前端指令告诉前端调用套打服务,套打服务根据当前视图缓存的打印任务生成对应的套打布局。

image.png

套打模板的获取暂时可以根据PrintServiceHelper.GetTemplatesByFormId获取,当然如果你的场景固定套打模板直接固定是最好的,根据单据获取套打设置中对应的设置模板的逻辑后续看是否有较多这块需求看是否讲解。

当然这样做会越过套打操作的配置。

针对当前业务对象二开套打进行单个单据套打和连续套打都可以按照上面的示例进行调整,有问题可以留言。

(连续套打在打印任务子项PrintJobItems里追加,而非重新实例化一个新的打印任务,仅限于同一个业务对象)


接下来讲一个问的比较多的场景,在A业务对象调用A和B业务对象的套打。

由于套打的生命周期从套打操作开始,然后到套打干预取数,最后套打打印完成时的打印次数更新。在最早的实现上套打为一个强视图关联的操作服务。

因此在A业务对象上进行B业务对象的套打,最正确的做法一定是创建B业务对象的虚拟视图进行套打打印。

但是还是有很多二开直接在A业务对象上直接加入B业务对象的打印任务进行套打,这里强调下由于在A视图上直接打印B业务对象,不能使用B业务对象的表单/ 列表插件进行套打数据包修改。








赞 20