Manipulation des Element-Inhalts
Verwendung
Aktivieren Sie diese Option in der Eigenschaften-Anzeige zum BSP-Element, wenn es erforderlich ist, daß dieses Element den eigenen Inhalt manipulieren kann.
Aktivitäten
Nach Aktivierung dieser Option steht im Interface-Attribut
M_OUT der Elementhandler-Klasse ein sogenannter BodyWriter zur Verfügung, der den Inhalt des BSP-Elements verwaltet. Über die Methoden des BodyWriters kann dann der Inhalt entsprechend manipuliert werden.Um den Element-Inhalt zu ändern, müssen Sie zusätzlich zur Aktivierung der Option Manipulation des Element-Inhalts noch die Interface-Methode
DO_AT_END der Elementhandler-Klasse überdefinieren.Auf diese Methode wird auf jeden Fall am Ende des Element-Aufrufs zugegriffen. Sie können sie speziell bei Manipulation des Inhalts dazu verwenden, um den Inhalt des BodyWriters an den BodyWriter eines umgebenden BSP-Elements explizit zu übergeben. Erfolgt in diesem Fall jedoch keine Übergabe, so wird der Element-Inhalt verworfen.
Beispiel
Im nachfolgenden Beispiel soll ein BSP-Element seinen kompletten Textinhalt in Großbuchstaben umwandeln. Hierzu wird die Methode DO_AT_END wie folgt überschrieben:
Zunächst wird der Element-Inhalt aus dem aktuellen BodyWriter
m_out in die lokale Variable content geschrieben. Dieser Variablen wird dann ein neuer Inhalt zugewiesen. Anschließend liefert der Methodenaufruf me->get_previous_out() den BodyWriter des umgebenden Elements previous_out zurück. Der neue Inhalt wird jedoch nicht automatisch auf diesen BodyWriter kopiert. Die Zuweisung des neuen Inhalts erfolgt schließlich mit der Methode print_string().
method IF_BSP_ELEMENT~DO_AT_END. data: content type string. content = m_out->get_content( ). translate content to upper case. data: previous_out type ref to IF_BSP_WRITER. previous_out = me->get_previous_out(). previous_out-> print_string( content ). rc = CO_PAGE_CONTINUE. endmethod. |