Use of method into Form Field lookup() -Ax 2012

Hi ,

There is a requirement on form along with ItemId name should display which is InventTable name() method.

for that i have written a lookup on form fields as below…but i am not getting desired out put because the use of name method. while itemid selection its throwing an error “Type void is not supported in this type of lookups” ,

any suggestion will be appreciated.

public void lookup()
{
//super();

Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;

SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), this);

sysTableLookup.addLookupField(fieldNum(InventTable, ItemId),true);
sysTableLookup.addLookupMethod(‘name’);

sysTableLookup.addLookupfield(fieldNum(InventTable,ItemType),true);
sysTableLookup.addLookupfield(fieldNum(InventTable,rmsInsurancePercentage),true);

queryBuildDataSource = query.addDataSource(tableNum(InventTable));

queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, rmsInsurancePercentage),true);

queryBuildRange.value(’>0’);

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();
}

Try:

sysTableLookup.addLookupMethod(tableMethodStr(InventTable, itemName);

If you know how to add a field from a different data source and still have the ability to sort/filter on it, let me know. In AX 2009 there is SysMultiTableLookup that looks like it would be perfect but I’m on AX 2012 and don’t appear to have it available.

Just reorder few lines in your method as

public void lookup()
{
//super();

Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;

SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), this);

queryBuildDataSource = query.addDataSource(tableNum(InventTable));

queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, rmsInsurancePercentage),true);
queryBuildRange.value(’>0’);
sysTableLookup.parmQuery(query);

sysTableLookup.addLookupField(fieldNum(InventTable, ItemId),true);
sysTableLookup.addLookupMethod(‘name’);

sysTableLookup.addLookupfield(fieldNum(InventTable,ItemType),true);
sysTableLookup.addLookupfield(fieldNum(InventTable,rmsInsurancePercentage),true);

sysTableLookup.performFormLookup();
}