最新消息:ww12345678 的部落格重装上线,希望大家继续支持。

Cache on Display method implemented at Form level

网络文摘 William 1685浏览 0评论

Some time you have to write display methods on form level, like you needed inputs from form and need to execute the Calculative logic based on those inputs. Cache on form level display method is not supported resulted we have to use the logic to implement the cache. Below code is an example where I have implemented the cache using Maps. In this specific way we have to define a key and value should be calculated and stored in Map. If on next time we have same key then we do not need to recalculate the value and it will be directly fetched from Map.

Cache will be cleared when form closed and refreshed on reopening the form.


public display Amount mzk_osb_TotalMovement(MainAccount _MainAccount)
{
    GeneralJournalAccountEntry GeneralJournalAccountEntry;
    GeneralJournalEntry GeneralJournalEntry;

    str key;

    DimensionAttributeValueCombination davc;

    if (!MapCalcTMov)
    {
        MapCalcTMov = new Map(Types::String, Types::Real);
    }

    key = strFmt(“%1_%2_%3″, _MainAccount.MainAccountId,StartDate.dateValue(),EndDate.dateValue());

    if (! MapCalcTMov.exists(key))
    {
        select sum(AccountingCurrencyAmount) from GeneralJournalAccountEntry
            join GeneralJournalEntry
            where GeneralJournalEntry.RecId == GeneralJournalAccountEntry.GeneralJournalEntry
            join davc
            where davc.RecId == GeneralJournalAccountEntry.LedgerDimension
            && davc.MainAccount == _MainAccount.RecId
            && GeneralJournalEntry.AccountingDate >=StartDate.dateValue()
            && GeneralJournalEntry.AccountingDate <=EndDate.dateValue()
            && GeneralJournalEntry.Ledger == Ledgerrecid;
            MapCalcTMov.insert(key, GeneralJournalAccountEntry.AccountingCurrencyAmount);
    }

    return MapCalcTMov.lookup(key);
}

HAPPY DAXING

转载请注明:ww12345678 的部落格 | AX Helper » Cache on Display method implemented at Form level

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址