Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Datenzeilen filtern  Dokument im Navigationsbaum lokalisieren

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 einer bestimmten Spalte erfüllen muss, um angezeigt oder herausgefiltert zu werden.

Analog zum Sortierungsobjekt können Sie zu jeder Spalte maximal ein Filterobjekt erzeugen. Jedes Filterobjekt kann eine oder mehrere Filterbedingungen enthalten.

Klassen

Die Gesamtheit aller Filterobjekte ist repräsentiert durch ein Objekt vom Typ CL_SALV_FILTERS. Die Filtereinstellungen einer Spalte sind repräsentiert durch ein Objekt vom Typ CL_SALV_FILTER. Die einzelnen Filterbedingungen in einem Filterobjekt sind repräsentiert durch Objekte vom Typ CL_SALV_SELOPT.

Diese Grafik wird im zugehörigen Text erklärt

Filterbedingung

In einer Filterbedingung machen Sie verschiedene Angaben dazu, welche Datensätze angezeigt werden sollen:

·        Die Spalte, in der sich die geprüften Inhalte befinden

·        Der 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.

·        Die Bedingung, also ein Operator, der festlegt wie der Zellenwert zum Vergleichswert stehen muss (z. B. größer, kleiner oder gleich)

·        Einschluss oder Ausschluss, also ob die Zeilen, die der Bedingung entsprechen, angezeigt werden, oder ob sie gerade nicht angezeigt werden

Beispiel

Es sollen alle Einträge angezeigt werden, die in der Spalte CARRID den Wert AA enthalten.

...

gr_filter->add_filter(
columnname = 'CARRID'
sign = 'I'
option = 'EQ'
low = 'AA' ).
...

 

§         Mit dem Parameter columname legen Sie den Spaltennamen fest

§         Mit dem Parameter low (oder high) legen Sie den Vergleichswert fest

§         Mit dem Parameter option legen Sie die Bedingung fest

§         Mit dem Parameter sign legen Sie fest, ob es sich um eine ein- oder eine ausschließende Bedingung handelt

Funktionsumfang

Zu Filterobjekten können Sie folgende Einstellungen vornehmen:

·        Filterobjekte und Filterbedingungen holen

·        Filterobjekt und Filterbedingung erzeugen und löschen

·        Filtern einer Spalte verbieten

Für all diese Funktionen gilt:

Darstellungsart

ALV-Werkzeug

Klass. ABAP-Liste

Fullscreen

Im Container

Einfache, zweidimensionale Tabelle

Ja

Ja

Ja

Hierarchisch-sequenzielle Liste

Ja

 

 

Baumstruktur

 

Nein

Nein

Filterobjekte und Filterbedingungen holen

In jeder ALV-Hauptklasse, in der Filtern möglich ist, existiert die Methode GET_FILTERS, die das FILTERS-Objekt der ALV-Ausgabe (also alle Filterobjekte der Spalten) zurückgibt. Über dieses FILTERS-Objekt erhalten Sie mit den Methoden GET bzw. GET_FILTER das Filterobjekt der gewünschten Spalte, sofern dort eines vorhanden ist. Über das Filterobjekt wiederum erhalten Sie dessen Filterbedingungen.

Methoden

Funktion

Klasse

Methode

FILTERS-Objekt holen

CL_SALV_TABLE

CL_SALV_HIERSEQ_TABLE

GET_FILTERS

Alle Filterobjekte holen

CL_SALV_FILTERS

GET

Alle Filterobjekte einer Hierarchieebene holen

CL_SALV_HIERSEQ_LEVEL

GET_FILTERS

Bestimmtes Filterobjekt holen

CL_SALV_FILTERS

GET_FILTER

Prüfen, ob eine Spalte gefiltert ist (ein Filterobjekt existiert)

IS_FILTER_DEFINED

Alle Filterbedingungen eines Filterobjekts holen

CL_SALV_FILTER

GET

Filterobjekt und Filterbedingung erzeugen und löschen

Zu einer Spalte können Sie maximal ein Filterobjekt erzeugen. Zu jedem Filterobjekt jedoch können Sie beliebig viele Filterbedingungen erzeugen.

Sie können Filterobjekte entweder einzeln oder alle gemeinsam löschen. Die Filterbedingungen eines Filterobjekts können Sie nur gemeinsam löschen.

Hinweis

Sie können nur zu solchen Spalten ein Filterobjekt erzeugen, zu denen Sie dies nicht ausdrücklich verboten haben (siehe Abschnitt Filtern einer Spalte verbieten).

Filterbedingung definieren

Wenn Sie zu einer Spalte das erste Filterobjekt definieren, wird automatisch eine Filterbedingung erzeugt. Die Einstellungen dazu legen Sie über die Parameter der Methode ADD_FILTER fest. Alle weiteren Filterbedingungen zu derselben Spalte erzeugen Sie über die Methode ADD_SELOPT.

Alle Angaben zur Filterbedingung verwalten Sie über die Methoden der Klasse CL_SALV_SELOPT.

Methoden

Funktion

Klasse

Methode

Filterobjekt erzeugen

CL_SALV_FILTERS

ADD_FILTER

Einzelnes Filterobjekt löschen

REMOVE_FILTER

Alle Filterobjekte löschen

CLEAR

Filterbedingung erzeugen

CL_SALV_FILTER

ADD_SELOPT

Alle Filterbedingungen löschen

CLEAR

Vergleichswert oder Bereich festlegen

CL_SALV_SELOPT

SET_LOW

SET_HIGH

Vergleichswert holen

GET_LOW

GET_HIGH

Bedingung (Operator) festlegen

SET_OPTION

Bedingung (Operator) holen

GET_OPTION

Ein- oder Ausschluss festlegen

SET_SIGN

Ein- oder Ausschluss holen

GET_SIGN

Hinweis

Wenn Sie Ihrer ALV-Ausgabe eine neue Datentabelle mit neuer Struktur zuweisen, werden alle Filterobjekte automatisch gelöscht.

Filtern einer Spalte verbieten

Standardmäßig können Sie oder der Nutzer zu jeder Spalte einen Filter definieren. Sie können für jede einzelne Spalte festlegen, ob dafür ein Filterobjekt definiert werden darf.

Methoden

Funktion

Klasse

Methode

Filtern einer Spalte verbieten

CL_SALV_FILTERS

SET_FILTER_ALLOWED

Prüfen, ob für eine Spalte das Filtern verboten ist

IS_FILTER_ALLOWED

 

Ende des Inhaltsbereichs