zoukankan      html  css  js  c++  java
  • K3Cloud DynamicObject数据包操作

    DynamicObject的结构非常简单明了,就是一个字典,类似于一个Dictionary<string, object>,其中的object可能是一个简单值(普通字段),可能是一个复杂值(如基础资料字段),更可能是一个集合(如单据体);

    如果值是一个集合,则这个集合的成员,又会是一个DynamicObject对象。

    实际上,我们并不推荐伙伴直接操作DynamicObject,所以也不会提供此方面的介绍。

    我们是希望开发者通过如下方式读取字段数据:

    1. 在界面插件中,通过如下方式取数:
    this.Model.GetValue(key, rowIndex);

    2. 在其他缺少Model的地方,则采用如下方式取数:
    普通字段:
    var field = businessInfo.GetField(key);
    string value = field.DynamicProperty.GetValue(dynamicObject);

    基础资料字段:
    var baseField = businessInfo.GetField(key) as BaseDataField;
    long id = Convert.ToInt64(baseField.RefIdDynamicProperty.GetValue(dynamicObject));
    DynamicObject bdInfo = baseField.DynamicProperty.GetValue(dynamicObject) as DynamicObject;

    单据体:
    var entity = businessInfo.GetEntity(key);
    DynamicObjectCollection rows = entity.DynamicProperty.GetValue(dynamicObject) as DynamicObjectCollection;

    多选辅助资料:
    MulAssistantField targetFld = businessInfo.GetField(key) as MulAssistantField;
    DynamicObjectCollection mulAssiRows = targetFld.RefEntityDynamicProperty.GetValue(headObj) as DynamicObjectCollection;
    foreach(var row in mulAssiRows)
    {
        string id = Convert.ToString(targetFld.RefIDDynamicProperty.GetValue(row));
        DynamicObject bdInfo = targetFld.DynamicProperty.GetValue(row) as DynamicObject;
    }

    多选基础资料,类似于多选辅助资料,不赘述;
    上述方式,都是通过字段、实体上的DynamicProperty属性到DynamicObject中取数,此属性也提供了SetValue方法赋值;

    3. 既没有Model,也没有字段元数据时,才根据DynamicObject本身的结构,逐层往下取数(高级):
    语句1:取简单值
    string strValue = Convert.ToString(dynamicObject[key]);
    语句2:取复杂值
    DynamicObject bdInfo = dynamicObject[key] as DynamicObject;
    语句3:取集合,及集合中字段值
    DynamicObjectCollection mulAssiRows = dynamicObject[entityKey]  as DynamicObjectCollection;
    foreach(var row in mulAssiRows)
    {
            string id = Convert.ToString(row[key]);
            DynamicObject bdInfo = row[key] as DynamicObject;
    }

  • 相关阅读:
    Visual Studio 2010 快捷键
    win7下安装vs2010报vs_setup访问不了的问题
    【技术应用】OneNote发送到cnblogs的方法
    Firefox 7中chrome://URL的基址
    独立安装SharePoint 2010 不允许所请求的注册表访问权 错误解决
    【jquery练习】返回顶部+伸缩显示
    都是function $(id){ return document.getElementById(id); }惹得祸
    【jquery练习】横向滚动导航菜单
    [转]免费api大全
    jpg格式的图片,在ie下不显示
  • 原文地址:https://www.cnblogs.com/jlz-s/p/5541318.html
Copyright © 2011-2022 走看看