【轉】K3Cloud 二次開發 單據轉換系列

來源:互聯網
上載者:User

標籤:

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 二次開發 單據轉換系列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.