电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

辅助资料扩展多选辅助资料列表使用案例

来源:金蝶云社区作者:金蝶2024-09-164

辅助资料扩展多选辅助资料列表使用案例

【业务背景】出库申请单有研发、制造、管理等单据类型,申请类型有A、B、C、D、E这些类型,当单据类型=研发时,需要控制申请类型只能选择A、B;当单据类型=制造时,申请类型只能选择B、C。


【需求分析】单据类型和申请类型都为自定义的辅助资料,需要在单据扩展"单选辅助资料列表"时,两者形成联动的逻辑关系,即当单据类型=研发时,需要控制申请类型只能选择A、B;当单据类型=制造时,申请类型只能选择B、C。一个申请类型可能属于多个单据类型,即属于多对多的关系


方案1:使用"上级辅助资料过滤下级辅助资料"的方式,参考:【如何根据上级辅助资料过滤下级辅助资料】实现。这种方式属于一对一关系处理,两两组合会使得辅助资料的设置量翻倍,维护困难,无法满足需求

方案2:辅助资料能够扩展一个"多选辅助资料",结合插件,去数据库读取关联数据加入到过滤条件中


【实现】以方案2的处理方式:

1、辅助资料能够扩展一个"多选辅助资料",BOS会默认生成一个实体关联表存数据

多选基础资料和多选辅助资料,BOS的处理方式是生成一个关联表,具体表结构:

  • FPKID:关联表ID

  • FEntryID:单据体ID

  • F_RQHX_XXX:页面字段


image.webp

2、针对1中生成的多选辅助资料表,手动修改表结构t_Cust_Entry100165,FPKID由INT改为varchar(36)类型,否则保存数据会出现报错

3、表单插件重写BeforeF7Select、BeforeSetItemValueByNumber事件,触发申请类型查询时,加入单据类型的值,进行过滤


辅助资料相关表

  • T_BAS_ASSISTANTDATA 辅助资料

  • T_BAS_ASSISTANTDATA_L 辅助资料多语言

  • T_BAS_ASSISTANTDATAENTRY 辅助资料分录

  • T_BAS_ASSISTANTDATAENTRY_L 辅助资料多语言


 SELECT T2.FENTRYID, T2.FNUMBER, T3.FDATAVALUE from t_Cust_Entry100165 T1 JOIN T_BAS_ASSISTANTDATAENTRY T2 ON T1.FEntryID = T2.FENTRYID
JOIN T_BAS_ASSISTANTDATAENTRY_L T3 ON T2.FENTRYID = T3.FENTRYID
 WHERE FMULASSISTANT IN ('61c138d8def61b') -- 申请类型所属上级,即:单据类型

import clr 
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")

from System import *
from System import StringComparison
from Kingdee.BOS.Core.DynamicForm import *
from Kingd

辅助资料扩展多选辅助资料列表使用案例

【业务背景】出库申请单有研发、制造、管理等单据类型,申请类型有A、B、C、D、E这些类型,当单据类型=研发时,需要控制申请类型只能选择A...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信