Tuesday, December 24, 2013

Dialog with lookup control Ax 2009

In this Dialog we will add a Lookup filter to the bank statement field according the selected bank account value















1.Class Declaretion

class DelBankTrans extends RunBase
{
    Transdate                    statDate;
    CompanyBankAccountId         bankAccount;
    BankAccountStatementNum      stateAcc;

    DialogField     dlgstatDate;
    DialogField     dlgbankAccount;
    DialogField     dlgstateAcc;

    #define.CurrentVersion(2)
    #define.Version1(2)
    #localmacro.CurrentList
        bankAccount,
        stateAcc
    #endmacro
}

2.Dialog

public Object dialog()
{
    DialogRunBase dialog;
    ;

    dialog = super();

    dialog.caption("Unreconcile Bank Statement");

    dlgbankAccount = dialog.addFieldvalue(typeId(CompanyBankAccountId), bankAccount);

    dlgstateAcc    = dialog.addFieldvalue(typeId(BankAccountStatementNum), stateAcc);
    dlgstateAcc.lookupButton(FormLookupButton::Always);

    dlgstatDate    = dialog.addFieldvalue(typeId(TransDate), statDate);

    return dialog;
}

3.dialogPostRun

public void dialogPostRun(DialogRunbase dialog)
{
    ;
    super(dialog);

    dialog.formRun().controlMethodOverload(true);
    dialog.formRun().controlMethodOverloadObject(this);

}

4.Look Up method with filter - dlgbankAccount.value()

void Fld2_1_lookup()
{
    Query                   query          = new Query();
    SysTableLookup          sysTableLookup =    SysTableLookup::newParameters(tableNum(BankAccountStatement), dlgstateAcc.control());
    QueryBuildDatasource    qbr;
    ;

    sysTableLookup.addLookupField(fieldNum(BankAccountStatement, AccountStatementNum));
    sysTableLookup.addLookupField(fieldNum(BankAccountStatement, AccountStatementDate));

    qbr = query.addDataSource(tableNum(BankAccountStatement));

    qbr.addRange(fieldNum(BankAccountStatement, AccountId)).value(dlgbankAccount.value());
 
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}

and that's It.



No comments:

Post a Comment