Thursday, 16 June 2016

Filter dimension values based on the dimension selected

To Filter standard and custom dimension values based on the dimension selected


public void lookup(FormControl _formControl, str _filterStr)
{

SysTableLookup sysTableLookup;

Query query;

QueryBuildDataSource qbdsDimensionFinancialTag,qbds,qbds1,qbds2;

QueryBuildRange qbrFinancialTagCategory;
 
//standard

DimensionAttributeValueSetItem valueSetItem;

DimensionAttribute dimAttribute;

DimensionAttributeValue dimAttributeValue;
 
str name,value;

container con;

OMOperatingUnit operatingUnit;
 
//standard

#define.MyCustomFinancialDimension('MyCustomFinancialDimension')

if( DimensionAttribute::findByName(Table1_Dimension.valueStr()).Type == DimensionAttributeType::CustomList)

{
 
query = new Query();

qbdsDimensionFinancialTag = query.addDataSource(tableNum(DimensionFinancialTag));

qbrFinancialTagCategory = qbdsDimensionFinancialTag.addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory));

qbrFinancialTagCategory.value(strFmt('%1', DimensionAttribute::findByName(Table1_Dimension.valueStr(), false).financialTagCategory()));

sysTableLookup = sysTableLookup::newParameters(tableNum(DimensionFinancialTag), _formControl);

sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value), true);

sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));

sysTableLookup.addSelectionField(fieldNum(DimensionFinancialTag, FinancialTagCategory));

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}
   else

{



value = Table1_Dimension.valueStr();


 
if(value == "CostCenter")

{
 
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMCostCenter), _formControl);

query = new query();

qbds = query.addDataSource(tableNum(DimAttributeOMCostCenter));

qbds.addRange(fieldNum(DimAttributeOMCostCenter,Value)).value(SysQuery::valueUnlimited());

sysTableLookup.addLookupfield(fieldNum(DimAttributeOMCostCenter, Value), true);
           

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}
 
if(value == "Brand")

{
 
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMDepartment), _formControl);

query = new query();

qbds = query.addDataSource(tableNum(DimAttributeOMDepartment));

qbds.addRange(fieldNum(DimAttributeOMDepartment,Value)).value(SysQuery::valueUnlimited());

sysTableLookup.addLookupfield(fieldNum(DimAttributeOMDepartment, Value), true);
         

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}

}

}
 


 

No comments:

Post a Comment