✏️ Explanatory Question
addRange(...).value(queryValue(...))This is used for exact value matches.
qbdsANSARIProgramTable.addRange(fieldNum(ANSARIProgramTable, ProgramStatus)).value(queryValue(ANSARIProgramStatus::Active));
qbdsANSARIProgramCustomer.addRange(fieldNum(ANSARIProgramCustomer, ProgramStatus)).value(queryValue(ANSARIProgramStatus::Active));
qbdsANSARIProgramCustomer.addRange(fieldNum(ANSARIProgramCustomer, CustAccount)).value(_custAccount);
SysQuery::range(...) for date rangesUsed to check if a date is within a range.
qbdsANSARIProgramTable.addRange(fieldNum(ANSARIProgramTable, ProgramStartDate)).value(SysQuery::range(dateNull(),today));
qbdsANSARIProgramTable.addRange(fieldNum(ANSARIProgramTable, ProgramEndDate)).value(SysQuery::range(today,dateNull())+','+SysQuery::value(dateNull()));
qbdsANSARIProgramCustomer.addRange(fieldNum(ANSARIProgramCustomer, ProgramStartDate)).value(SysQuery::range(dateNull(),today));
qbdsANSARIProgramCustomer.addRange(fieldNum(ANSARIProgramCustomer, ProgramEndDate)).value(SysQuery::range(today,dateNull())+','+SysQuery::value(dateNull()));
qbdsSalesTable.addRange(fieldNum(SalesTable, SalesType)).value (queryValue (SalesType:: Sales));
QueryBuildDataSource queryBuildDataSource = query.addDataSource(tableNum (TaxTrans));
queryBuildDataSource.addRange(fieldnum (TaxTrans, TaxPeriod)).value (SysQuery:: value (taxReportJournal.TaxPeriod));
queryBuildDataSource.addRange(fieldnum (TaxTrans, TaxDirection)).value(SysQuery::value(TaxDirection::IncomingTax));
queryBuildDataSource.addRange(fieldnum (TaxTrans, TaxDirection)).value (SysQuery:: value (TaxDirection::OutgoingTax));
queryBuildDataSource.addRange(fieldNum (TaxTrans, TaxOrigin)).value (SysQuery:: valueNot (TaxOrigin::TaxReporting));
qbdsSalesLine.addRange(fieldNum(SalesLine, SalesQty)).value('>0');
dsInventSum.addRange(fieldNum(InventSum, PhysicalInvent)).value('>0');
dsInventSum.addRange(fieldNum(InventSum, ClosedQty)).value (queryValue(NoYes:: No));
SysQuery::valueNot(...) to exclude valuesThis is used to exclude enum values.
qbdsANSARIProgramTable.addRange(fieldNum(ANSARIProgramTable, ProgramType)).value(SysQuery::valueNot(ANSARIProgramType::CustomerHoldback));
In your provided code, you are using 3 distinct ways to add ranges:
queryValue() — for exact matching.
SysQuery::range() — for range comparisons (mostly dates).
SysQuery::valueNot() — for exclusion logic.