用插件生成单据,给单据体赋值时提示"列被标记为只读"
金蝶云社区-zhouyi5362
zhouyi5362
1人赞赏了该文章 2,193次浏览 未经作者许可,禁止转载编辑于2014年10月09日 10:00:43

[code]var bussnessInfo = MetaDataServiceHelper.GetFormMetaData(this.Context, "ZHY_TEST4").BusinessInfo;
var billDynamicObjectType = bussnessInfo.GetDynamicObjectType();
DynamicObject billobj = new DynamicObject(billDynamicObjectType);

bussnessInfo.GetField("FName").DynamicProperty.SetValue(billobj, Guid.NewGuid().ToString());

DynamicObjectCollection dyEntitys = new DynamicObjectCollection(bussnessInfo.GetEntryEntity("FEntity").DynamicObjectType);

for (int i = 0; i < 3; i++)
{
DynamicObject dyEntity = new DynamicObject(bussnessInfo.GetEntryEntity("FEntity").DynamicObjectType);
dyEntity["FFLM"] = "FFLM"+i.ToString();
dyEntity["FQty"] = 100+i;
dyEntitys.Add(dyEntity);
}

billobj["FEntity"] = dyEntitys;[/code]

到最后一步给单据体赋值时,提示

错误来源: Kingdee.BOS.DataEntity
错误信息:列被标记为只读。
===================================================
调用堆栈:
在 Kingdee.BOS.Orm.Metadata.DataEntity.DynamicProperty.SetValuePrivate(DynamicObject dataEntity, Object newValue)
在 Kingdee.BOS.Orm.DataEntity.DynamicObject.set_Item(String propertyName, Object value)
在 TCloud.FL.BillPlugIn.CreateWeighBridgeBill.BarItemClick(BarItemClickEventArgs e)
在 Kingdee.BOS.Core.DynamicForm.PlugIn.DynamicFormViewPlugInProxy.FireBarItemClick(BarItemClickEventArgs e)
在 Kingdee.BOS.Web.DynamicForm.DynamicWebFormView.BarItemClick(String parentKey, String barItemKey, BarDataManager bar, Int32 bartype)
在 Kingdee.BOS.Web.List.ListView.MainBarItemClick(String barItemKey)
在 Kingdee.BOS.Web.DynamicForm.DynamicWebFormController.MainBarItemClick(String itemKey, JSONArray postDatas)
错误数据: System.Collections.ListDictionaryInternal