业务:通过自定义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星辰以一体化智能财务平台,实现数据整合、流程自动化与实时分析,让财务报表分析成为决策加速器。
长三角核心地带的常熟,凭借制造业、纺织业等优势产业培育了数万万中小企业。这些区域经济“毛细血管”普遍面临管理效率低、运营成本高、数据协同难,数字化转型下,选择适配的企业管理系统成为突破增长瓶颈的关键。
本文推荐2025年高性价比中大型ERP软件,其中金蝶AI星辰以一体化云服务覆盖财务、生产、零售等核心场景。
跨境出海是中小企业增长重要突破口,捞金前需跨越多平台运营、供应链协同、财税合规等门槛,跨境ERP系统选择关系出海效率与成本控制,金蝶AI星辰为中小企业提供低成本高效率全链条数字化解决方案。
在企业财务管理中,现金流如同“血液”,其健康与否直接关系企业生存发展。使用传统财务软件的用户,需准确指定与高效管理现金流,业务扩大、交易复杂化后,传统软件局限性显现,突破操作瓶颈、提升管理效率成众多企业关注焦点。
金蝶AI星辰提供高效超市进销存软件部署方案,助力企业优化库存管理、提升运营效率,轻松应对市场挑战。
DIAWMS仓储管理系统是金蝶AI星辰旗下的专业仓储管理解决方案,能够有效提升仓库进销存效率,助力企业优化库存管理,降低运营成本,增强市场竞争力。
深度评测ERP财务软件,揭晓高性价比之选。金蝶AI星辰集成财务、税务、进销存等核心功能,满足企业多元化管理需求。