分享一个列表查询查看多选基础资料的解决方案

来源:互联网 发布:javascript:void(0); 编辑:程序博客网 时间:2024/04/28 10:13
目前K/3 CLoud中对于多选基础资料暂不提供列表查询和显示功能。因此二次开发可以考虑自己来实现,这里给大家一个参考示例,抛砖引玉,希望对大家有所帮助。
1、首先对于需要列表查询多选基础资料的单据,针对多选基础资料字段,增加一个相对应的辅助字段(多语言字段元素)
2、编写相应的插件,以下示例提供python示例和C#示例

python:

import clrclr.AddReference('Kingdee.BOS')clr.AddReference('Kingdee.BOS.Core')clr.AddReference('Kingdee.BOS.DataEntity')from Kingdee.BOS.Util import *from Kingdee.BOS import LocaleValuefrom Kingdee.BOS.Core.Metadata import *from Kingdee.BOS.Core.Bill.PlugIn import *from Kingdee.BOS.Orm.DataEntity import *from System import *def DataChanged(e):        if e.Key.Equals("FMulBase", StringComparison.InvariantCultureIgnoreCase):        ##获取多选基础资料数据        dataList = this.Model.GetValue("FMulBase")            if dataList is None:             return        localValue = LocaleValue()            for  data in dataList:                  dyobj =data["FMulBase"]                  value = dyobj["Name"]                  localValue.Merger(value, ";")             ##对辅助字段赋值             this.Model.SetValue("FMulLangText", localValue);

C#:

using Kingdee.BOS.Core.Bill.PlugIn;using Kingdee.BOS.Orm.DataEntity;using System;using System.Collections.Generic;using System.Linq;using System.Text;using Kingdee.BOS.Util;namespace Kingdee.BOS.Business.PlugIn{[System.ComponentModel.Description("演示多选基础资料查询和列表显示插件")]public class DemoBillEdit:AbstractBillPlugIn{public override void DataChanged(Core.DynamicForm.PlugIn.Args.DataChangedEventArgs e){if (e.Key.Equals("FMulBase", StringComparison.InvariantCultureIgnoreCase)){DynamicObjectCollection dataList = this.Model.GetValue("FMulBase") as DynamicObjectCollection;if (dataList.IsNullOrEmpty()) return;LocaleValue localValue = new LocaleValue();foreach (var data in dataList){LocaleValue value = (data["FMulBase"] as DynamicObject)["Name"] as LocaleValue;localValue.Merger(value, ";");}this.Model.SetValue("FMulLangText", localValue);}}}}

通过上述处理,我们就可以变相的实现多选基础资料的查询了,实际上查询的是辅助字段,而且支持多语言。

0 0
原创粉丝点击