Showing posts with label Financial dimension lookup in form level in Ax 2012. Show all posts
Showing posts with label Financial dimension lookup in form level in Ax 2012. Show all posts

Thursday, 13 September 2018

Financial dimension lookup in form level in Ax 2012

public void lookup()
{

    DimensionAttribute                            dimensionAttribute;
    DimensionAttributeDirCategory       dimAttributeDirCategory;
    Query                                                 query = new Query();
    QueryBuildDataSource                      qbds;
    SysTableLookup                               sysTableLookup;

    dimensionAttribute     = DimensionAttribute::findByName('Products');
    if (dimensionAttribute.Type == DimensionAttributeType::CustomList)
    {
        select firstonly DirCategory from dimAttributeDirCategory
            where dimAttributeDirCategory.DimensionAttribute == dimensionAttribute.RecId;

        sysTableLookup = SysTableLookup::newParameters(tableNum(DimensionFinancialTag), this);
        sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value));
        sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));

        qbds = query.addDataSource(tableNum(DimensionFinancialTag));
        qbds.addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory)).value(queryValue(dimAttributeDirCategory.DirCategory));

        sysTableLookup.parmQuery(query);
        sysTableLookup.performFormLookup();
    }

}
-----------------------------------------------------------------------------------------------------------
1.)create New Class...................
class  NaSyslookup extends SysLookup
{
}
Public void lookupDimension(FormStringControl _stringControl, Name _dimensionName)
{
     syslookup::lookupDimension(_stringControl,_dimensionName);
}

2.)write code in Lookup override...........................

public void lookup()
{
    NaSyslookup cicsyslookup        = new NaSyslookup();
    Query query = new Query();
    QueryBuildDataSource queryBuildDataSource;
    SysTableLookup sysTableLookup =  new SysTableLookup();
    //super();
    switch (TransType.selection())
    {
        case 0:
            sysTableLookup =                  SysTableLookup::newParameters(tableNum(DimAttributeOMBusinessUnit), this);
            queryBuildDataSource = query.addDataSource(tableNum(DimAttributeOMBusinessUnit));
            sysTableLookup.addLookupfield(fieldNum(DimAttributeOMBusinessUnit, Value),true);
            sysTableLookup.addLookupfield(fieldNum(DimAttributeOMBusinessUnit, Name));
            sysTableLookup.addSelectionField(fieldNum(DimAttributeOMBusinessUnit, Value));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

        case 1:
            sysTableLookup = SysTableLookup::newParameters(tableNum(DimAttributeOMDepartment), this);
            queryBuildDataSource = query.addDataSource(tableNum(DimAttributeOMDepartment));
            sysTableLookup.addLookupfield(fieldNum(DimAttributeOMDepartment, Value),true);
            sysTableLookup.addLookupfield(fieldNum(DimAttributeOMDepartment, Name));
            sysTableLookup.addSelectionField(fieldNum(DimAttributeOMDepartment, Value));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

        case 2:
            sysTableLookup = SysTableLookup::newParameters(tableNum(DimensionFinancialTag), this);
            queryBuildDataSource = query.addDataSource(tableNum(DimensionFinancialTag));
            sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value),true);
            sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));
            sysTableLookup.addSelectionField(fieldNum(DimensionFinancialTag, Value));
            sysTableLookup.parmQuery(query);
            sysTableLookup.performFormLookup();
            break;

 default:
    }
}