二开插件 - 如何获取弹性域的名称
客户需求: 在插件中获取弹性域字段(核算维度、辅助属性、仓位)的显示名称。
解决方法:
1. 获取BOSDynamicRow
新版本可以调用接口
Kingdee.BOS.ServiceHelper.SendMailServiceHelper.GetBOSDynamicRow(Context ctx, string formId, object[] ids)
旧版本可以用如下函数获取
public BOSDynamicRow[] GetBOSDynamicRow(Context ctx, string formId, object[] ids) { MetaDataService metaDataService = new MetaDataService(); BusinessInfo businessInfo = ((FormMetadata)metaDataService.Load(ctx, formId)).BusinessInfo; IViewService service = Kingdee.BOS.Contracts.ServiceFactory.GetViewService(ctx); DynamicObject[] objs = service.Load(ctx, ids, businessInfo.GetDynamicObjectType()); return objs.ToList().ConvertAll<BOSDynamicRow>(obj => { DynamicFormModelProxy modelProxy = new DynamicFormModelProxy(); modelProxy.SetContext(ctx, businessInfo, new FormServiceProvider()); modelProxy.DataObject = obj; return new BOSDynamicRow(obj, businessInfo.Entrys[0].Key, modelProxy); }).ToArray(); }
2)根据元数据获取弹性域字段RelatedFlexGroupField field,然后调用如下函数获取显示名称
public string GetDisplayName(BOSDynamicRow bosBillRow,RelatedFlexGroupField field ,int row) { if (bosBillRow == null) return string.Empty; var baseDataField = bosBillRow.Model.BillBusinessInfo.GetField(field.RelatedBaseDataFlexGroupField) as BaseDataField; if (baseDataField != null) { var baseDataDataObject = bosBillRow.Model.GetValue(baseDataField.Key, row) as DynamicObject; var relatedFieldDataObject = bosBillRow.Model.GetValue(field.Key, row) as DynamicObject; return field.GetDisplayName(null, relatedFieldDataObject, baseDataField, baseDataDataObject); } return string.Empty; }
3)在参数设置--BOS平台中设置显示名称的样式
二开插件 - 如何获取弹性域的名称
客户需求: 在插件中获取弹性域字段(核算维度、辅助属性、仓位)的显示名称。解决方法: 1. 获取BOSDynamicRow新版本可以调用接口Kingdee....
点击下载文档
本文2024-09-23 03:42:49发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-160618.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章