Creating a custom lookup Form and when I execute the lookup I receive the 
following message:

Query extended range failure: InventDim.InventSerialId is not a valid 
datasource.field pair near pos 29.

What I want selected from InventTrans is:

1. Records associated with a particluar Production order (ItemId and 
InventTransId selections)
2. Records that aren't associated with a serial number.

In the init method of the data source (InventTrans) I have coded the following:

public void init()
{
    Query                   q;
    QueryBuildDataSource    qB;
    QueryBuildDataSource    qB2;
    ;

    super();

    q = new Query();
    qB  = q.addDataSource(tablenum(InventTrans));
    qB.addRange(Fieldnum(InventTrans,ItemId)).value(prodTable.itemid);
    
qB.addRange(FieldNum(InventTrans,InventTransId)).value(prodTable.InventTransId);
    qB.addRange(FieldNum(InventTrans,Qty)).value('> 0');

    qB2 = qB.addDataSource(tablenum(InventDim));
    qB2.addLink(FieldNum(InventTrans, 
InventDimId),fieldNum(InventDim,InventDimid), qB.name());
    qB2.addRange(Fieldnum(InventDim,InventSerialId)).value(strfmt('(%1.%2 = 
"")', 'InventDim', fieldStr(InventDim, InventSerialId)));
    qB2.joinMode(JoinMode::InnerJoin);

    this.query(q);
}

The query that is built from the above looks like this:

SELECT * FROM InventTrans WHERE ((ItemId = N'038020AH')) AND ((InventTransId = 
N'LOT003279')) AND ((Qty>0)) JOIN * FROM InventDim WHERE 
InventTrans.inventDimId = InventDim.inventDimId AND (((InventDim.InventSerialId 
= "")))

Don't understand the reason for the message and what what I need to change to 
eliminate it.

Any help would be appreciated, Paul

Reply via email to