
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));
}
}