填充单据体的几各种方式

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

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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



