Show TOC

Dokumentation zur VorgehensweiseIteration über Element-Inhalt Dieses Dokument in der Navigationsstruktur finden

 

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

Vorgehensweise

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 Sie möchten einen wiederholten Text-Aufruf mit einem einfachen <do>-Element. Die Anzahl der Iterationen wird durch das entsprechende Attribut howOften (wieOft) festgelegt.

Beispiel:

Syntax Syntax

  1. <loops:do howOften = "10">
       Hello World !
    </loops:do>
Ende des Codes

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:

Syntax Syntax

  1. method IF_BSP_ELEMENT~DO_AT_BEGINNING .
      if howOften > 0.
        count = howOften - 1.
        rc = CO_ELEMENT_CONTINUE.
      else.
        rc = CO_ELEMENT_DONE.
    endmethod.
Ende des Codes

Hinweis 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.

Ende des Hinweises.

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

Syntax Syntax

  1. method IF_BSP_ELEMENT~DO_AT_ITERATION .
      if count <> 0.
        count = count - 1.
        rc = CO_ELEMENT_CONTINUE.
      else.
        rc = CO_ELEMENT_DONE.
      endif.
    endmethod.
Ende des Codes

Hinweis Hinweis

Beachten Sie, dass die Methode DO_AT_ITERATION nur dann aufgerufen wird, wenn die Option Iteration Through Element Content (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 Abschluss der Iteration.

Ende des Hinweises.