es geht um die Verwendung des Bausteins REUSE_ALV_GRID_DISPLAY in der FuGru MEREP. Abhängig vom Inhalt bestimmter Felder der t_outtab (also der Tabelle mit den auszugebenden Daten) soll eine Zeile gehighlightet (das was passiert wenn man einmal auf den Zeilenkopf klickt) werden.
Zum Beispiel soll jede Zeile markiert werden bei der in der outtab im Feld Menge eine 0 steht. Das soll passieren bei der ersten Ausgabe der Tabelle ohne zusätzlich Benutzeraktion.
Alternativ müsste ich die Struktur der outtab um ein Feld erweitern, aber dies würde eine Reihe von Modifikationen im weiteren Prozess nach sich ziehen. Bei automatisch richtig markierte Zeilen wäre dies einfacher, da sie bereits korrekt an die Folgeverarbeitung übergeben werden.
Wäre super, wenn jemand eine Idee hat, wenn's denn geht.
Ich habe inzwischen die Methoden get_selected_rows und set_selected_rows verwendet, die eigentlich mein Problem lösen sollten. Die get Methode funktioniert auch einwandfrei und liefert die zuvor manuell in der Anwendung markierten Zeilen zurück. Der Aufruf der Methode set_selected_rows springt beim trace im Debugger allerdings in CL_SYSTEM_UUID->if_system_uuid_static~create_uuid_x16 anstatt in cl_gui_alv_grid->set_selected_rows . Das Programm springt also die falsche Methode an. Das kann ich nicht interpretieren, sind hier irgendwie die Referenzen durcheinandergekommen?
Es handelt sich um eine Modifikation von der Methode EXECUTE in LCL_REPORTING_CNT_SUBCON in der FuGru merep.
Das Problem in der Anwendungsentwicklung kann ich vermutlich auf ganz anderem Weg durch eine Prozessänderung lösen, trotzdem verstehe ich das Verhalten des Systems an dieser Stelle nicht. Hat jemand einen Hinweis?