Anfang des Inhaltsbereichs

Vorgehensweisen Iteration über Element-Inhalt  Dokument im Navigationsbaum lokalisieren

Verwendung

Aktivieren Sie diese Option in der Eigenschaften-Anzeige zum BSP-Element, wenn dieses Element wiederholt den eigenen Inhalt durchlaufen, d.h. also eine Schleife implementieren soll.

Aktivitäten

Zusätzlich zur Aktivierung dieser Option ist die Interface-Methode DO_AT_ITERATION der Elementhandler-Klasse zu redefinieren.

Diese Methode wird jeweils am Ende einer Iteration aufgerufen. Mit Hilfe des Rückgabeparameters RC steuern Sie, ob die Schleife beendet (RC=CO_ELEMENT_DONE) oder erneut durchlaufen (RC=CO_ELEMENT_CONTINUE) wird.

Beispiel

Angenommen, es soll ein wiederholter Textaufruf mit einem einfachen <do>-Element realisiert werden, bei dem die Anzahl der Iterationen über das zugehörige Attribut howOften gesetzt wird.

Beispiel:

<loops:do howOften = "10">

   Hello World !

</loops:do>

Der Wert des Attributs howOften wird dabei zu Beginn des Element-Aufrufs in der Methode DO_AT_BEGINNING verwendet, um den Schleifenzähler count zu initialisieren:

method IF_BSP_ELEMENT~DO_AT_BEGINNING .

    if howOften > 0.

       count = howOften - 1.

       rc = CO_ELEMENT_CONTINUE.

    else.

      rc = CO_ELEMENT_DONE.

endmethod.

Hinweis

In der Methode DO_AT_BEGINNING sollte bereits geprüft werden, ob der Element-Inhalt überhaupt ausgewertet werden soll. Ist dies erst gar nicht der Fall, dann wird DO_AT_ITERATION übersprungen und nachfolgend die Methode DO_AT_END aufgerufen.

Die Implementierung von DO_AT_ITERATION könnte in diesem Falle etwa so aussehen:

method IF_BSP_ELEMENT~DO_AT_ITERATION .

   if count <> 0.

      count = count - 1.

    rc = CO_ELEMENT_CONTINUE.

   else.

      rc = CO_ELEMENT_DONE.

   endif.

endmethod.

Hinweis

Beachten Sie, daß die Methode DO_AT_ITERATION nur dann aufgerufen wird, wenn die Option Iteration über Element-Inhalt als Eigenschaft des Elements explizit vergeben wurde. Siehe auch BSP-Elemente definieren.

Der Aufruf von DO_AT_ITERATION erfolgt sobald der Element-Inhalt prozessiert wurde. Die Methode DO_AT_END wird dagegen in jedem Fall und zwar nur einmal aufgerufen; in diesem Falle erfolgt der Aufruf nach Abschluß der Iteration.

Ende des Inhaltsbereichs