文本描述了单据体分录中基础资料字段在多行选择时的处理方式。当基础资料选择多行时,若某行已有选中或填写的字段,应自动带出这些值至其他行。目前效果未明确,但期望通过自定义F7页面弹出和关闭时的数据处理实现此功能。具体步骤包括监听事件、取消标准F7弹出、自定义弹出页面,并在页面关闭时处理单据行数据。备注指出字段无关联时适用此方法,关联字段可考虑父子分录,且后续修改前面的字段不应影响已带出的字段值。
单据体分录中有多个字段,其中有基础资料字段,该基础资料选择多行时(即新增多行),如果当前行已经有选中或填写的字段,需要把当前行已选中或填写的字段值带出。
如下图所示,分录行中已经选择了基础资料供应商和填写了文本,在当前行选择多个投放渠道时,非选中行也会带出前面已选择的供应商3和文本。
目前的效果是:
期望的效果是:
实现方案:
选择基础资料弹出F7页面的时候,取消标准的弹出,自己实现基础资料页面的弹出showForm,然后在子页面关闭时,ClosedCallBack事件中获取当前行前面已选择的基础资料,手动插入数据。
实现步骤如下:
1. 监听基础资料字段的事件,代码如下:
2.beforeF7Select,选中的对应的基础资料时,取消标准F7弹出。如选择投放渠道时,处理F7界面。代码如下:
3.closedCallBack事件,子界面关闭时,对单据行做处理。克隆当前行的数据,获取当前子页面选中的基础资料,如果是选中行,赋值,其他的行则插入数据,代码如下:
实现效果:
备注:
(1)该场景中的字段是没有关联关系的,如果有关联关系的,可以考虑父子分录。
(2)带出分录前面的字段后,后续对前面的字段做修改也不会删除后面的字段,目前示例代码没有实现该情况,如有需要可做改造。