Beispiel

Erstelle eine neue Codeunit und übernehme den folgenden C/AL-Code:

Customer.SETFILTER("Country Code", 'DE');
PAGE.RUN(0, Customer);

Wenn du die Codeunit ausführst, öffnet Navision die Debitorenübersicht und setzt einen Filter, dass nur die deutschen Debitoren angezeigt werden. Dass ein Filter gesetzt ist, sieht man daran, dass in der Navision-Statuszeile „FILTER“ angezeigt wird.

Debitorenübersicht mit dem sichtbaren Filter

Der Benutzer hat jetzt die Möglichkeit den Filter zu entfernen und würde dann alle Debitoren sehen. Wenn aber genau das nicht gewünscht ist, muss – um den Filter zu „verstecken“ – folgendes in den C/AL-Code geschrieben werden:

Customer.FILTERGROUP(2);
Customer.SETFILTER("Country Code", 'DE');
PAGE.RUN(0, Customer);

Wie du erkennen kannst, ist die erste Zeile neu hinzugekommen. Diese Zeile bzw. der Befehl FILTERGROUP (mit der Angabe „2“) ist dafür zuständig, dass der in der darauf folgenden Zeile gesetzte Filter vor dem Benutzer versteckt wird.

Debitorenübersicht mit dem unsichtbaren Filter

Eine Kombination aus „normalen“ und „versteckten“ Filter geht natürlich auch.

Customer.FILTERGROUP(2);
Customer.SETFILTER("Country Code", 'DE');
Customer.FILTERGROUP(0);
Customer.SETFILTER("Post Code", '8*');
PAGE.RUN(0, Customer);

Und auch in diesem Beispiel lässt sich der Filter, dass nur die deutschen Debitoren angezeigt werden nicht entfernen. Zusätzlich wurde hier noch der Filter gesetzt, dass nur Debitoren angezeigt werden, dessen Postleitzahl mit einer acht beginnen. Dieser Filter lässt sich dagegen vom Benutzer ändern bzw. löschen.

Debitorenübersicht mit dem sichtbaren und unsichtbaren Filter

Anwendungsbereiche für das Setzen eines „versteckten“ Filters gibt es viele. Zum Beispiel wenn ein Verkaufsauftrag geöffnet wird, zeigt dieser nur die Datensätze aus der Tabelle „Verkaufskopf“ an, die vom Typ „Order“ sind. Werden dagegen die Verkaufsrechnungen geöffnet, werden nur die Datensätze angezeigt, die vom Typ „Invoice“ sind. In beiden Fällen ist es aber die gleiche Tabelle.