[CurrGroup :=] Record.FILTERGROUP([NewGroup]);
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:
Wenn wir denselben Code ohne die Filtergruppe -1 ausführen, erhalten wir stattdessen folgende Meldung:
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.