ADS Langtexte mit rekursiven INCLUDE Texten drucken

Problem

Auf einem Adobe Formular soll ein Langtext (z.B. Langtext zu einem Vorgang eines Auftrags) gedruckt werden. Dieser Langtext enthält selbst INCLUDE Textbausteine.

Wird der Test wie auf der Seite "Langtexte drucken" beschrieben ausgegeben, werden die INCLUDE Bausteine nicht rekursiv aufgelöst und somit nicht gedruckt.

Lösung

Das Problem lässt sich lösen, wenn der Textknoten von INCLUDE Text auf dynamischer Text umgestellt wird.

Voraussetzungen

Der gesamte Text muss an das Formular als Tabelle vom Typ TLINE (TLINE_T) übergeben werden. Dazu zunächst im Programm den Text mit dem Funktionsbaustein READ_TEXT auslesen und anschließend die Includes mit dem Baustein TEXT_INCLUDE_REPLACE auflösen

    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id                      = 'AVOT'
        language                = gv_spras
        name                    = ls_ltxa1-tdname
        object                  = 'AUFK'
      TABLES
        lines                   = lt_ltxa1
      EXCEPTIONS
        id                      = 1
        language                = 2
        name                    = 3
        not_found               = 4
        object                  = 5
        reference_check         = 6
        wrong_access_to_archive = 7
        OTHERS                  = 8.

      CALL FUNCTION 'TEXT_INCLUDE_REPLACE'
        EXPORTING
          header = ls_ltxa1
        TABLES

          lines  = lt_ltxa1.

Die Tabelle LT_LTXA1 wird nun an das Formular übergeben.

Formular

Im Formular wird nun ein neuer Textknoten (TEXT_TABLE) wie folgt erstellt.

Anlegen eines Textknotens zur Ausgabe von Texten mit rekursiven INCLUDE Texten
Anlegen eines Textknotens zur Ausgabe von Texten mit rekursiven INCLUDE Texten

Abschließend wird die Datenbindung des Textfeldes im Formular auf den neuen Textknoten angepasst.