Code: Alles auswählen.
CALL METHOD go_alv_grid->get_selected_rows
IMPORTING
et_index_rows = lt_row.
LOOP AT lt_row ASSIGNING <sel_rows>.
READ TABLE <t_dyn_table> ASSIGNING <out> INDEX <sel_rows>-index.
ASSIGN COMPONENT 'VBELN' OF STRUCTURE <out> TO <vbeln>.
ASSIGN COMPONENT 'LABNK' OF STRUCTURE <out> TO <labnk>.
ASSIGN COMPONENT 'ABRDT' OF STRUCTURE <out> TO <abrdt>.
* ASSIGN COMPONENT '2016_10' OF STRUCTURE <out> TO <zmonth>.
* ASSIGN COMPONENT spaltenname OF STRUCTURE <out> TO <zmonth>.
* ASSIGN COMPONENT 'ZMONTH' OF STRUCTURE <out> TO <zmonth>.
LOOP AT gt_res INTO ls_res WHERE labnk = <labnk>.
IF ls_res-zmonth NE <zmonth>.
ls_res-zmonth = <zmonth>.
ls_res-vbeln = <vbeln>.
ls_res-labnk = <labnk>.
ls_res-abrdt = <abrdt>.
ls_res-wmeng = 0.
MOVE-CORRESPONDING ls_res TO ls_abw.
APPEND ls_abw TO lt_abw.
ELSE.
MOVE-CORRESPONDING ls_res TO ls_abw.
APPEND ls_abw TO lt_abw.
ENDIF.
ENDLOOP.
ENDLOOP.
Code: Alles auswählen.
spaltenname = '2016_10'. Assign component spaltenname of structure <out> to <abrdt>
Code: Alles auswählen.
DO 100 TIMES. " die 100 sind willkürlich; Hauptsache mehr, als es jemals Spalten geben wird
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <out> TO <x>.
IF SY-SUBRC <> 0. " Der ASSIGN dumpt nicht bei ungültiger Spaltennummer, sondern bringt einen SY-SUBRC <> 0
EXIT. " DO
ENDIF.
PERFORM SPALTE_AUSGEBEN USING <x>.
ENDDO.
Das ist ja quatsch! Er baut doch seine Tabelle selbst auf. Also kann er sich auch selbst merken, welches Feld verwendet wird.DeathAndPain hat geschrieben:Das Problem ist also, dass Du Nutzdaten im Namen der Spalte abgelegt hast statt in der Spalte selber.
Da wirst Du nach meinem Dafürhalten über die Klasse CL_ABAP_TABLEDESCR gehen müssen. Unglaublicherweise hat diese Klasse sogar eine recht gut gepflegte Onlinedokumentation in der SE24. Damit holst Du Dir die Spaltennamen Deiner internen Tabelle, und damit machste dann weiter.