【问题标题】:How to Create Lookup by Account Type using DimensionDynamicAccountController?如何使用 DimensionDynamicAccountController 按帐户类型创建查找?
【发布时间】:2023-08-26 21:22:01
【问题描述】:

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

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();
}

现在我的问题是查找仅适用于 AccountType=="Ledger" 不适用于客户、供应商等...

如果我有 AccountType == Vendor 或 similant 但与 Ledger 不同,我会看到

我希望拥有与 LedgerJournalTrans 表单中相同的内容

有办法,

谢谢大家,

享受

【问题讨论】:

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


    【解决方案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();
        }
    }
    

    【讨论】:

    • 非常感谢@Alex Kwinty,您非常有帮助!干得好!