Resize Home Kontakt Skip down

SAP - ABAP: Tabstrip programmieren


Was ist ein Tabstrip?

vergrößertes Bild vergrößertes Bild

Ein Tabstrip gleicht einem Karteikasten, dessen Karten beschriftete Reiter tragen und verschiedene Informationen beinhalten. Durch Klick auf einen Reiter tritt dieser zusammen mit den Informationen in den Vordergrund.

Beides muß in der Ablauflogik (8, 9, 10) programmiert werden. Der Karteikasten (Tabstrip, 1, 2), seine Reiter (Drucktasten, 3, 5), der Bereich für die Informationen (Subscreen-Bereich, 4) und die Informationen selbst (Subscreen-Dynpros, 7) werden mit dem Screen-Painter gestaltet.

vergrößertes Bild

Skip down Skip up Zum Seitenanfang

1
Variablen im TOP-Include definieren
(ABAP-Editor)

Im TOP-Include wird eine Variable für den Tabstrip (Karteikasten) definiert.

Vorschau Ablauflogik: Diese Anweisung erzeugt eine Struktur, von der die Komponente ACTIVETAB benötigt wird. Sie bestimmt den Reiter des Karteikastens, der im Vordergrund steht.

Eine weitere Variable wird für Nummern von Benutzerdialogen (Dynpros) definiert. Ihr Typ entspricht dem Systemfeld sy-dynnr, der Nummer des gerade aktuellen Dynpros.

Vorschau Ablauflogik: Die Dynpronummern werden später in der Ablauflogik festgelegt und in einem definierten Bereich auf der Karteikarte (Subscreen-Bereich) angezeigt.

Skip down Skip up Zum Seitenanfang

2
Einen Karteikasten in einen Benutzerdialog einfügen
(Screen-Painter)

Im Layout des Screen-Painters wird nach Klick auf den Tabstrip-Button ein Karteikasten (Tabstrip) auf das Dynpro gebracht. Er wird mit dem Namen der Variable versehen, die im TOP-Include festgelegt wurde.

oder

vergrößertes Bild

Skip down Skip up Zum Seitenanfang

3
Die Reiter des Karteikastens gestalten
(Screen-Painter)

Die Reiter des Karteikastens bestehen aus Drucktasten. Weitere Drucktasten als Reiter können unbegrenzt eingefügt werden.

Vorschau Ablauflogik:

Mit dem Befehl <Tabstrip>-ACTIVETAB stellt man einen Reiter direkt oder über eine Variable in den Vordergrund.

Weitere Befehle können in Abhängigkeit vom Reiter stehen, z.B. mit der CASE-Anweisung.

Skip down Skip up Zum Seitenanfang

4
Auf die Karteikarten einen Anzeigebereich legen
(Screen-Painter)

In den Karteikasten wird entweder ein Anzeigebereich (Subscreen-Bereich) für alle Karteikarten (Alternative A1) oder für jede Karteikarte einzeln (Alternative A2) gelegt. In diesen Anzeigebereich werden weitere Benutzerdialoge (Dynpros) eingebettet, deren Typ als Subscreen definiert ist (Subscreen-Dynpros). Die Informationen erscheinen also nur deswegen auf einer Karteikarte, weil dort ein Subscreen-Bereich angelegt ist.

Jeder Subscreen-Bereich wird mit einem Namen versehen.

oder

vergrößertes Bild

Vorschau Ablauflogik:

Mit dem Befehl CALL SUBSCREEN <subscreen-name> wird ein Subscreen-Dynpro in den Subscreen-Bereich gelegt.

Skip down Skip up Zum Seitenanfang

5
Die Drucktasten des Karteikastens konfigurieren
(Screen-Painter)

Allen Drucktasten des Karteikastens wird ein Anzeigebereich (Subscreen-Bereich) zugewiesen.

vergrößertes Bild vergrößertes Bild

A1: Allen Drucktasten wird ein und derselbe Subscreen-Bereich (hier ,SUBI') zugewiesen. Wenn eine Drucktaste betätigt wird, wird der Inhalt dieses Subscreen-Bereichs in der Ablauflogik (PAI und PBO) immer wieder neu bestimmt. Die Drucktasten werden deshalb mit verschiedenen Funktionscodes (hier ,VERBR', ,KOST') belegt, die in sy-ucomm und im OK-Feld abgelegt werden. Der Funktionstyp bleibt leer.

A2: Alle Subscreen-Bereiche werden beim ersten Aufruf des Dynpros mit je einem Subscreen-Dynpro gefüllt. Die Betätigung der Drucktasten wechselt zwar die Ansicht, ein PBO oder PAI wird jedoch nicht ausgelöst. Der Funktionstyp wird dazu auf P gesetzt.

Skip down Skip up Zum Seitenanfang

6
Folgedynpro festlegen
(Screen-Painter)

Ein Dynpro mit einem Karteikasten weist immer auf sich selbst.

A1: Eine Benutzeraktion wie z.B. Klick auf einen Reiter, die den PAI auslöst, führt also wieder in den eigenen PBO.

Die Benutzeraktion wird im Systemfeld sy-ucomm und im OK-Feld des Dynpros festgehalten.

Skip down Skip up Zum Seitenanfang

7
Benutzerdialoge für den Anzeigebereich gestalten
(Screen-Painter)

Es werden für jede Karteikarte ein Benutzerdialog (Dynpro) in üblicher Weise gestaltet.

Im Unterschied zum normalen Dynpro wird der Dynprotyp als Subscreen definiert.

Das Folgedynpro eines Subscreen-Dynpro ist immer 0.

Skip down Skip up Zum Seitenanfang

8
Ablauflogik: Zur betätigten Drucktaste einen Reiter festlegen
(ABAP-Editor)

A1: Wenn eine Drucktaste des Karteikastens betätigt wurde, wird ihr Funktionscode ...

... in die Systemvariable sy-ucomm und in das OK-Feld des Dynpros geschrieben und der PAI ausgelöst. In einem PAI-Modul kann damit zunächst der entsprechende Reiter im Vordergrund dargestellt werden, indem der Funktionscode einer betätigten Drucktaste in die Struktur <Tabstrip>-ACTIVETAB gelegt wird.

Skip down Skip up Zum Seitenanfang

9
Ablauflogik: Zum festgelegten Reiter einen Benutzerdialog festlegen
(ABAP-Editor)

Der erste Reiter des Karteikastens ist sichtbar, wenn in der Struktur <Tabstrip>-ACTIVETAB der Funktionscode der ersten Drucktaste oder ein nicht vorhandener Funktionscode oder gar kein Funktionscode steht.

Ist in der Struktur <Tabstrip>-ACTIVETAB der Funktionscode einer Karteikasten-Drucktaste abgelegt, wird diese im Vordergrund angezeigt.

A1: Beim Klicken auf einen Reiter wird in einem PAI-Modul die Struktur <Tabstrip>-ACTIVETAB mit einem Funktionscode belegt (siehe 1.1.8). Von ihr kann also abhängig gemacht werden, welches Subscreen-Dynpro aufgerufen wird.

Dieses PBO-Modul wertet die Reiter des Karteikastens aus, um ein gewünschtes Subscreen-Dynpro in einer Variablen zu bestimmen. Es setzt hier voraus, daß zuvor in einem PAI-Modul der Reiter des Karteikastens entsprechend der Benutzeraktion richtig bestimmt wurde. (Genausogut könnte die Benutzeraktion mit sy-ucomm oder dem in einer Variable gesicherten OK-Feld ausgewertet werden. [CASE soko. WHEN 'VERBR'. kaka-activetab = soko. dyni ='210'. ...] Dann muß hier statt im PAI noch der Reiter des Karteikastens bestimmt werden.) Der Umweg über eine Variable muß gewählt werden, weil der Aufruf eines Subscreen-Dynpros im PBO des Dynpros erfolgen muß und nicht in einem PBO-Modul erfolgen kann.

Erster Aufruf: Für den ersten Aufruf des Dynpros, wenn KAKA-ACTIVETAB und DYNI noch initial oder unzulässig belegt sind, muß eine Regelung vorgesehen werden, beispielsweise der erste Reiter mit dem ersten Subscreen-Dynpro.

Skip down Skip up Zum Seitenanfang

10
Ablauflogik: In den Subscreen-Bereich ein Subscreen-Dynpro legen
(Screen-Painter)

Der Befehl zum Füllen eines Subscreen-Bereichs mit einem Subscreen-Dynpro muß im PBO stehen, nicht in einem PBO-Modul.

A2: Hat jede Karteikarte einen eigenen Subscreen-Bereich, wird jeder mit einem konkreten Subscreen-Dynpro auf diese Weise gefüllt.

A1: Gibt es nur einen Subscreen-Bereich für alle Karteikarten, wird das jeweils passende Subscreen-Dynpro zum angeklickten Reiter im PBO-Modul ermittelt und in einer Variablen festgehalten. In diesem Fall würde die Angabe eines konkreten Dynpros dazu führen, daß unabhängig vom Reiter der Karteikarte immer dasselbe Subscreen-Dynpro 210 in den Subscreen-Bereich gelegt wird.

A1: Stattdessen wird für den einen Subscreen-Bereich die Variable des ermittelten Subscreen-Dynpro angegeben.

q.e.d.

Skip down Skip up Zum Seitenanfang

Glossar

ABAP-Editor: Text-Editor für die Programmiersprache ABAP.
Ablauflogik: Programmcode, welcher die Anzeige eines Benutzerdialoges bestimmt oder eine Benutzeraktion auswertet.
Dynpro: Dynamisches Programm. Benutzerdialog mit vorbereitendem oder auswertendem Programmcode.
PBO: Process before output. Programmcode, welcher die Anzeige eines Benutzerdialogs bestimmt.
PAI: Process after input: Programmcode, welcher eine Benutzeraktion auswertet.
PAI-Module: Gekapselter Programmcode, welcher nach einer Benutzeraktion aufgerufen werden kann.
Screen-Painter: Grafisches Werkzeug zum Gestalten von Benutzerdialogen.
Subscreen-Bereich: Bereich innerhalb eines Benutzerdialogs für einen separaten Benutzerdialog.
Subscreen-Dynpro: Benutzerdialog, welcher innerhalb eines anderen angezeigt wird.
Systemfeld: Variablen, die das System bereitstellt.
Tabstrip: Verschiedene Dynpros in der Art eines Karteikastens.
TOP-Include: Hauptprogramm.
Skip up Zum Seitenanfang
(gf)-Webdesign Düsseldorf © Georg Frevel 2002 info@gf-webdesign.de Mail