SAP ABAP Table Control mit Beispielen
โก Intelligente Zusammenfassung
SAP ABAP Table Control zeigt eine interne Tabelle als scrollbares Raster auf einem im Bildschirm erstellten Bildschirm an. PainterDiese Seite erlรคutert die Funktionen, die CONTROLS-Deklaration, die Cursorbehandlung, die PBO- und PAI-Schleifen sowie die Spaltenattribute.

Was ist ein Tabellensteuerelement in SAP ABAP?
Table Controls und Steploops sind Objekte zur Bildschirmtabellendarstellung, die Sie einem Bild im Screen hinzufรผgen Painter.
Aus programmtechnischer Sicht sind Tabellensteuerungen und Steploops nahezu identisch. Bei Tabellensteuerelementen handelt es sich lediglich um verbesserte Steploops, die Daten im Erscheinungsbild und Verhalten von Tabellen in Desktopanwendungen anzeigen.
Funktionen des ABAP Table Control
Mit Tabellensteuerelementen kann der Benutzer:
- Scrollen Sie vertikal und horizontal durch die Tabelle
- รndern Sie die Breite einer Spalte
- Innerhalb eines Feldes scrollen (wenn der Feldinhalt breiter als das Feld ist)
- Wรคhlen Sie Tabellenzeilen oder -spalten aus
- Ordnen Sie die Reihenfolge der Spalten neu
- Speichern Sie die aktuellen Anzeigeeinstellungen fรผr die zukรผnftige Verwendung
Tabellensteuerelemente bieten auรerdem spezielle Formatierungsfunktionen (einige automatisch, andere optional), die die Anzeige und Verwendung von Tabellen erleichtern. Table Control bietet โ
- Automatische Grรถรenรคnderung der Tabelle (vertikal und horizontal), wenn der Benutzer die Grรถรe des Fensters รคndert
- Trennlinien zwischen Zeilen und zwischen Spalten (vertikal und horizontal)
- Spaltenkopffelder fรผr alle Spalten
Im Allgemeinen werden viele der vom Tabellensteuerelement bereitgestellten Funktionen lokal von Ihrem System verwaltet. SAPGUI-Frontend, sodass Sie sie nicht selbst programmieren mรผssen. Die einzige bemerkenswerte Ausnahme hiervon ist das vertikale Scrollen.
Beispiel (Transaktion TZ60)
Die oben dargestellte Transaktion TZ60 zeigt das Endergebnis: ein Raster mit Spaltenรผberschriften, Trennlinien und einer Auswahlspalte. Die Unterschiede zur รคlteren Schrittschleife werden im Folgenden zusammengefasst.
Tabellensteuerung vs. Schrittschleife
Eine Besonderheit von Schrittschleifen ist, dass sich ihre Tabellenzeilen รผber mehrere Zeilen erstrecken kรถnnen. Eine Zeile eines Tabellensteuerelements hingegen muss immer in einer einzigen Zeile stehen (Scrollen ist jedoch mรถglich). Die folgende Tabelle vergleicht die beiden Bildschirmelemente.
| Eigenschaften | Tischsteuerung | Schrittschleife |
|---|---|---|
| Zeilenlayout | Eine Zeile entspricht immer einer Bildschirmzeile. | Eine Zeile kann sich รผber mehrere Bildschirmzeilen erstrecken. |
| Spaltenverarbeitung | Spalten kรถnnen vom Benutzer in ihrer Grรถรe verรคndert, neu angeordnet und ausgeblendet werden. | Festes Spaltenlayout auf dem Bildschirm definiert |
| Scrolling | Horizontales Scrollen durch das Frontend, vertikales Scrollen in PAI programmiert. | Vollstรคndig in ABAP programmiert |
| Erklรคrung | STEUERELEMENTE โฆ TYP TABLEVIEW MIT SCREEN | Keine Kontrollstruktur im Programm |
| Display-Einstellungen | Der Benutzer kann ein persรถnliches Layout speichern. | Nicht verfรผgbar |
Da das Tabellensteuerelement das moderne Element ist, programmiert der Rest dieser Seite dieses Steuerelement.
Wie man ein Tabellensteuerelement erstellt und programmiert
Ein Tabellensteuerelement benรถtigt ein Bildschirmelement, eine Steuerstruktur im Programm und eine Schleife sowohl in PBO als auch in PAI. Die folgenden Unterabschnitte folgen dieser Reihenfolge.
Deklaration der Kontrolle
Um Table Controls in ABAP-Programmen verarbeiten zu kรถnnen, mรผssen Sie im Deklarationsteil des Programms fรผr jedes Table Control ein Control mit der folgenden Anweisung deklarieren:
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
Wo ist der Name des Table Controls auf einem Dynpro im ABAP-Programm. Das Control ermรถglicht es dem ABAP-Programm, die Attribute des Table Controls auszulesen und Einfluss auf das Control zu nehmen. ist die Bildschirmnummer, auf der die Anfangswerte der Tabelle geladen werden.
Einstellen und Ablesen der Cursorposition
Die Cursorposition fรผr ein Tabellensteuerelement kann auf folgende Arten festgelegt werden:
Bei PBO kรถnnen Sie den Cursor auf ein bestimmtes Feld einer bestimmten Zeile eines Table Controls setzen.
SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]
Mit dem optionalen Zusatz OFFSET kรถnnen Sie wie unter โCursorposition festlegenโ beschrieben den Offset des Cursors in das Feld eingeben.
Bei PAI kรถnnen Sie die aktuelle Cursorposition ablesen.
GET CURSOR FIELD <f> LINE <lin> ...
Zusรคtzlich zu den im Abschnitt โErmitteln der Cursorpositionโ angegebenen Informationen enthรคlt Informationen darรผber, auf welcher Zeile des Tabellensteuerelements sich der Cursor gerade befindet. Sie kรถnnen auch verwenden
GET CURSOR LINE <lin>.
Um die Zeile des Tabellensteuerelements zu ermitteln, kann mit SY-SUBRC geprรผft werden, ob sich der Cursor in einer Zeile eines Tabellensteuerelements befindet.
Lesen der entsprechenden internen Tabellenzeile
Um die entsprechende Zeile des zu erhalten interne Tabelle:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
Die Systemvariable stepl โ enthรคlt den aktuellen Tabellenzeilenindex in einer Schleife โฆ endloop. Loopc โ enthรคlt die Anzahl der in der Tabelle sichtbaren Zeilen
Erstellen des Steuerelements auf dem Bildschirm Painter
So erstellen Sie ein Tabellensteuerelement
- Fรผgen Sie Ihrem Bildschirm ein Tabellensteuerelement hinzu.
- Geben Sie der Tabellensteuerung einen Namen. Deklarieren Sie im ABAP-Programm eine Struktur mit demselben Namen (CONTROLS). Typ TABLEVIEW USING SCREEN )
- Um Felder zu erstellen, gehen Sie zur Funktion Dict./Program fields.
- Geben Sie den Namen der Struktur ein, deren Felder Sie benรถtigen. (Wenn Sie mรถchten, dass es aus dem Wรถrterbuch Ihres Programms ausgewรคhlt wird, klicken Sie auf die entsprechende Schaltflรคche).
- Wรคhlen Sie in der Feldliste die gewรผnschten Felder aus und klicken Sie auf โOKโ.
- Klicken Sie in den Tabellenkontrollbereich
Wenn Sie eine Auswahlspalte wรผnschen, aktivieren Sie das entsprechende Kontrollkรคstchen in den Attributen und geben Sie ihr einen Namen. Erstellen Sie das Feld im ABAP-Programm.
Codierung der PBO- und PAI-Schleifen
Im PBO sollten Sie die Erklรคrung haben
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
Im PAI sollten Sie haben.
LOOP at <itab>. ENDLOOP.
Innerhalb der Schleifen findet der Datentransfer zwischen Bildschirm und interner Tabelle statt. Verwenden Sie zum Befรผllen der internen Tabelle die Funktion DESCRIBE TABLE. LINES -lines, um die Gesamtzahl der Zeilen im Steuerelement zu speichern. Die FIELD-Anweisung kann verwendet werden, um zu steuern, wann die Datenรผbertragung stattfindet.
โ ๏ธ Warnung: Die PBO-Schleife muss das Steuerelement mit USING CONTROL benennen. Andernfalls weiร das Steuerelement nicht, wie viele Zeilen vorhanden sind, und das vertikale Scrollen funktioniert nicht mehr.
รndern von Spaltenattributen zur Laufzeit
Um die Attribute einzelner Zellen vorรผbergehend zu รคndern, รคndern Sie vorรผbergehend die SCREEN-Tabelle im PBO. Sie kรถnnen die Attribute der durch die CONTROLS-Anweisung erstellten Struktur รคndern
<cntrl>-fixed_cols etc are the attributes of the control <cntrl>-cols-index etc are the attributes of the columns. <cntrl>-cols-screen-invisible etc are the screen attributes of each column.
๐ก Tipp: Schleife รผber -cols im PBO, um eine Spalte fรผr eine bestimmte Benutzerrolle auszublenden oder zu schรผtzen, anstatt einen zweiten Bildschirm zu erstellen.

