Announcements
Hi Experts,
Below is a part of my code that I am using for one of my report. I need to add one more range in my query that to look only for the records in the CustTransTable with AmountMst >0. how can I add this range in my query. Please help.
queryBuildDataSource = query.dataSourceTable(tablenum(CustTrans));
if (_asOfdate)
{
queryBuildRange = queryBuildDataSource.findRange(fieldnum(CustTrans, TransDate));
if (!queryBuildRange)
{
queryBuildRange = queryBuildDataSource.addRange(fieldnum(CustTrans, TransDate));
}
if(!queryBuildRange.value())
queryBuildRange.value(queryRange(_fromDate,_asOfDate));
}
queryRun = new QueryRun(query);
while(queryRun.next())
{
_custTrans = queryRun.get(tableNum(CustTrans));
this.findTransactions();
}
First of all, let me add indentation, so we can read your code more easily. Next time, please don't forget to use Insert > Insert Code.
queryBuildDataSource = query.dataSourceTable(tablenum(CustTrans)); if (_asOfdate) { queryBuildRange = queryBuildDataSource.findRange(fieldnum(CustTrans, TransDate)); if (!queryBuildRange) { queryBuildRange = queryBuildDataSource.addRange(fieldnum(CustTrans, TransDate)); } if (!queryBuildRange.value()) { queryBuildRange.value(queryRange(_fromDate,_asOfDate)); } } queryRun = new QueryRun(query); while (queryRun.next()) { _custTrans = queryRun.get(tableNum(CustTrans)); this.findTransactions(); }
This will add a range for AmountMst > 0:
queryBuildDataSource.addRange(fieldNum(CustTrans, AmountMST)).value('>0');
By the way, you could simplify your code with findOrCreateRange:
if (_asOfdate) { transDateRange = SysQuery::findOrCreateRange(custTransDs, fieldnum(CustTrans, TransDate)); if (!transDateRange.value()) { transDateRange.value(queryRange(_fromDate, _asOfDate)); } }
André Arnaud de Cal...
294,033
Super User 2025 Season 1
Martin Dráb
232,854
Most Valuable Professional
nmaenpaa
101,158
Moderator