Im Custom Control zeige ich ein ALV-Grid an, in dem Zeilen selektiert werden können. Obwohl ich eine Zeile ausgewählt habe, ist das select-Kennzeichen leer.
Was mache ich falsch?
lg khb (der immer noch keine Ahnung von ABAP OO hat)
Die Methode zum Auslesen der aktuell ausgewählten Zeilen lautet: GET_SELECTED_ROWS
Die Rückgabe ist eine LIste von markierten Zeilen-Indizes. Aber Achtung: Die aktuelle Sortierung im Grid wird hier berücksichtigt, daher können die Indizes mitunter von der internen Tabelle abweichen.
Ich muss gestehen, dass ich das BOX_FNAME bislang nicht gekannt habe. Damit kann man dasselbe Verhalten wie beim Table-Control im Dynpro erreichen und eine sog. Markierungsspalte angeben, in die der Standard dann ein X einträgt wenn die Zeile markiert ist. Man lernt nie aus
Noch eine kurze Info zur Funktionsweise des ALV-Grid: Da die interne Tabelle per CHANGING über die Methode SET_TABLE_FOR_FIRST_DISPLAY übergeben wird, werden auch alle Änderungen an den Daten die im Dialog passieren (Sortierung usw.) an die ursprüngliche Tabelle direkt zurückgeschrieben. Daher sollte die Tabelle die in OUTTAB übergeben wird, immer GLOBAL im Programm / in der Klasse abgelegt sein um Doppel-Speicherung zu vermeiden.
lg ADT
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag: khb
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.