电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

单据转换-单据体携带多选基础资料字段

来源:金蝶云社区作者:金蝶2024-09-162

单据转换-单据体携带多选基础资料字段

上篇文章是携带单据头多选基础资料字段,下面介绍单据转换-单据体携带多选基础资料字段,代码如下: ``` /// <summary> /// 单据从源单到目标单已经转换完毕,输出最后的目标单数据包之前触发, /// 此时,目标单数据包已经构建完毕,不会再有变动了 /// </summary> /// <param name="e"></param> /// <remarks> /// 可以在此事件中,对目标单数据包进行最后的修订、补充 /// </remarks> public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); string TgtFieldKey = "FCESHI1"; string SrcFieldKey = "FCESHI2"; /* * <0>数据准备 */ MulBaseDataField tgtBaseDataField = e.TargetBusinessInfo.GetField(TgtFieldKey) as MulBaseDataField; MulBaseDataField srcBaseDataField = e.SourceBusinessInfo.GetField(SrcFieldKey) as MulBaseDataField; if (tgtBaseDataField == null || srcBaseDataField == null) return; Func<Kingdee.BOS.Orm.DataEntity.DynamicObject, Kingdee.BOS.Orm.DataEntity.DynamicObject> loadSrcRowObj = (srcRow) => { long pkId = ObjectUtils.Object2Int64(srcRow[e.SourceBusinessInfo.GetForm().PkFieldName]); Kingdee.BOS.Orm.DataEntity.DynamicObject srcObj = LoadSrcBills(e, pkId, SrcFieldKey); if (srcObj == null) return null; string entryKey = string.Format("{0}_{1}", srcBaseDataField.EntityKey, srcBaseDataField.Entity.EntryPkFieldName); int entryId = ObjectUtils.Object2Int(srcRow[entryKey]); Kingdee.BOS.Orm.DataEntity.DynamicObjectCollection entityObjs = srcObj[srcBaseDataField.Entity.EntryName] as Kingdee.BOS.Orm.DataEntity.DynamicObjectCollection; if (entityObjs == null) return null; foreach (var entityRow in entityObjs) { if (ObjectUtils.Object2Int(entityRow[0]) == entryId) { return entityRow; } } return null; }; Dictionary<object, Kingdee.BOS.Orm.DataEntity.DynamicObject> baseDataObjCache = new Dictionary<object, Kingdee.BOS.Orm.DataEntity.DynamicObject>(); /* * <1>根据下游单据的数据包,和源单信息,填入多选基础资料 */ Entity tgtEntity = tgtBaseDataField.Entity; var targetEntityObjs = e.Result.FindByEntityKey(tgtEntity.Key); for (int i = 0, sz = targetEntityObjs.Length; i < sz; ++i) { var tgtEntityRow = targetEntityObjs[i]; if (tgtEntityRow.DataEntity == null) continue; //获取当前目标行的源单数据集合 var sourceRows = tgtEntityRow["ConvertSource"] as List<Kingdee.BOS.Orm.DataEntity.DynamicObject>; if (sourceRows == null) continue; foreach (var srcRow in sourceRows) { var srcRowObj = loadSrcRowObj(srcRow); if (srcRowObj == null) continue; //获取源行的多选基础资料 var srcMulBaseData = srcRowObj[srcB

单据转换-单据体携带多选基础资料字段

上篇文章是携带单据头多选基础资料字段,下面介绍单据转换-单据体携带多选基础资料字段,代码如下:``` /// <summary> ...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信