Ansicht
Dokumentation

DYNPLOOP_OBSOLETE - LOOP OBSOLETE

DYNPLOOP_OBSOLETE - LOOP OBSOLETE

Fill RESBD Structure from EBP Component Structure   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- LOOP, Steploop

LOOP $[AT itab CURSOR top_line $[INTO wa$] $[FROM n1$] $[TO n2$]$].
  ...
ENDLOOP.

Varianten:

1. LOOP.

2. LOOP AT itab CURSOR top_line $[INTO wa$] $[FROM n1$] $[TO n2$].

Wirkung

Definition einer Schleife in der Dynpro-Ablauflogik die nicht mit einem Table Control verknüpft ist.. Die Schleife bearbeitet sequenziell die dargestellten Gruppen des zugehörigen Steploops, indem für jede Gruppe ein Schleifendurchgang ausgeführt wird. Der Anweisungsblock zwischen LOOP und ENDLOOP kann die Schlüsselwörter FIELD, MODULE und CHAIN (sowie die obsoleten SELECT und VALUES) der Ablauflogik enthalten. Schleifen sind nicht schachtelbar. Schleifen können entweder ohne oder mit Bezug zu einer internen Tabelle ausgeführt werden.

Wenn Steploops in einem Dynpro definiert sind, muss für jeden Steploop sowohl im PBO-Verarbeitungsblock als auch im PAI-Verarbeitungsblock eine Schleife definiert werden. Die Zuordnung von Schleifen zu Steploops ergibt sich aus der Anordnung der Steploops auf dem Bildschirmbild, wobei primär die Zeilen und sekundär die Spalten gewertet werden.

Systemfelder

Innerhalb eines Schleifendurchgangs enthält das Systemfeld sy-stepl die Zeilennummer der angezeigten Gruppe, gezählt ab der obersten sichtbaren Zeile. Das Systemfeld sy-loopc enthält die Anzahl der auf dem Bildschirmbild dargestellten Zeilen einer Gruppe.

Hinweis

Dieser Verwendung der Anweisung LOOP der Dynpro-Ablauflogik ist obsolet. Sie soll nur noch mit dem Zusatz WITH CONTROL verwendet werden, wodurch sie mit einem Table Control verknüpft wird.

Variante 1

LOOP.
  ...

ENDLOOP.

Wirkung

Wenn der Zusatz AT itab nicht angegeben ist, werden während eines Schleifendurchgangs die Inhalte der Dynpro-Felder der aktuellen Gruppe des Steploops von (beim Ereignis PBO) bzw. an (beim Ereignis PAI) gleichnamige Datenobjekte des ABAP-Programms transportiert.

Hinweis

Für Steploop-Felder, die mit Bezug auf das ABAP Dictionary definiert sind, müssen die gleichnamigen Datenobjekte des ABAP-Programms genau wie bei normalen Dynpro-Feldern mit TABLES deklariert sein. Andernfalls findet kein Datentransport statt.

Beispiel

Im Layout des Bildschirmbildes eines Dynpros sind zwei Dynpro-Felder wa-col1 und wa-col2 zu einer Gruppe eines Steploop zusammengefasst und die Dynpro-Ablauflogik enthält folgende Anweisungen:

PROCESS BEFORE OUTPUT.
  ...
  LOOP.
    MODULE tab_out.
  ENDLOOP.
  ...

PROCESS AFTER INPUT.
  ...
  LOOP.
    MODULE tab_in.
  ENDLOOP.
  ...

Es werden Schleifen über den Steploop ausgeführt und in den Schleifen zu PBO und PAI jeweils die Dialogmodule tab_out und tab_in aufgerufen. Der folgende Programmabschnitt zeigt, wie das zugehörige ABAP-Programm die Steploop-Felder im PBO-Modul tab_out aus einer internen Tabelle itab füllt und im PAI-Modul tab_in die interne Tabelle gemäß der Benutzereingaben in den Steploop modifiziert.



Variante 2

LOOP AT itab CURSOR top_line $[INTO wa$] $[FROM n1$] $[TO n2$].
  ...

ENDLOOP.

Wirkung

Wenn der Zusatz AT itab angegeben ist, wird während der Schleifenverarbeitung des Steploops parallel eine interne Tabelle itab des zugehörigen ABAP-Programms sequenziell verarbeitet. Dabei wird für jede Gruppe des Steploops eine Zeile der internen Tabelle bearbeitet. Die interne Tabelle itab muss eine Indextabelle sein.

Zudem wird für die Anzeige des zugehörigen Steploops eine Blätterleiste generiert, die es erlaubt, zwischen den Zeilen der internen Tabelle itab zu blättern und die entsprechenden Zeilen im Steploop darzustellen. Jedes Blättern löst das Ereignis PAI aus. Damit das Blättern funktioniert, muss der Zusatz AT itab sowohl im PBO- als auch im PAI-Verarbeitungsblock angegeben werden.

Die Zusätze CURSOR, INTO, TO und FROM können nur im PBO-, nicht aber im PAI-Verarbeitungsblock angegeben werden.

  • Mit dem Zusatz CURSOR wird gesteuert, bei welcher Zeile der internen Tabelle deren Verarbeitung zum Zeitpunkt PBO beginnt, d.h. der Inhalt welcher Zeile als Erstes im Steploop angezeigt wird. Für top_line muss ein globales Datenobjekt des ABAP-Programms vom Typ i angegeben werden. Wenn der Inhalt von top_line kleiner als 1 oder der Wert von n1 ist, wird er implizit auf 1 bzw. auf den Wert von n1 gesetzt. Wenn er größer als die Anzahl der Zeilen in der internen Tabelle oder als der Wert von n2 ist, wird der Steploop nicht angezeigt. Bei jedem PAI-Ereignis wird top_line auf den Index der ersten angezeigten Tabellenzeile gesetzt.
  • Mit dem Zusatz INTO wird ein Arbeitsbereich wa angegeben, dem zum Zeitpunkt PBO für jeden Schleifendurchgang die aktuelle Zeile der internen Tabelle zugewiesen wird. Ist der Zusatz wa nicht angegeben, muss eine interne Tabelle mit Kopfzeile verwendet werden, die dann implizit statt wa verwendet wird. Der Inhalt von wa bzw. der Kopfzeile wird nach der Zuweisung an die gleichnamigen Felder in der aktuellen Gruppe des Steploops transportiert. Der Arbeitsbereich wa muss ein zum Zeilentyp der internen Tabelle passendes globales Datenobjekt des ABAP-Programms sein. Zum Zeitpunkt PAI wird dagegen nur der Arbeitsbereich wa bzw. die Kopfzeile der internen Tabelle durch den Inhalt der Steploop-Felder versorgt. Der Inhalt der internen Tabelle wird nicht automatisch modifiziert.
  • Mit den Zusätzen FROM und TO können die verarbeitbaren Zeilen der internen Tabelle eingeschränkt werden. Die sequenzielle Bearbeitung der Tabelle beginnt mit der Zeile, deren Index in n1 enthalten ist, und endet mit der Zeile, deren Index in n2 enthalten ist. Falls die Zusätze nicht angegeben sind, beginnt die Verarbeitung bei der ersten bzw. endet bei der letzten Zeile. Für n1 und n2 müssen globale Datenobjekte des ABAP-Programms vom Typ i angegeben werden. Der Wert von n2 muss größer als der von n1 sein und innerhalb der Anzahl der Zeilen der internen Tabelle liegen. Wenn der Wert von n1 kleiner oder gleich 0 ist, wird er implizit auf 1 gesetzt.

Beispiel

Im Layout des Bildschirmbildes eines Dynpros sind zwei Dynpro-Felder wa-col1 und wa-col2 zu einer Gruppe eines Steploop zusammengefasst und die Dynpro-Ablauflogik enthält folgende Anweisungen:

PROCESS BEFORE OUTPUT.
  ...
  MODULE tab_init.
  LOOP AT itab CURSOR top_line INTO wa.
  ENDLOOP.
  ...

PROCESS AFTER INPUT.
  ...
  MODULE get_first_line.
  LOOP AT itab.
    MODULE tab_in.
  ENDLOOP.
  ...

Es werden parallele Schleifen über den Steploop und die interne Tabelle itab ausgeführt. Zu PBO wird in der Schleife kein Dialogmodul gerufen. Stattdessen wird vorher das Modul tab_init zum Vorbereiten der internen Tabelle itab aufgerufen. Zu PAI wird in der Schleife das Modul tab_in zum Modifizieren der internen Tabelle gemäß den Benutzereingaben in den Steploop aufgerufen. Vorher wird das Modul get_first_line aufgerufen, um den Index der ersten angezeigten Tabellenzeile in der Hilfsvariablen line zu speichern. Dies ist notwendig, da der Inhalt von top_line geändert wird, wenn der Benutzer blättert. Der folgende Programmabschnitt zeigt die Dialogmodule des zugehörigen ABAP-Programms:






rdisp/max_wprun_time - Maximum work process run time   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10153 Date: 20240523 Time: 175822     sap01-206 ( 186 ms )