如何使用DimensionDynamicAccountController按帐户类型创建查找?

时间:2016-11-18 14:49:51

标签: forms axapta lookup dynamics-ax-2012 x++

我有问题。 我在新表中有两个新字段

1)名称 - > AccountNum,EDT - > DimensionDynamicAccount

2)姓名 - > AccountType,EDT - > LedgerJournalACType

类声明

public class FormRun extends ObjectRun
{
    DimensionDynamicAccountController dimAccountController;
}

init(表单):

public void init()
{
   super();
   dimAccountController = DimensionDynamicAccountController::construct(
   MyTable_ds,
   fieldstr(MyTable, LedgerDimension),
   fieldstr(MyTable, AccountType));
}

4。在表单设计中的Segmented Entry控件实例上覆盖以下方法。

public void jumpRef()
{
    dimAccountController.jumpRef();
}

public void loadAutoCompleteData(LoadAutoCompleteDataEventArgs _e)
{
    super(_e);
    dimAccountController.loadAutoCompleteData(_e);
}

public void segmentValueChanged(SegmentValueChangedEventArgs _e)
{
    super(_e);
    dimAccountController.segmentValueChanged(_e);
}

public void loadSegments()
{ 
   super();
   dimAccountController.parmControl(this);
   dimAccountController.loadSegments();
}

public boolean validate()
{
    boolean isValid;
    isValid = super();
    isValid = dimAccountController.validate() && isValid;
    return isValid;
}

5。在支持Segmented Entry控件的数据源字段上覆盖以下方法。

public Common resolveReference(FormReferenceControl _formReferenceControl)
{
   return dimAccountController.resolveReference();
}

现在我的问题是Lookup仅适用于AccountType ==" Ledger"不是为了客户,供应商等......

如果我有一个AccountType ==供应商或类似但与Ledger不同,我会看到emptyLookup

我希望LedgerJournalTrans表格中有相同的内容

有一个解决方案,

谢谢大家,

享受

1 个答案:

答案 0 :(得分:1)

这可能太明显了,但我认为你错过了lookup()方法。

请参阅:

  

\Forms\LedgerJournalTransDaily\Designs\Design\[Tab:Tab]\[TabPage:OverViewTab]\[Grid:overviewGrid]\SegmentedEntry:LedgerJournalTrans_AccountNum\Methods\lookup

public void lookup()
{
    if (!ledgerJournalEngine.accountNumLookup(ledgerJournalTrans_AccountNum,
                                                ledgerJournalTrans,
                                                ledgerJournalTrans.OffsetAccountType,
                                                ledgerJournalTrans.parmOffsetAccount(),
                                                ledgerJournalTrans_Asset))
    {
        super();
    }
}