WRITE für Programmstruktur
Es ist leider im Standard nicht möglich, die Felder einer programminternen Struktur oder Tabelle auszugeben. Mit dem folgenden Muster-Dialog geht es! Hierfür werden die Strukturen des Programms zur Auswahl angeboten. Die Felder der ausgewählten Struktur werden dann für die Ausgabe vorbereitet.
So sieht’s aus
|
Quelltext
FUNCTION ZWRITE1_EDITOR_EXIT.
*”———————————————————————-
*”*”Lokale Schnittstelle:
*” TABLES
*” BUFFER STRUCTURE ABAPSOURCE
*” EXCEPTIONS
*” CANCELLED
*”———————————————————————-
DATA:
l_report LIKE sy-cprog,
l_answer,
t_flist LIKE rfieldlist OCCURS 0 WITH HEADER LINE,
t_comp LIKE rstrucinfo OCCURS 0 WITH HEADER LINE,
t_pop LIKE spopli OCCURS 0 WITH HEADER LINE.
*– Aktuellen Report ermitteln
GET PARAMETER ID ‘RID’ FIELD l_report.
IF sy-subrc = 0.
*– Felddefinitionen lesen
CALL FUNCTION ‘GET_GLOBAL_SYMBOLS’
EXPORTING
program = l_report
name_pattern = ‘*’
TABLES
fieldlist = t_flist.
*– Alles, was keine “Struktur” ist, rauswerfen:
LOOP AT t_flist.
IF t_flist-type <> ‘u’ OR “Struktur
t_flist-name(1) = ‘%’ OR
t_flist-name(1) = ‘<‘ OR
t_flist-name = ‘SSCRFIELDS’ OR
t_flist-name = ‘SSCRTEXTS’ OR
t_flist-name = ‘SCREEN’ OR
t_flist-name = ‘RSJOBINFO’ OR
t_flist-name = ‘SY’ OR
t_flist-name = ‘SYST’ OR
t_flist-name = ‘VARI’.
DELETE t_flist.
ELSE.
*– Zur Auswahl anbieten
t_pop-selflag = space.
t_pop-varoption = t_flist-name.
APPEND t_pop.
ENDIF.
ENDLOOP.
*– Auswahl der Struktur
CALL FUNCTION ‘POPUP_TO_DECIDE_LIST’
EXPORTING
start_col = 5
start_row = 10
textline1 = ‘Bitte Struktur auswählen’
titel = ‘WRITE zu Programmstruktur’
IMPORTING
answer = l_answer
TABLES
t_spopli = t_pop
EXCEPTIONS
OTHERS = 4.
*– Gewählten Eintrag bearbeiten:
LOOP AT t_pop WHERE selflag = ‘X’.
*– Komponentenliste der Struktur ermitteln
CALL FUNCTION ‘GET_COMPONENT_LIST’
EXPORTING
program = l_report
fieldname = t_pop-varoption
TABLES
components = t_comp.
LOOP AT t_comp.
CONCATENATE ‘WRITE~’
t_pop-varoption ‘-‘ t_comp-compname ‘.’
INTO buffer.
TRANSLATE buffer USING ‘~ ‘.
APPEND buffer.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDFUNCTION.
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024