Query query = new Query();
QueryBuildDataSource qbds , qbdsCheck;
SysTableLookup _sysTableLookup = SysTableLookup::newParameters(tableNum(PurchReqTable),This);

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

qbds.addRange(fieldNum(PurchReqTable , RequisitionStatus)).value(enum2Str(PurchReqRequisitionStatus::Approved));
qbds.addRange(fieldNum(PurchReqTable , NW_RequestCategory)).value(enum2Str(NW_RequestCategory::RFP_RFQ));

qbdsCheck = qbds.addDataSource(tableNum(PurchRFQCaseTable));
qbdsCheck.addLink(fieldNum(PurchReqTable , PurchReqId) ,fieldNum(PurchRFQCaseTable , PurchReqId));
qbdsCheck.joinMode(JoinMode::NoExistsJoin);


_sysTableLookup.parmQuery(query);
_sysTableLookup.addLookupfield(fieldNum(PurchReqTable, PurchReqId));
_sysTableLookup.addLookupfield(fieldNum(PurchReqTable, PurchReqName ));

_sysTableLookup.performFormLookup();

//cancel the call to super() to prevent the system from trying to show 
//the lookup form twice and cause an error.
FormControlCancelableSuperEventArgs cancelableSuperEventArgs = e as FormControlCancelableSuperEventArgs;
cancelableSuperEventArgs.CancelSuperCall();