All around NAV dev and test
Even though many of us are experienced developers, the FILTERGROUP record function isn't for each of us a well-known or understood concept. Because of this very reason the following question has been for years part of the quiz I start a course day with.
So get ready …
The default lookup page for MyTable is run by the following C/AL code:
When the page is displayed, the user applies the table filter 6000..6500. Which records will then be shown?
a. No records because the filter will read: (1000..5000)&(6000..6500)b. Records in the range 1000..5000 because the program ignores the filter applied by the userc. Records in the range 1000..6500 because the filter will read (1000..6500)d. Records in the range 6000..6500 because the filter applied by the user overrides the SETFILTER call
"OK ... a, b, c, or d?" ...
... I did ask the 13 Slovenian developers I was giving a NAV 2015 update course to the last couple of days. And yes, some knew, but most had a hard time with it.
Triggered by this question and the discussion following it, one of the attendants, Darko Grasic (he earns the credits), consulted the msdn help on FILTERGROUP and asked me about FILTERGROUP(-1).
Yep, FILTERGROUP(-1). Follow the link and see. Or just try the following code:
Rewriting the code somewhat so it opens a page the result looks like this (including my former MS colleague Hervé):
You get it?
So with FILTERGROUP(-1) we now have and OR filter that can spread several columns! Wow.
This is what makes teaching awesome, and with such coincidence that during my workshop in Hasselt this week, Steven Renders made the same comment about FILTERGROUP(-1).
I did not know about it and wanted to blog it too. However I am, very diciplined, working on my new book instead. Thanks for blogging.
Fully agree, Mark. And good choice to keep focussed on the book.
It explains how the tablet filter works... ;-)
Bedankt, bedankt! Indeed, I have never come across the implementation of -1 since NAV 2015.
Microsoft should have promoted this under msdn.microsoft.com/.../hh174007(v=nav.80).aspx (I will send a feedback there).
Nice article, but have you tried using it in a page without using marks?