版本:k3 cloud 10月27日补丁问题:自定义了一个动态表单,添加了个基础资料类型的字段,并指定基础资料类型为职员,在TreeNodeClick事件下调用如下方法来赋值:
///
///
///
///
///
/// 但具体行数据对象
/// 字段名
/// 职员内码
public void SetValue(Context ct,BusinessInfo binfo, DynamicObject dyObject, string fieldname, long id)
{
BaseDataField fldMaterial = binfo.GetField(fieldname) as BaseDataField;
var materialObj = BusinessDataServiceHelper.LoadSingle(ct, id, fldMaterial.RefFormDynamicObjectType);
fldMaterial.RefIDDynamicProperty.SetValue(dyObject, id);
fldMaterial.DynamicProperty.SetValue(dyObject, materialObj);
}
此方法在5.0和6.0刚发布的时候处理过单据下推时的数据处理,是正常的,但这次用来处理动态表单时发现RefIDDynamicProperty和DynamicProperty两个属性都是null。
其中dyObject对象的构造如下:
Entity peInfo= busInfo.GetEntity(entryKey);
DynamicObject dyObject= new DynamicObject(peInfo.DynamicObjectType);
已尝试对照如下帖子处理该问题,依然不行:
http://club.kisdee.com/forum.php ... A%E6%95%B0%E6%8D%AE
解决办法:
检查所有的基础资料类型的字段,是否全部已经指定了基础资料类型,本问题是漏掉了一个,所以报错了。