Code: Alles auswählen.
REPORT.
DATA: dref TYPE REF TO data.
FIELD-SYMBOLS: <fs> TYPE ANY.
PARAMETERS: table TYPE tabname OBLIGATORY DEFAULT 't000'.
**********************************************************************
START-OF-SELECTION.
* 1. Schritt wie im Tricktresor - Variable mit angegebenem Typ erzeugen
CREATE DATA dref TYPE (table).
ASSIGN dref->* TO <fs>.
* 2. Schritt - Erweitern einer Struktur [hier um einen festen Teil am Ende der Struktur]
PERFORM extend_structure USING <fs>
CHANGING dref.
ASSIGN dref->* TO <fs>.
BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form extend_structure
*&---------------------------------------------------------------------*
FORM extend_structure USING p_structure TYPE any
CHANGING p_dref TYPE REF TO data.
DATA: cl_desc1 TYPE REF TO cl_abap_structdescr,
t_component_table1 TYPE cl_abap_structdescr=>component_table,
cl_desc2 TYPE REF TO cl_abap_structdescr,
t_component_table2 TYPE cl_abap_structdescr=>component_table,
cl_desc TYPE REF TO cl_abap_structdescr,
t_component_table TYPE cl_abap_structdescr=>component_table.
DATA: BEGIN OF fix_part,
checked TYPE flag,
light TYPE char1,
END OF fix_part.
cl_desc1 ?= cl_abap_typedescr=>describe_by_data( p_structure ) .
t_component_table1 = cl_desc1->get_components( ).
cl_desc2 ?= cl_abap_typedescr=>describe_by_data( fix_part ) .
t_component_table2 = cl_desc2->get_components( ).
APPEND LINES OF t_component_table1 TO t_component_table. " Die übergebene Struktur
APPEND LINES OF t_component_table2 TO t_component_table. " Der feste Teil dahinter
cl_desc = cl_abap_structdescr=>create( t_component_table ).
CREATE DATA p_dref TYPE HANDLE cl_desc. " Ergibt dann eine Gesamtstruktur
ENDFORM. "extend_structure
Dynamische Programmierung ist nicht leicht und viel einfacher als der gezeigte Ansatz wird's kaum werden. Zumindest nicht wenn deine Vorgabe so grob ist. In Spezialfällen mag's durchaus deutlich einfachere Lösungen geben. Aber dafür hast du zu wenig Infos rausgerückt, was du genau machen willst.hmaxi96 hat geschrieben:Hat jemand einen einfacheren, der für Anfänger leichter zu verstehen ist?
Code: Alles auswählen.
READ TABLE zuordnung into ... WITH KEY lgort = workarea-lgort
if subrc > 0.
increase globaler_zaehler
zuordnung-feldname = 'LGO' + globaler_zaehler
zuordnung-lgort = workarea-lgort
append zuordnung
endif
assign component zuordnung-feldname of structure ls_tabzeile to <value>
<value> = lagerortbestand