Show TOC

FilternLocate this document in the navigation structure

Verwendung

Mit Filtern schränken Sie die Anzeige von Datensätzen in der ALV-Ausgabe ein. Dazu geben Sie Bedingungen an, die ein Datensatz in einem bestimmten Feld erfüllen muss, um angezeigt oder herausgefiltert zu werden.

Zu Filterobjekten können Sie folgende Einstellungen vornehmen:

  • Filterbedingungen eines Feldes erzeugen, holen oder löschen

  • Einstellungen zur Filterbedingung vornehmen

  • Groß- und Kleinschreibung ignorieren

  • Filtern einer Spalte verbieten

  • Filtern nach den Werten eines anderen Feldes

  • Registerkarte zum Filtern oder Drucktaste Filter in Toolbar ein- und ausblenden

Filterbedingungen eines Feldes erzeugen, holen oder löschen

Anders als bei der Sortierbedingung können Sie zu jedem Feld beliebig viele Filterbedingungen erzeugen.

Hinweis

Sie können nur zu solchen Spalten eine Filterbedingung erzeugen, zu denen Sie dies nicht ausdrücklich verboten haben (siehe unten).

Das Filtern ist eine Eigenschaft eines Feldes in der ALV-Ausgabe (siehe Felder). Um die Filterbedingung eines Feldes zu erzeugen, zu holen oder zu löschen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_FILTER (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zum Erzeugen, Holen und Löschen von Filterbedingungen

Funktion

Methode

Eine bestimmte Filterbedingung holen

GET_FILTER_RULE

Alle Filterbedingungen des Feldes holen

GET_FILTER_RULES

Filterbedingung erzeugen

CREATE_FILTER_RULE

Bestimmte Filterbedingung löschen

DELETE_FILTER_RULE

Alle Filterbedingungen des Feldes löschen

DELETE_FILTER_RULES

Die Filterbedingung eines Feldes ist repräsentiert durch ein Objekt der Klasse CL_SALV_WD_FILTER_RULE.

Hinweis

Wenn Sie Ihrer ALV-Ausgabe eine neue Datentabelle mit neuer Struktur zuweisen, werden die Filterbedingungen aller Felder automatisch gelöscht.

Einstellungen zur Filterbedingung vornehmen

Eine Filterbedingung besteht aus folgenden Angaben:

  • Vergleichswert, auf den die Zeilen geprüft werden

    Dies kann ein einzelner Wert sein oder ein Bereich, innerhalb dem der geprüfte Wert liegen muss. Sie geben immer den unteren Wert an (LOW_VALUE), für einen Bereich auch den oberen Wert (HIGH_VALUE).

  • Operator, über den Feldwert und Vergleichswert verglichen werden

    Mit dieser Angabe (OPERATOR) legen Sie fest, wie der Zellenwert zum Vergleichswert stehen muss (z. B. größer, kleiner oder gleich).

  • Einschluss oder Ausschluss

    Mit dieser Angabe legen Sie fest, ob die Zeilen angezeigt werden, die der Bedingung entsprechen, oder ob sie gerade nicht angezeigt werden.

Um Einstellungen zu einer Filterbedingung zu ändern, verwenden Sie Methoden der Klasse CL_SALV_WD_FILTER_RULE.

Methoden zu Einstellungen zur Filterbedingung

Funktion

Methode

Vergleichswert (Untergrenze) festlegen

SET_LOW_VALUE

Vergleichswert (Untergrenze) holen

GET_LOW_VALUE

Obergrenze eines Vergleichsbereichs festlegen

SET_HIGH_VALUE

Obergrenze eines Vergleichsbereichs holen

GET_HIGH_VALUE

Operator festlegen

SET_OPERATOR

Operator holen

GET_OPERATOR

Einschluss oder Ausschluss festlegen

SET_INCLUDED

Einschluss oder Ausschluss holen

GET_INCLUDED

Groß- und Kleinschreibung ignorieren

Standardmäßig berücksichtigt der Filter Groß- und Kleinschreibung bei der Suche nach Datensätzen, die der Filterbedingung entsprechen. Wenn Sie also den Vergleichswert angeben, müssen Sie die genaue Schreibweise einhalten, um die gewünschten Treffer zu erhalten.

Sie können einstellen, dass der Filter die Groß- und Kleinschreibung ignoriert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_FIELD_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).

Methoden zur Groß- und Kleinschreibung

Funktion

Methode

Groß- und Kleinschreibung ignorieren

SET_FILTER_IGNORING_CASE

Prüfen, ob Groß- und Kleinschreibung ignoriert wird

IS_FILTER_IGNORING_CASE

Filtern einer Spalte verbieten

Sie können für ein Feld gezielt das Filtern verbieten. Dies hat folgende Auswirkungen:

  • Wenn eine ALV-Ausgabe gefiltert ist, wird automatisch eine Filterzeile angezeigt, in der zu jeder Spalte der aktuelle Filter erkennbar ist: Der Benutzer kann hier auf schnelle Weise einen Filter eingeben.

    Wenn Sie für ein Feld das Filtern verbieten, ist in dieser Filterzeile die entsprechende Zelle leer und nicht eingabebereit.

  • Im Dialogfenster Einstellungen wird auf der Registerkarte Filter die entsprechende Spalte nicht mehr angeboten.

  • Wenn Sie in Ihrer Anwendung für dieses Feld eine Filterbedingung definiert haben, hat der Filter in der ALV-Ausgabe keine Auswirkung.

Um das Filtern eines Feldes zu verbieten, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_FILTER (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zum Verbieten von Filtern

Funktion

Methode

Filtern für ein Feld verbieten

SET_FILTER_ALLOWED

Prüfen, ob Filtern erlaubt ist

IS_FILTER_ALLOWED

Filtern nach den Werten eines anderen Feldes

Sie können ein Feld angeben, nach dem das aktuelle Feld gefiltert wird, wenn das Feld selbst nicht das gewünschte Ergebnis liefert oder zu komplizierte Eingaben erfordert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_COLUMN_SERVICE_REF (implementierende Klasse CL_SALV_WD_COLUMN).

Methoden zum Filtern nach den Werten eines anderen Feldes

Funktion

Methode

Feldnamen des anderen Feldes festlegen

SET_FILTER_FIELDNAME

Feldnamen des anderen Feldes holen

GET_FILTER_FIELDNAME