error like "The data source is not embedded within a (parent) data source." while creating lookup with multiple tables

Hi Guys,

I am trying to create a simple lookup on form datasource field by over riding one field.

my code

public void lookup(FormControl _formControl, str _filterStr)

{

Query query = new Query();

QueryBuildDataSource qbds;

QueryBuildDataSource qbdsJoin;

SysTableLookup sysTableLookup;

//DmsSkuDetailsTable DmsSkuDetailsTable;

str currentcompany;

CompanyInfo CompanyInfo;

super(_formControl, _filterStr);

currentcompany =any2str(curext());

changeCompany(DMS_IMEIDelinkingTable.DataArea)

{

select firstOnly DMSDivisionCode

from CompanyInfo

where CompanyInfo.DataArea == DMS_IMEIDelinkingTable.DataArea;

sysTableLookup = SysTableLookup::newParameters(tableNum(DmsSkuDetailsTable), _formControl);

qbds = query.addDataSource(tableNum(DmsSkuDetailsTable));//.addDataSource(tableNum(InventTable));

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

qbds.relations(false);

qbds.fields().dynamic(NoYes::Yes);

qbds.addLink( fieldNum(DmsSkuDetailsTable, ProductCode), fieldNum(InventTable, ItemId));

qbds.joinMode(JoinMode::InnerJoin);

qbds.addRange(fieldNum(DmsSkuDetailsTable,DivisionCode)).value(CompanyInfo.DMSDivisionCode);

qbds.addOrderByField(fieldnum(DmsSkuDetailsTable, ProductCode));

sysTableLookup.addLookupField(fieldnum(InventTable, ItemId));

sysTableLookup.addLookupField(fieldnum(DmsSkuDetailsTable, IMEINoStatus));

//qbds.orderMode(OrderMode::GroupBy);

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}

}

and I am getting an error like “The data source is not embedded within a (parent) data source.”

i think problem in this line

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

try to use qbds.adddatasource

You’re calling addLink() on the wrong datasource.

You’ll be able to find such bugs more quickly if you become using more descriptive names for your variables.

…and Kunal is right too. There is more than one bug.