Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Answered

Adding query ranges

(0) ShareShare
ReportReport
Posted on by 582

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

}

  • Verified answer
    Martin Dráb Profile Picture
    232,854 Most Valuable Professional on at
    RE: Adding query ranges

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

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Jonas ”Jones” Melgaard – Community Spotlight

We are honored to recognize Jonas "Jones" Melgaard as our April 2025…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 294,033 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 232,854 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,158 Moderator

Leaderboard

Product updates

Dynamics 365 release plans