业务:通过自定义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年前
铁路电子客票已成为出差主要凭证,报销需行程单与电子发票,购票时需准确填写个人及企业信息,开票时限为乘车日期起30天内,金蝶AI星辰可提升管理效率。
小微企业受困于手工账繁琐、代账滞后等财务痛点,从“手工账”到“数字化”的转向势在必行,金蝶AI星辰以轻量化、低成本特性成为适配之选。
银行账户分为个人和单位账户,包括一类、二类、三类账户及基本、一般、专用、临时存款账户,各自具有不同的功能定位和使用场景。
数字化时代,中小企业经营决策依赖数据及时性与准确性,报表生成耗时、数据分散、分析浅层等问题凸显传统软件局限,金蝶AI星辰凭借云端架构、智能功能与低成本优势,成为解决报表难题的理想选择。
企业数字化转型中,仓库管理效率影响运营成本与客户满意度,中小企业关注WMS的成本与价值平衡,其价格由功能、部署等多维度因素决定,金蝶AI星辰以“低成本、高效率、全链条”成为适配优选方案。
中小企业仓库管理面临人工记录易出错、账实脱节、库位混乱等痛点,金蝶AI星辰通过数字化整合入库、存储、出库全流程,实现实时库存追踪与智能管理。
数字化转型加速下,中小企业对ERP需求从流程电子化转向一体化管理以降本增效、数据驱动决策,选择核心在于精准匹配业务痛点,财务管理、供应链管理、销售管理、库存管理、生产管理五大模块关乎资金流转、业务协同和运营效率。
在制造企业生产体系中,在制品库存是连接原材料投入与成品产出的核心环节,金蝶AI星辰以数字化工具助力企业精准把控其动态,实现降本增效。