ABAPAT_ITAB - AT ITAB

RFUMSV00 - Advance Return for Tax on Sales/Purchases   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

AT - itab

Kurzreferenz



Syntax

LOOP AT itab result ...
  [AT FIRST.
     ...
   ENDAT.]
    [AT NEW comp1.
       ...
     ENDAT.
      [AT NEW comp2.
         ...
       ENDAT.
         [...]]]
           [ ... ]
       [[[...]
       AT END OFcomp2.
         ...
       ENDAT.]
     AT END OF comp1.
       ...
     ENDAT.]
  [AT LAST.
     ...
  ENDAT.]
ENDLOOP.

Zusätze:

1. ...  FIRST

2. ... {NEW}|{END OF} compi

3. ...  LAST

Wirkung

Der Anweisungsblock einer LOOP-Schleife kann Kontrollstrukturen für eineGruppenstufenverarbeitungenthalten. Die entsprechende Kontrollanweisung ist AT. Die Anweisungen AT und ENDAT definieren Anweisungsblöcke, die beiGruppenwechseln,d.h. bei Änderungen der Gruppenstruktur, ausgeführt werden. Die Zusätze der AnweisungenAT legen fest, bei welchem Gruppenwechsel ihre Anweisungsblöcke ausgeführt werden.Innerhalb dieser Anweisungsblöcke kann die Anweisung SUMangegeben werden, um numerische Komponenten einer Gruppenstufe zu summieren. Für das Ausgabeverhaltenresult gilt das Gleiche wie bei LOOP AT.

Voraussetzung für die Gruppenstufenverarbeitung ist, dass die Verarbeitungsreihenfolge, in derdie LOOP-Schleife die Zeilen der internen Tabelle einliest, genau nach der Reihenfolge der Komponentenihres Zeilentyps sortiert ist, d.h. zuerst nach der ersten Komponente, dann nach der zweiten Komponenteund so weiter. Aus der Zeilenstruktur und der entsprechenden Sortierung ergibt sich eine Gruppenstrukturdes Inhalts der internen Tabelle, deren Stufen mit AT-Anweisungen ausgewertet werden können.Die AT-ENDAT-Kontrollstrukturen müssen entsprechend der Gruppenstruktur hintereinander angeordnet sein.

Die Anweisungsblöcke innerhalb der AT-ENDAT-Kontrollstrukturen werden ausgeführt,wenn bei der aktuellen Tabellenzeile ein entsprechender Gruppenwechsel stattfindet. Anweisungen derLOOP-ENDLOOP-Kontrollstruktur, die nicht innerhalb einer AT-ENDAT-Kontrollstruktur aufgeführt sind, werden bei jedem Schleifendurchgang ausgeführt.

Damit die Gruppenstufenverarbeitung ordnungsgemäß durchgeführt wird, sind folgende Regeln zu beachten:

  • Ein bei LOOP in condangegebener Tabellenschlüssel muss so gewählt werden, dass er die notwendige Sortierreihenfolge der eingelesenen Zeilen ergibt.

  • Eine bei LOOP in condangegebene einschränkende Bedingung muss einen zusammenhängenden Zeilenblock der internen Tabelle selektieren, ansonsten ist das Verhalten der Gruppenstufenverarbeitung undefiniert.

  • Die interne Tabelle darf innerhalb der LOOP-Schleife nicht modifiziert werden.

  • Ein in der Anweisung LOOP hinter dem Zusatz INTO angegebener Arbeitsbereich wa musskompatibel zum Zeilentyp der Tabelle sein.

  • Ein in der Anweisung LOOP hinter dem Zusatz ASSIGNING angegebenes Feldsymbol <fs> muss mit dem Zeilentyp der Tabelle typisiert sein.

  • Der Inhalt eines in der Anweisung LOOP hinter dem Zusatz INTO angegebenen Arbeitsbereichs wa darf nicht modifiziert werden.

Wenn in der Anweisung LOOPder Zusatz INTO verwendet wird, um den Inhalt der aktuellen Zeile einem Arbeitsbereich wazuzuweisen, wird dessen Inhalt bei Eintritt in die AT-ENDAT-Kontrollstruktur wie folgt geändert:

  • Die Komponenten des aktuellen Gruppenschlüssels bleiben unverändert.

  • Alle Komponenten mit zeichenartigem flachen Datentyp rechts vom aktuellen Gruppenschlüssel werden an jeder Stelle auf das Zeichen "*" gesetzt.

  • Alle anderen Komponenten rechts vom aktuellen Gruppenschlüssel werden auf ihrenInitialwert gesetzt.

Bei Verlassen der AT-ENDAT-Kontrollstruktur wird dem gesamten Arbeitsbereich wa der Inhalt der aktuellen Tabellenzeile zugewiesen.

Beispiel

Siehe Gruppenstufenverarbeitung.

Zusatz 1

... FIRST

Wirkung

Die Gruppenstufe wird durch die erste Zeile der internen Tabelle definiert. Der Gruppenwechsel findet beim Auslesen dieser Zeile statt.

Hinweis

In der Gruppenstufe AT FIRST enthält der aktuelle Gruppenschlüssel keine Komponentenund es werden alle zeichenartigen Komponenten des Arbeitsbereichs wa mit "*" gefüllt und alle übrigen Komponenten auf ihren Initialwert gesetzt.

Zusatz 2

... {NEW}|{END OF} compi

Wirkung

Gruppenstufen werden durch Anfang bzw. Ende einer Gruppe von Zeilen mit dem gleichen Inhalt in der Komponentencompi (mit i = 1, 2, ...) und in den Komponenten links von compidefiniert. Die Gruppenwechsel finden statt, wenn sich der Inhalt der Komponente compi oder einer Komponente links von compi ändert.

Die Komponenten compi können wie im AbschnittAngabe von Komponenten beschrieben angegeben werden, mit der Einschränkung, dass ein Zugriff auf Datenobjekte über Referenzen hier nicht möglich ist. Nicht möglich sind also

  • die Angabe von Datenobjekte über Datenreferenzen
  • die Angabe von Attributen von Objekten über Objektreferenzen

Ansonsten können die angegebenen Komponenten einen beliebigen Datentyp haben. Für die Auswertung gelten die entsprechendenVergleichsregeln.

Hinweis

Wenn in der Anweisung LOOP der Zusatz INTO oder ASSIGNING verwendet wird, kannaußerhalb von Klassen hinter AT {NEW}|{END OF} ein Feldsymbol angegeben werden, dem dieentsprechende Komponente des Arbeitsbereichs wa bzw. des Feldsymbols <fs> zugewiesen ist. Diese Form der dynamischen Komponentenangabe ist obsolet und wurde durch die Angabe in der Form (name) ersetzt.

Zusatz 3

... LAST

Wirkung

Die Gruppenstufe wird durch die letzte Zeile der internen Tabelle definiert. Der Gruppenwechsel findet beim Auslesen dieser Zeile statt.

Hinweis

In der Gruppenstufe AT LAST enthält der aktuelle Gruppenschlüssel keine Komponentenund es werden alle zeichenartigen Komponenten des Arbeitsbereichs wa mit "*" gefüllt und alle übrigen Komponenten auf ihren Initialwert gesetzt.

Ausnahmen

Unbehandelbare Ausnahmen

  • Ursache: Unzulässiger Teilfeldzugriff bei dynamischer Spezifikation des Gruppenwechselkriteriums.
    Laufzeitfehler: AT_BAD_PARTIAL_FIELD_ACCESS
  • Ursache: Bei dynamischer Spezifikation des Gruppenwechselkriteriums via Feldsymbol zeigt das Feldsymbol nicht in den LOOP-Ausgabebereich.
    Laufzeitfehler: AT_ITAB_FIELD_INVALID
  • Ursache: Bei dynamischer Spezifikation des Gruppenwechselkriteriumsvia (name) enthält das Feld name keinen gültigen Teilfeldbezeichner.
    Laufzeitfehler: ITAB_ILLEGAL_COMPONENT
  • Ursache: Überlauf bei Summenbildung mit SUM.
    Laufzeitfehler: SUM_OVERFLOW







CL_GUI_FRONTEND_SERVICES - Frontend Services   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 11659 Date: 20120526 Time: 231914     triton ( 349 ms )