FILTERGROUP

Die Funktion FILTERGROUP setzt die Filtergruppe, die auf eine Tabelle angewandt wird, oder gibt die gerade angewendete Filtergruppe aus.

Parameter

Die Funktion FILTERGROUP wird über eine Record-Variable aufgerufen, deren Filtergruppe bearbeitet/ausgegeben werden soll. NewGroup steht für die Nummer der zu setzenden Filtergruppe.

Rückgabewert

Die Funktion FILTERGROUP liefert einen Integer-Wert zurück, der die aktuell angewandte Filtergruppe bezeichnet.

Weitere Informationen

Wenn mittels der Funktion FILTERGROUP eine Filtergruppe festgelegt wird, werden alle folgenden Aufrufe der Funktionen SETRANGE und SETFILTER auf diese Filtergruppe angewandt.

Die auf die Tabelle angewandten Filter sind immer die Summe aller Filter in allen Filtergruppen.

Im Windows-Client oder im Web-Client werden nur die Filter, die auf die Filtergruppe 0 angewendet werden, angezeigt.

Die folgenden Filtergruppen werden in Dynamics 365 Business Central intern verwendet:

Nummer Name Beschreibung
-1 Crosscolumn Ermöglicht die Suche über mehrere Spalten.
0 Std Die Standard-Filtergruppe. Wenn keine andere Filtergruppe gesetzt wird, werden Filter auf diese Gruppe angewendet.
1 Global Wird genutzt, um Filter für die komplette Anwendung zu setzen.
2 Form Wird für Filter genutzt, die von der Funktion „SETTABLEVIEW” oder den Eigenschaften „SourceTableView” oder „DataItemTableView” gesetzt werden.
3 Exec Wird für Filter genutzt, die von den Eigenschaften „SubPageView” oder „RunPageView” gesetzt werden.
4 Link Wird für Filter genutzt, die von den Eigenschaften „DataItemLink” oder „SubPageLink” gesetzt werden.
5 Temp Zur Zeit nicht genutzt.
6 Security Wird genutzt, um Sicherheitsfilter für Benutzer Berechtigungen zu setzen.
7 Factboxes Wird genutzt, um den Status von Factboxen zu leeren.

Das Nutzen der systeminternen Filtergruppen kann dazu führen, dass die Anwendung nicht wie erwartet reagiert.

Beispiel

Ein Beispiel, wie durch die Nutzung von Filtergruppen Filter eingebaut werden, die der Anwender nicht verändern können soll, findet sich in unserem Blog-Beitrag Gesetzte Filter vor dem Benutzer verstecken.

Eine weitere mögliche Anwendung ist, die Filtergruppe -1 zu nutzen, um Datensätze in mehreren Spalten zu durchsuchen.

Hierfür legen wir zunächst eine Record-Variable und eine Text-Variable an:

Name Datentyp Subtyp
Vendor Record Vendor
SearchString Text  

Anschließend wird folgender C/AL-Code eingefügt:

Vendor.FILTERGROUP(-1);
SearchString := '@*Michael*';
Vendor.SETFILTER(Name,SearchString);
Vendor.SETFILTER(Contact,SearchString);
MESSAGE('Kreditoren im Filter: ' + FORMAT(Vendor.COUNT));

Nach Ausführung des Codes erscheint nun folgende Meldung in Dynamics 365 Business Central:

Anzahl Kreditoren im Filter: 4

Wenn wir denselben Code ohne die Filtergruppe -1 ausführen, erhalten wir stattdessen folgende Meldung:

Anzahl Kreditoren im Filter: 0

Der Unterschied entsteht dadurch, dass durch das Setzen der Filtergruppe -1 das Filtern über mehrere Spalten aktiviert wurde und dementsprechend alle Datensätze angezeigt werden, für die einer der beiden Filter zutrifft. Ohne diese Filtergruppe werden nur Datensätze berücksichtigt, für die beide Filter zutreffen.