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.

  • ๏ธ Kerndefinition: Ein Tabellensteuerelement ist eine verbesserte Schrittschleife, die Tabellendaten mit dem Erscheinungsbild eines Rasters in Desktop-Anwendungen anzeigt.
  • ๐Ÿงฐ Eingebaute Funktionen: Scrollen, Spaltenbreitenรคnderung, Spaltenneuanordnung, Zeilenauswahl und gespeicherte Anzeigeeinstellungen werden von der SAPGUI-Frontend.
  • ๐Ÿ“œ Einlinienregel: Eine Schrittschleifenzeile kann sich รผber mehrere Bildschirmzeilen erstrecken, wรคhrend eine Tabellensteuerungszeile immer in eine Zeile passen muss.
  • ๏ธ Erklรคrung: BEDIENELEMENTE TABLEVIEW MIT SCREEN Verknรผpft das Bildschirmelement mit dem ABAP-Programm.
  • ๐ŸŽฏ Cursorbehandlung: SET CURSOR positioniert den Cursor an der Position PBO, und GET CURSOR liest das Feld und die Zeile an der Position PAI.
  • ๐Ÿ” Datentransfer: LOOP AT โ€ฆ USING CONTROL lรคuft bei PBO und ein einfacher LOOP AT lรคuft bei PAI, und Daten werden innerhalb dieser Schleifen zwischen Bildschirm und interner Tabelle รผbertragen.
  • ???? Dynamische Attribute: Die SCREEN-Tabelle und die -cols structure รคndert die Spaltensichtbarkeit und Formatierung zur Laufzeit.

SAP ABAP-Tabellensteuerung

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)

SAP ABAP-Tabellensteuerung

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

  1. Fรผgen Sie Ihrem Bildschirm ein Tabellensteuerelement hinzu.
  2. Geben Sie der Tabellensteuerung einen Namen. Deklarieren Sie im ABAP-Programm eine Struktur mit demselben Namen (CONTROLS). Typ TABLEVIEW USING SCREEN )
  3. 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.

Hรคufig gestellte Fragen

Das Frontend รผbernimmt das horizontale Scrollen, das vertikale Scrollen ist jedoch in PAI implementiert. Prรผfen Sie SY-UCOMM auf die Scrollfunktionscodes und verschieben Sie das Feld โ€žtop_lineโ€œ der Kontrollstruktur, bevor der nรคchste PBO ausgefรผhrt wird.

An ALV-Gitter Es bietet Sortier-, Filter-, Summen- und Exportfunktionen ohne zusรคtzlichen Code und eignet sich daher fรผr die Anzeige von Listen. Ein Tabellensteuerelement ist vorzuziehen, wenn die Anzeige eine benutzerdefinierte Eingabelogik und die vollstรคndige Kontrolle รผber jede Zelle erfordert.

SY-STEPL speichert den Index der aktuell in der Bildschirmschleife verarbeiteten Zeile, und SY-LOOPC speichert die Anzahl der auf dem Bildschirm sichtbaren Zeilen. Beide werden nur innerhalb der Schleife LOOP โ€ฆ ENDLOOP des Steuerelements belegt.

Ja. KI-Assistenten in ABAP-Entwicklungswerkzeugen entwerfen die CONTROLS-Deklaration, beide Bildschirmschleifen und die Scrolllogik anhand einer Beschreibung der internen Tabelle. Die generierte Ablauflogik muss jedoch noch im Bildschirm getestet werden. Painter.

KI-Analysewerkzeuge lesen die Ablauflogik eines Dynpros, listen die Felder und Funktionscodes auf und schlagen ein รคquivalentes Fiori- oder ALV-basiertes Design vor. Dieser Vorschlag verkรผrzt die Analysephase eines Modernisierungsprojekts.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: