zoukankan      html  css  js  c++  java
  • 【转】K3Cloud 单据转换开发

    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 

  • 相关阅读:
    SQL server 导出平面文件时出错: The code page on Destination
    中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
    C# DataTable 转 List(大家进来讨论讨论)
    CSS3圆角气泡框,评论对话框
    WinForm 换行问题 textbox (转)
    Nhibernate 多对多级联删除
    JS、C# 去除html标签
    Nhibernate 多对多级联更新
    Ext.Ajax.request()方法和FormPanel.getForm().submit()方法,都返回success()方法的差异
    ExtJs 4.2.1 报错:Uncaught TypeError: Cannot call method 'getItems' of null
  • 原文地址:https://www.cnblogs.com/jlz-s/p/5535608.html
Copyright © 2011-2022 走看看