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

填充单据体的几各种方式

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

填充单据体的几各种方式

目前用到的几中填充单据体的方式
一、表单插件 SetValue 方式

image.webp

Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
            DynamicObjectCollection entityDataObject = this.Model.GetEntityDataObject(entity);
            this.Model.DeleteEntryData("FEntity");
            int i = this.Model.GetEntryRowCount("FEntity") - 1;
            foreach (DynamicObject dydata in docData)
            {
                // 单据体增加新行,并更新行索引
                this.Model.SetEntryCurrentRowIndex("FEntity", i);
                this.Model.SetValue("FSeq", i);
                this.Model.SetItemValueByID("FMaterialID2", dydata["FMaterialID"], i);
                this.View.InvokeFieldUpdateService("FMaterialID2", i);//触发字段值更新,单据头字段行号填0
                this.Model.SetItemValueByID("FLot", dydata["F_Lot"], i);
                this.View.InvokeFieldUpdateService("FLot", i);//触发字段值更新,单据头字段行号填0
                this.Model.SetValue("FNumerator", dydata["FQty"], i);
                this.View.InvokeFieldUpdateService("FNumerator", i);//触发字段值更新,单据头字段行号填0
                this.Model.CreateNewEntryRow("FEntity");

                i++;
            }
            this.View.UpdateView("FEntity");

二、实体填充 ,可用于表单插件(感觉性能好些)、服务插件

        private void FillEntityData(DynamicObjectCollection retDatas, string entityKey)
        {
            if (retDatas != null && retDatas.Count() > 0)
            {
                //回写计划用料清单
                Entity entity = this.Model.BusinessInfo.GetEntity(entityKey);
                DynamicObjectCollection entityData = this.Model.GetEntityDataObject(entity);
                entityData.Clear();
                int i = 0;
                foreach (DynamicObject dyData in retDatas)
                {   //每一行的值定义成 DynamicObject类型
                    DynamicObject row = new DynamicObject(entity.DynamicObjectType);
                    //通过 SeqDynamicProperty 设置序号
                    entity.SeqDynamicProperty.SetValue(row, i + 1);
                    //对实体赋值
                    row["F_paez_zxwlbm_Id"] = dyData["FSubMaterial_Id"];
                    row["F_paez_kcdw_Id"] = dyData["FUnitID_Id"];
                    row["F_paez_BaseUnitID_Id"] = dyData["F_paez_BaseUnitID_Id"];
                    row["F_paez_dwyl"] = dyData["FQty"];
                    entityData.Add(row);
                    i++;
                }
                //加载全部基础资料字段 的 DynamicObject对象,便于页面显示 
                DBServiceHelper.LoadReferenceObject(this.Context, entityData.ToArray<DynamicObject>(), entityData.DynamicCollectionItemPropertyType, false);
                this.View.UpdateView(entityKey);
            }
        }

特殊说明:
1、分录序号。  

 entity.SeqDynamicProperty.SetValue(row, i + 1);

2、通过 ID 加载基础资料字段  DynamicObject 数据包,用于表单插件显示 。 最后参考 用 false。或实际确认

DBServiceHelper.LoadReferenceObject(this.Context, entityData.ToArray<DynamicObject>(), entityData.DynamicCollectionItemPropertyType, false);


三、操作插件构建 单据视图 使用 SetValue

            foreach (var billDynObjEx in billDynObjExs)
            {
                string fromId = e.TargetBusinessInfo.GetForm().Id;
                if (!fromId.Equals("AR_RECEIVEBILL"))
                    return;
      

填充单据体的几各种方式

目前用到的几中填充单据体的方式一、表单插件 SetValue 方式Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); ...
点击下载文档文档为doc格式

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

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