Code: Alles auswählen.
id date amnt
011 2007 1200
011 2008 1400
011 2009 6700
011 2010 3500
012 2007 ---
013 2007 3000
013 2008 1300
014 2007 1200
014 2008 ---
014 2009 9000
015 2007 2500
Code: Alles auswählen.
id name date amnt date1 amnt1 date2 amnt2 date3 amnt3
011 jx 2007 1200 2008 1400 2009 6700 2010 3500
012 tx --
014 gx 2007 3000 2008 -- 2009 9000 -- ---
015 hx 2007 2500
Code: Alles auswählen.
clear w_output.
loop at t_output into w_output.
clear w_itab.
loop at it_tab into w_itab where id = w_output-id.
case sy-tabix.
WHEN '1'.
w_output-date = w_itab-date
w_output-amnt = w_itab-amnt
WHEN '2'.
w_output-date1 = w_itab-date
w_output-amnt1 = w_itab-amnt
WHEN '3'.
w_output-date2 = w_itab-date
w_output-amnt2 = w_itab-amnt
WHEN '4'.
w_output-date3 = w_itab-date
w_output-amnt3 = w_itab-amnt
endcase.
modify t_output from w_output.
endloop.
endloop.
Was verstehst Du unter "dynamisch ermitteln"? sy-tabix gibt Dir zur Laufzeit immer genau an, auf welchem Datensatz der internen Tabelle Du Dich gerade befindest. Das ist ja im Prinzip schon dynamisch.seco_neu hat geschrieben:Wie haette ich gemacht, wenn ich die sy-tabix dynamisch ermitteln moechte? Angenommen ich kenne die Anzahl der id in der it_tab nicht, wie haette ich gemacht, dass die Anzahl der ids erst im laufzeit ermitteln weden kann?
Code: Alles auswählen.
SORT t_output BY id.
CLEAR w_output.
LOOP AT t_output INTO w_output
AT NEW id.
ULINE. " Damit ein Zeilenumbruch gemacht wird
WRITE: w_output-id, w_output-name.
ENDAT.
WRITE: w_output-date, w_output-amnt.
ENDLOOP.