#使用技巧#Python插件实现单据批改-万能终极版

一、业务背景
关于对单据批改的需求,前面分享了:
单据头字段的批改就不多说了,调用的是标准的批改功能,但是标准的批改有可能满足不了一些个性化的需求,例如,批改单据体字段等等...
自定义的批改可以参考进阶版的文章讲解来自己二开实现,但是大家可能没有二开资源,或者自己开发起来还是觉得比较吃力,而且往往涉及到多个字段的批改,如果自己二开的,似乎不太灵活,只能对固定的字段进行批改。
但是标准的批改功能,有个好处是,只要支持批改的字段,可以自己选择字段后,系统会动态创建对应的字段控件来输入批改字段值,这个功能,大大提高了批改字段的灵活性。例如,下图,物料批改:

标准的批改功能还有个美中不足的地方是,批改字段,不能触发字段相关的值更新和实体服务规则,这样对于修改字段值后会引起“连锁反应”的场景就不太好处理。
经过对标准批改功能的研究,本次案例,我们就基于标准的批改功能来实现一个“万能批改”功能,并且可以实现:
√ 修改字段支持触发值更新和实体服务规则。
√ 不仅支持单据头字段的批改,还支持单据体字段的批改。
√ 支持维度关联字段的批改:辅助属性、仓位...等。
√ 支持多选基础资料/辅助字段的批改。
√ 批改可以选择的字段,可以自定义设置。
√ 支持设置单据状态自动过滤,例如,已审核单据不允许批改。
首先,看下实现效果,一睹为快!![]()

二、关键实现步骤
新建一个普通动态表单,标识:BPW_BulkEditFldInput,名称:单据批改字段
本案例采用动态表单嵌套的方式在实现动态展示不同字段的控件,动态表单中的内容其实比较简单:
①添加一个单选下拉列表字段:F_BPW_FldCombo,不需要绑定枚举类型(代码会动态构建)!
下拉字段一定要勾选【即时触发值更新】,别忘了这一步,很重要!否则不能正常切换字段!
②添加一个面板控件:F_BPW_Panel,用于动态显示不同字段输入控件,面板拖动合适大小,以便能正常显示。
实际是嵌套标准动态表单(BD_ChangeFieldContent)
③添加2个按钮:确定(F_BPW_OKBtn)、取消(F_BPW_CancelBtn)
④在表单插件中注册Python脚本

注册Python脚本时,复制代码后,按照下图说明修改对应的标识,其他代码不用修改,就可以使用,非常简单了!![]()

需要批改的单据,配置万能批改功能
本案例只需要在需要批改的单据,添加自定义列表菜单,并在列表插件中,注册Python脚本即可。
①在BOS中打开需要批改的单据,如需扩展,需要先扩展,然后,添加一个列表菜单:BPW_tbBukEdit

②在列表插件中注册Python脚本

注册Python脚本时,按照下图说明修改代码,其他部分代码,如无个性化需求,可暂不修改!

三、
#使用技巧#Python插件实现单据批改-万能终极版
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



