Hi
A sysQueryForm is not filtering by a field correctly. This field is from a different table that has been joined after modifying the sysquery.
How to add two different tables as a data source of a query object and filter by the field of the joined table on a sys query form?
//Project (Fiters out by ProjId on sys query form)
qbdsProject = _qbdsHeader.addDataSource(tableNum(ProjTable));
qbdsProject.relations(true);
qbdsProject.joinMode(JoinMode::ExistsJoin);
qbdsProject.relations(true);
qbdsProject.joinMode(JoinMode::ExistsJoin);
projAdjustmentSelect = queryRun.query().dataSourceTable(tableNum(ProjTable));
elements = projAdjustmentSelect.rangeCount();
for (i = 1; i <= elements; i++)
{
projAdjustmentSelectRange = projAdjustmentSelect.range(i);
qbr = qbdsProject.addRange(projAdjustmentSelectRange.field());
qbr.value(projAdjustmentSelectRange.value());
}
elements = projAdjustmentSelect.rangeCount();
for (i = 1; i <= elements; i++)
{
projAdjustmentSelectRange = projAdjustmentSelect.range(i);
qbr = qbdsProject.addRange(projAdjustmentSelectRange.field());
qbr.value(projAdjustmentSelectRange.value());
}
}
// Code I added to set the data source to new table and filter out by new field in the joined table of the sys query form
qbdsProjPostedTrans = _qbdsHeader.addDataSource(tableNum(ProjPostedTransTable));
qbdsProjPostedTrans.relations(true);
qbdsProjPostedTrans.joinMode(JoinMode::ExistsJoin);
qbdsProjPostedTrans = _qbdsHeader.addDataSource(tableNum(ProjPostedTransTable));
qbdsProjPostedTrans.relations(true);
qbdsProjPostedTrans.joinMode(JoinMode::ExistsJoin);
projPostedTransTable = queryRun.query().dataSourceTable(tableNum(ProjPostedTransTable));
elements = projPostedTransTable.rangeCount();
for (i = 1; i <= elements; i++)
{
projPostedTransTableRange = projPostedTransTable.range(i);
qbr = qbdsProjPostedTrans.addRange( projPostedTransTableRange.field());
qbr.value( projPostedTransTableRange.value());
elements = projPostedTransTable.rangeCount();
for (i = 1; i <= elements; i++)
{
projPostedTransTableRange = projPostedTransTable.range(i);
qbr = qbdsProjPostedTrans.addRange( projPostedTransTableRange.field());
qbr.value( projPostedTransTableRange.value());