SAP ABAP Table Control mit Beispielen

Table Controls und Steploops sind Objekte zur Bildschirmtabellendarstellung, die Sie im Screen Painter zu einem Bild hinzufügen.

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

Ein Merkmal von Steploops ist, dass sich ihre Tabellenzeilen über mehr als eine Zeile auf dem Bildschirm erstrecken können. Eine Zeile eines Table Controls hingegen muss immer in einer einzelnen Zeile enthalten sein (wobei ein Scrollen möglich ist).

Im Allgemeinen werden viele der vom Table Control bereitgestellten Funktionen lokal vom SAPgui-Frontend Ihres Systems verwaltet, sodass Sie sie nicht selbst programmieren müssen. Die einzige nennenswerte Ausnahme hiervon ist das vertikale Scrollen.

Beispiel (Transaktion TZ60)

SAP-ABAP-Tabellensteuerung

Syntax

Um Table Controls in ABAP-Programmen zu handhaben, müssen Sie im Deklarationsteil des Programms für jedes Table Control ein Control mit folgendem Befehl deklarieren:wing Aussage:

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.

Die Cursorposition für ein Tabellensteuerelement kann wie folgt festgelegt werdenwing Wege:

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 bestimmen. Mit SY-SUBRC können Sie überprüfen, ob sich der Cursor in einer Zeile eines Tabellensteuerelements befindet.

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

So erstellen Sie ein Tabellensteuerelement

1.Fügen Sie Ihrem Bildschirm ein Tabellensteuerelement hinzu

2.Geben Sie dem Tabellensteuerelement einen Namen. Deklarieren Sie im ABAP-Programm eine Struktur mit demselben ( CONTROLS Geben Sie TABLEVIEW USING SCREEN ein )

3.Um Felder zu erstellen, gehen Sie zur Funktion Dikt./Programmfelder.

  • 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 Häkchen box in den Attributen ein und geben Sie ihm einen Namen. Erstellen Sie das Feld im ABAP-Programm.

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 die Datenübertragung zwischen dem Bildschirm und der internen Tabelle statt. Wenn Sie die interne Tabelle füllen, verwenden Sie DESCRIBE TABLE LINIEN -lines, um die Gesamtzahl der Zeilen im Steuerelement zu speichern. Die FIELD-Anweisung kann verwendet werden, um zu steuern, wann die Datenübertragung stattfindet

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.