单据类型连动单选多类别基础资料列表Python表单插件原创
14人赞赏了该文章
116次浏览
编辑于2024年05月15日 14:44:42
以 其他应付单为例:
当选择单据类型的时候,往来单位类型自动按自己定义的规则进行切换,达到类似过滤的效果。
因为社区搜索不到 按单据类型实现对下拉列表的过滤,只好出此笨办法。
import clr clr.AddReference("Kingdee.BOS") from Kingdee.BOS import LocaleValue from Kingdee.BOS.Core.Metadata import EnumItem from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import ComboFieldEditor from System.Collections.Generic import * from System import StringComparison def AfterBindData(e): # 检查是否为新增操作 if this.View.OpenParameter.Status == OperationStatus.ADDNEW: # 获取BillTypeID的ID属性 bill_type_id = this.Model.GetValue("FBillTypeID") if bill_type_id is None: return; billtype_id=bill_type_id["ID"] array1 = [{"ID":"BD_Supplier","Name":"供应商"}, {"ID":"BD_Customer","Name":"客户"}, {"ID":"FIN_OTHERS","Name":"其它往来单位"}] array2 = [{"ID":"BD_Empinfo","Name":"员工"}, {"ID":"BD_Department","Name":"部门"}] array = array1 if bill_type_id["ID"] == "66441d3fe24bb4" else array2 newList = List[EnumItem]() seq = 0 for item in array: newItem = EnumItem() newItem.Seq = seq newItem.Value = item["ID"] # 创建LocaleValue时需要传入语言环境,这里假设UserLocale是有效的 newItem.Caption = LocaleValue(item["Name"]) newList.Add(newItem) seq += 1 # 获取fieldEditor来设置下拉的选项列表 fieldEditor = this.View.GetControl("FCONTACTUNITTYPE") if fieldEditor: fieldEditor.SetComboItems(newList) if bill_type_id["ID"] == "66441d3fe24bb4": this.Model.SetValue("FCONTACTUNITTYPE","BD_Supplier") else: this.Model.SetValue("FCONTACTUNITTYPE","BD_Empinfo")
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读