Hallo Thomas,
bin mir nicht sicher ob das Dir hilft. Stammt aus
www.berster-Wiki.deVariablenersetzung im Druckrahmenprogramm mit 'REPLACE_TEXTSYMBOL'
Mit dem Funktionsbaustein REPLACE_TEXTSYMBOL können bereits im (Druck-)Rahmenprogramm Variablen ersetzt werden. Zunächst muss der Textbaustein mit dem Funktionsbaustein READ_TEXT gelesen werden.
In der itab CT_TLINE stehen die Zeilen, die mit dem Funktionsbaustein READ_TEXT gelesen wurden. Alle Variablen, die in dem jeweiligen Programm bekannt sind, werden nun mit dem Funktionsbaustein REPLACE_TEXTSYMBOL ersetzt. Es ist darauf zu achten, dass die zu ersetzenden Variablen global im Rahmenprogramm definiert sind, sonst werden sie im Funktionsbaustein REPLACE_TEXTSYMBOL nicht erkannt. Wird der Funktionsbaustein REPLACE_TEXTSYMBOL also z. B. von einem anderen Funktionsbaustein aufgerufen, so sind die zu ersetzenden Variablen im Top-Include der Funktionsgruppe des Funktionsbausteins zu definieren.
Data: ct_tline TYPE tline_tab.
... (Textbaustein lesen mit READ_TEXT in ct_tline)
CALL FUNCTION 'REPLACE_TEXTSYMBOL'
EXPORTING
ENDLINE = 100
LANGUAGE = is_thead-tdspras
OPTION_DIALOG = ' '
REPLACE_PROGRAM = 'X'
REPLACE_STANDARD = 'X'
REPLACE_SYSTEM = 'X'
REPLACE_TEXT = 'X'
STARTLINE = 1
* IMPORTING
* CHANGED =
TABLES
LINES = ct_tline.
Variablenersetzung im Funktionsbaustein mit 'TEXT_SYMBOL_REPLACE'
Der Funktionsbaustein 'TEXT_SYMBOL_REPLACE' hat im gegenüber dem Funktionsbaustein 'REPLACE_TEXTSYMBOL' den Vorteil, dass man hier noch das Programm angeben kann, aus dem die Variablen zu ersetzen sind.
Wichtig ist hier auch der Funktionsbaustein 'FORMAT_TEXTLINES', der für eine korrekte Zeilenaufbereitung sorgt, sodass die ersetzten Variablen wieder auf der Zeile der Textbausteintabelle stehen, wo vorher die Variablen standen.
DATA: lt_tline TYPE tline_tab,
ls_tline TYPE tline,
lv_tabix type sy-tabix.
DATA: ls_thead TYPE thead,
lv_report type sy-repid.
* Füllen globale Strukturen. VBDKL und LIKP sind hier im Top-Include des
* Funktionsbaustein definiert, in dem das Coding sich befindet. Es ist nicht das Druckrahmenprogramm
vbdkl = is_vbdkl.
Select single *
into likp
from likp
where vbeln = is_vbdkl-vbeln.
* Füllen Header-Struktur
ls_thead-tdobject = iv_object.
ls_thead-tdname = iv_name.
ls_thead-tdid = iv_id.
ls_thead-tdspras = iv_language.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = ls_thead-tdid
language = ls_thead-tdspras
name = ls_thead-tdname
object = ls_thead-tdobject
TABLES
lines = lt_tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
check lt_tline is not initial.
DESCRIBE TABLE lt_tline lines lv_tabix.
lv_report = sy-repid.
CALL FUNCTION 'TEXT_SYMBOL_REPLACE'
EXPORTING
endline = lv_tabix
header = ls_thead
program = lv_report
TABLES
lines = lt_tline.
CALL FUNCTION 'FORMAT_TEXTLINES'
TABLES lines = lt_tline.