二开干预选单时排除已选单的数据

下游单据选单上游单据时,标准功能一般是可以重复选择同一上游单据的,即同一张上游单据的同一条明细可以被重复选择多次,这样就会导致下游单据多次选单同一上游单据后出现多条记录,一般是通过反写超额来控制下游的保存,通常单据转换也是用上游的反写数量字段来控制第二次选单时的过滤逻辑)。标准功能为什么不排除已选单的呢?个人认为BOS平台在选单时这么控制是想让多次选单同一上游后能修改数量,想当于上游下推下游单据后能拆分成多行(一般是通过拆分数量,比如上游单据的一条明细是10个数量,3次选单同一上游后,把下游数量分别改成3,3,4个数量以达到拆分行的效果)。
虽然BOS平台的单据转换能配置选单时按下游某个字段过滤,比如下游发货通知单是客户A,选单销售订单时只能选择到A客户的销售订单,但这种配置不能满足排除已选单的情况,选单时字段过滤配置如下图所示1-1所示:

图1-1
本文演示使用C#插件代码排除已选单的上游单据逻辑,此插件适配绝大部分单据(能挂此插件的单据的前置条件是明细分录内码字段名为FENTRYID,类型为INT即可,如果不满足此条件可在下图1-2中红框中相应修改脚本条件),客户可二开挂此插件到相应单据上。
首先创建二开类库,类库中创建列表插件 Kingdee.K3.SCM.Custom.BusinessPlugin.DrawDistinctBillListPlugin ,这是源代码附件:,二开代码的核心逻辑就是通过当前单据视图找父窗体视图(选单时父窗体视图就是下游单据视图),然后通过下游单据视图动态找单据关联配置
二开干预选单时排除已选单的数据
下游单据选单上游单据时,标准功能一般是可以重复选择同一上游单据的,即同一张上游单据的同一条明细可以被重复选择多次,这样就会导致...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



