业务:通过自定义BOS表单,生成对应工艺路线,在赋值的时候,单据体多行数据,都只会成功赋值最后一行,有没有哪位大神知道,如何把多行数据赋值给单据体里,或者是怎么在服务插件了新增单据体行呢,感谢各位大佬支招。
CQ周玉立
单据体是一个集合,要在服务插件往单据体添加行,只能对集合数据数据包进行操作;
参考代码如下:
获取单据体的数据包集合:
//billObj:整个单据的数据包,DynamicObject类型
DynamicObjectCollection en= billObj["单据体ORM实体标识"] as DynamicObjectCollection;
添加数据到单据体,通常这段代码写在循环体内:
//新建一个空白行
DynamicObject newRow = new DynamicObject(en.DynamicCollectionItemPropertyType);
en.Add(newRow);
//逐个字段赋值,相当于操作一个实例化的对象
newRow["单据体字段实体属性标识"]="XXXX";
注意事项,普通字段赋值与基础资料赋值有点差异:
普通字段:newRow["单据体字段实体属性标识"]="XXXX";
基础资料/辅助资料:需要用2行语句。
DynamicObject baseObj=XXX;//先获得基础资料的数据包,根据实际情况获取,有的情况下是可以直接从单据上取得基础资料数据包的,就不需要Load
/*//分享一个加载基础资料数据包的方法(Load),需要已知基础资料的内码
List<object> pkIds = new List<object>();
pkIds.Add("基础资料内码");
//例如物料的FormID是:BD_Material,可以在BOS中打开单据查看
FormMetadata meta = MetaDataServiceHelper.Load(this.Context, "基础资料FormID") as FormMetadata;
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.Load(this.Context, pkIds.ToArray(), meta.BusinessInfo.GetDynamicObjectType());
baseObj=dynamicObjects[0];// 这就是基础资料数据包
*/
newRow["单据体基础资料字段实体属性标识_Id"]="基础资料内码ID";
newRow["单据体基础资料字段实体属性标识"]=baseObj;
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
手工编制现金流量表耗时、误差率高且滞后,困扰中小企业。金蝶AI星辰整合数据源,智能分类,实现现金流量表一键生成,提升效率与准确性。
谁知道好用的手机进销存软件?本文分析传统管理痛点,介绍优秀软件特征,推荐金蝶AI星辰移动进销存解决方案,帮助企业提升管理效率。
企业财务管理中,现金流量表是财务分析与投融资决策的重要依据,中小企业财务人员常寻求Excel模板,核心诉求为快速编制、减少手工操作、确保数据准确。
现金流量表作为企业财务健康的“体温计”,中小企业编制常因手动操作繁琐、Excel模板局限而低效易错,金蝶AI星辰以智能自动化助力高效生成精准报表。
现金流量表是企业财务健康的“体温计”,直观反映资金来源与去向,是评估偿债能力和运营效率的核心依据。金蝶AI星辰以智能公式引擎驱动公式三与公式四自动运行,高效生成现金流量表。
制造业中小企业日常运营中,生产与财务管理常分离,企业用两套软件并行,隐藏隐性成本,金蝶AI星辰以生产财务一体化破解割裂,提升管理效率。
在全球化竞争日益激烈的今天,外贸企业如何在市场中保持竞争力?答案可能就藏在一款高效的外贸ERP软件中。特别是在服装外贸行业,一款合适的ERP软件不仅是业务管理的利器,更是企业持续发展的加速器。
中小企业仓库管理存在库存数据滞后不准确、流程繁琐易出错、精细化管理缺失等痛点,金蝶AI星辰以实时库存监控、流程自动化等功能,破解痛点实现高效管理。