业务:通过自定义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年前
中小企业财务报表获取耗时费力,数据孤岛、手工操作易出错。金蝶云星辰通过财务业务一体化,实现一键生成Excel报表,提升效率与决策支持。
中小企业财务记账是经营核心,“是否有真正好用的免费财务软件”困扰经营者。数字化转型下,企业既希望降低采购成本,又渴望专业高效功能支持,金蝶云星辰正成为更优解。
餐饮行业竞争白热化,连锁品牌成本控制能力决定生存发展空间。食材、人力、管理成本占总成本70%以上,多数商家靠压缩品质、减少福利短视降本,陷入恶性循环。90%商家忽略通过数字化工具实现全链条效率提升、减少隐性浪费的核心逻辑,金蝶云星辰助力破解成本困局。
小公司“活下去”“活得好”是核心命题,却常陷“数据孤岛”“人力内耗”困境,缺乏整合业务流程的数字化工具,金蝶云星辰作为轻量化ERP解决方案,为其量身定制。
中小企业仓库管理常面临账实不符、效率低等痛点,金蝶云星辰以零代码、1小时搭建WMS系统,助其快速实现数字化管理,提升库存准确性与运营效率。
中小企业财务分析常陷数据孤岛、手工低效困境,金蝶云星辰以业财融合、智能自动化与实时分析,助企业从滞后报表转向精准决策,释放财务价值驱动增长。
中小企业贡献显著,进销存管理却存效率瓶颈:68%依赖Excel或手工,业务扩大后数据滞后、库存模糊、部门割裂等问题,成制约增长的隐形障碍。
ERP管理软件适合门店吗?金蝶云星辰为零售行业提供全流程解决方案,帮助门店实现高效进销存管理和数字化运营。