Code: Alles auswählen.
DATA: my_var TYPE string.
Code: Alles auswählen.
TYPES: BEGIN Of struc,
my_var TYPE string,
END OF struc.
DATA: structure TYPE struc.
DATA(components) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_data( p_data = structure ) )->components.
WRITE: / components[ 1 ]-name.
"Ausgabe : "MY_VAR"
Code: Alles auswählen.
REPORT ztestvar.
PARAMETERS p_repid TYPE syrepid DEFAULT 'ZTESTVAR'.
START-OF-SELECTION.
DATA without_tree TYPE abap_bool.
DATA compo TYPE STANDARD TABLE OF scompo.
DATA inc TYPE STANDARD TABLE OF d010inc.
CALL FUNCTION 'RS_PROGRAM_INDEX'
EXPORTING
pg_name = p_repid
without_tree = 'X'
TABLES
compo = compo
inc = inc
EXCEPTIONS
syntax_error = 1
OTHERS = 2.
IF sy-subrc = 0.
cl_demo_output=>display_data( compo ).
ENDIF.
Konkretes Beispiel: Report mit SELECTION-SCREEN.PeterPaletti hat geschrieben: ↑13.11.2023 16:14Irgendwie verstehe ich noch nicht so recht, was du möchtest. Wenn du den Feldnamen herausfinden möchtest, muss du doch das Feld irgendwie identifizieren und wie identifizierst du das Feld, wenn nicht über den Feldnamen?
Code: Alles auswählen.
PARAMETERS: MY_VAR TYPE X.
LOOP AT SCREEN INTO DATA(screen_elem).
CHECK screen_elem-name = 'MY_VAR'.
screen_elem-active = 0.
ENDLOOP.
Klar wird der über den Namen identifiziert, aber eben als Literal und nicht als Referenz. Gehen wir nun davon aus, wir nutzen den SELECTION-SCREEN als Include in vielen, vielen Programmen und der Name wird geändert so müssen alle Literale manuell angepasst werden. Und werden nicht alle gefunden entstehen Fehler.PeterPaletti hat geschrieben: ↑17.11.2023 11:12Verstehe ich immer noch nicht oder vielleicht ist mir die Aufgabenstellung zu hoch. Wenn du nun 5 Parameter auf dem Selektionsbildschirm hättest, wie soll denn der eine, der ausgeschaltet werden soll, identifiziert werden, wenn nicht über den Namen?