Jochen hat geschrieben:SET_TABLE_FOR_FIRST_DISPLAY schenken -ich will also den gleichen ALV mit dem gleichen Parametern nochmal rufen, nur das jetzt mein Feldsymbol auf eine andere interne Tabelle zeigt.
CALL METHOD ALV_GRID->REFRESH_TABLE_DISPLAY.
Warum wird der neue Inhalt des Feldsymbols nicht gelesen und dargestellt?
Mittels SET_TABLE_FOR_FIRST_DISPLAY setzt du ein Referenz auf deine OUTTAB.
Code innerhalb SET_TABLE_FOR_FIRST_DISPLAY
get reference of it_outtab into mt_outtab.
Du versuchst mittels REFRESH_TABLE_DISPLAY den ALV zu refreshen. Das tut dieser auch. Er nimmt die Referenz auf deine OUTTAB aus mt_outtab.
Code innerhalb REFRESH_TABLE_DISPLAY
assign mt_outtab->* to <tab1>.
Nur hast du dem ALV-Objekt nicht mittgeteilt, das du eine andere itab aus deinem Programm ausgeben willst. Das ändern des Fieldsymbols innerhalb deines Programms reicht nicht aus, dies müsste dem ALV-Objekt mitgeteilt werden. Du kannst die OUTTAB aber nur einmal mit der Methode SET_TABLE_FOR_FIRST_DISPLAY übergeben.
Damit der Refresh funktioniert musst du die Daten in der OUTTAB ändern. Diese Änderungen werden dann auch angezeigt.
Gruß Hendrik