新闻资讯  > 公司资讯

公司资讯 行业资讯 知识学习
2024优惠活动:迷你版1880元,KIS软件5折,金蝶云6折起!

金蝶软件辅助资料扩展字段筛选二开使用案例

发布时间:2022-5-18浏览:1895次

一、【需求问题】

其它出库单:想针对其它出库的领用发生部门/成本中心和用途(辅助资料)进行归纳汇总;期望:当选择部门A时,用途中仅能选择部门A对应的用途;当选择部门B时,用途中仅能选择部门B对应的用途


二、【功能分析】

BOS中辅助资料字段,无法设置过滤,当前需求只能通过二开表单插件处理


【实现】

1、扩展辅助资料,添加基础资料字段,绑定"部门"

2、表单插件重写BeforeF7Select、BeforeSetItemValueByNumber事件,触发辅助资料查询时,加入部门的值,进行过滤辅助资料

3、注册表单插件


相关表


select * from T_BAS_ASSISTANTDATA where FID = '005056a3024ca51d11e428fb8c41a25d' --辅助资料
select * from T_BAS_ASSISTANTDATA_L where FNAME = '等级'--辅助资料多语言
select * from T_BAS_ASSISTANTDATAENTRY where FID = '005056a3024ca51d11e428fb8c41a25d'--辅助资料分录
select * from T_BAS_ASSISTANTDATAENTRY_L where FENTRYID in ('005056a3024ca51d11e428fbd7c96188',
'005056a3024ca51d11e428fbdf11d074','005056a3024ca51d11e428fbecefddef','005056a3024ca51d11e428fbf3700759') --辅助资料多语言


#coding:utf-8

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 Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *

def BeforeF7Select(e):
    if e.FieldKey.Equals("FClassAssistant", StringComparison.OrdinalIgnoreCase):  
        depObj = this.View.Model.GetValue("FDeptId")
        if depObj is not None:  # 通过"部门"过滤"辅助资料" 
            e.ListFilterParameter.Filter = " FDeptId = " + str(depObj["Id"])   
            
def BeforeSetItemValueByNumber(e):
    if e.BaseDataFieldKey.Equals("FClassAssistant", StringComparison.OrdinalIgnoreCase):
        depObj = this.View.Model.GetValue("FDeptId")
        if depObj is not None: # 通过"部门"过滤"辅助资料" 
            e.Filter = " FDeptId = " + str(depObj["Id"])


1、未填写部门,显示全部辅助资料


2、按选择部门筛选

X青岛金蝶软件公司_金蝶软件技术服务公司

截屏,微信识别二维码

客服QQ:1250556403

(点击QQ号复制,添加好友)

微信号已复制,请打开微信添加咨询详情!