Entity, EntryEntity, SubEntryEntity 这三个对象具有继承关系:
Entity 是实体基类,用于定义各种实体的公共属性;
EntryEntity 是单据体实体类,从Entity派生,增加了单据体的一些特性;
SubEntryEntity 是子单据体实体类,从EntryEntity派生,增加了子单据体的一些特性;

BusinessInfo.GetEntity()方法,返回的是Entity类型,此类已经包含了实体的ORM属性定义,利用此类,完全就可以到单据数据包中获取到数据,无需转换为EntryEntity。

通常情况下,没有Model时,可以使用Entity.DynamicProperty.GetValue(obj)方法,获取单据体的DynamicObjectCollection;

单据转换插件各事件中,生成的下推结果,为了方便插件取数,提供了另外一种方式获取单据体行。

如下演示代码,介绍了在单据转换插件中,两种获取单据体行数据的方法:
//**********************************************
public override void AfterConvert(AfterConvertEventArgs e)
{
    // 方法一:直接获取生成的全部单据体行,不区分单据
    // 此方法特别适用单据转换插件,非常方便
    ExtendedDataEntity[] allEntryRows = e.Result.FindByEntityKey("FEntity");
    foreach (var entryRowDataEntity in allEntryRows)
    {
        DynamicObject row = entryRowDataEntity.DataEntity;
        // TODO: xxxx
    }

// 方法二:逐个单据循环,获取其单据体行
    // 此方法比较通用
    Entity entity = e.TargetBusinessInfo.GetEntity("FEntity");
    // 获取生成的全部单据
    ExtendedDataEntity[] billDataEntities = e.Result.FindByEntityKey("FBillHead");
    // 对单据做循环,逐单读取单据体
    foreach (var billDataEntity in billDataEntities)
    {
        // 如下是比较通用的方法,利用entity读取单据体
        DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(
                    billDataEntity.DataEntity) as DynamicObjectCollection;
        foreach (DynamicObject row in entryRows)
        {
            // TODO: xxxx
        }
    }
}

原贴地址 http://club.kisdee.com/forum.php?mod=viewthread&tid=967037&source=solr_search&word=ENTITY

【转】K3Cloud 二次开发 单据转换系列的更多相关文章

  1. BIMFACE二次开发【C#系列】

    本系列文章主要介绍使用 C# .ASP.NET(MVC)技术对 BIMFACE 平台进行二次开发,以满足本公司针对建筑行业施工图审查系统的业务需求,例如图纸模型(PDF 文件.二维 CAD 模型.三维 ...

  2. NX二次开发-char*转换成CString,多字节转换成Unicode使用方法

    //定义一个结构体记录 struct group { CString text; //定义一个CString std::vector<tag_t> boudaries; std::vect ...

  3. 使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form

    使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form 开发环境: Wing IDE 6.1 步骤1: 打开 Wing IDE,创建一个新的 pr ...

  4. C#开发移动应用系列(3.使用照相机扫描二维码+各种基础知识)

    前言 上篇文章地址: C#开发移动应用系列(1.环境搭建) C#开发移动应用系列(2.使用WebView搭建WebApp应用) 今天我们来讲一下如何使用Camera来调用照相机扫描二维码. (Tips ...

  5. C#开发BIMFACE系列2 二次开发流程

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE 平台是一个对外开放的平台,建筑行业的相关公司.软件公司或者有 BIM 业务需求的公司都可以注册成为开发者并使用其提供的强大功能. ...

  6. TFS二次开发系列:二、TFS的安装

    本系列的实例将采用TFS 2012+Sql Server2012编写. TFS的完整版本安装最好是在Windows server2008 64位以上版本中,其包括64位的SQL SERVER 2012 ...

  7. EcShop二次开发系列教程–总纲

    EcShop作为老牌的B2C独立网店系统,功能非常全名,强大的文件.数据库缓存机制,保证前后台系统执行速度更快.系统平稳运行.但是过多的功能也或多或少的会影响到系统的整个效率,所有在使用EcShop搭 ...

  8. Tiptop二二次开发系列

    易拓GP 4gl二二次开发系列.使用文档工具的深度开发,包装分享. 包含文件: Genero BDL HB 2.0 .pdf Genero Studio 4GL官方开发手冊.pdf 下载地址:http ...

  9. saltstack自动化运维系列⑩SaltStack二次开发初探

    saltstack自动化运维系列⑩SaltStack二次开发初探 1.当salt运行在公网或者网络环境较差的条件下,需要配置timeout时间vim /etc/salt/master timeout: ...

随机推荐

  1. C++ Code_StatusBar

    主题 1. 创建状态栏 并显示 2. 在状态栏中显示进度条 3. MDI文档显示和隐藏状态栏 4. 5.     代码::创建状态栏 并显示 //手动添加3个ICON //////////////// ...

  2. 使用Url.Routeurl获取url值。

    1,获取url值.         public ActionResult About()         {            RouteValueDictionary RVD = new Ro ...

  3. android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索

    最近跟着百度地图API学地图开发,先是学了路径搜索,对于已知坐标的两点进行驾车.公交.步行三种路径的搜索(公交路径运行没效果,待学习中),后来又 学了定位功能,能够获取到自己所在位置的经纬度,但当将两 ...

  4. LINUX 逻辑地址、线性地址、物理地址和虚拟地址 转

    一.概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应.——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地 ...

  5. Linux内核分析笔记 与Linux内核开发理论

    http://www.cnblogs.com/hanyan225/category/308793.html

  6. C语言输出单个汉字字符

    #include "stdio.h" #include "windows.h" int main() { ] = { "多字节字符串!OK!" ...

  7. QT 操作oracle数据库遇到的问题

    一.首先参考官方文档: http://qt-project.org/doc/qt-4.8/sql-driver.html#qoci 二.编译驱动: http://www.tuicool.com/art ...

  8. 项目源码--Android即时通讯IM客户端

    下载源码   技术要点: 1.完整精美客户端UI设计 2.自定义控件的灵活使用 3.UI控件的详细使用 4.即时通讯IM协议的实现 5.完整即时通讯IM客户端实现 6.源码详细的中文注释 …….   ...

  9. spring security源码分析之一springSecurityFilterChain

    1. spring和spring security的集成,配置web.xml如下: <context-param> <param-name>contextConfigLocat ...

  10. A - 敌兵布阵

    Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些 ...