Hallo ,
ich habe einen Report geschrieben, der in einem ALV-Grid Dropdown-Listen
zum Wechseln der Hintergrundfarbe einer Zelle enthält. Das funktioniert gut,
solange die Zelle noch keine Hintergrundfarbe hat.
Die interne Tabelle enthält nach dem durchlaufen der betroffenen Zeilen mit
LOOP AT ER_DATA_CHANGED->MT_GOOD_CELLS INTO X_CHANGE die richtigen Werte.
Leider ändert sich die Zell-Hintergrundfarbe nicht, wenn sie einmal gesetzt wurde.
Ich habe diverse Varianten mit I_BUFFER_ACTIVE und I_BYPASSING_BUFFER und auch statt eines
sender->refresh_table_display( is_stable = ls_stable )
ein
CALL METHOD sender->set_table_for_first_display versucht.
Leider ohne Erfolg. Das gleiche gilt für ein im Ereignis-Handler gesetztes delete from shared buffer euinfo(%f) id g_repid .
Das Ändern der Hintergrundfarbe mit Hilfe der Style-Struktur (TYPE LVC_S_STYL) funktioniert nur bis zum nächsten Refresh. Danach sieht man wieder die zuerst gesetzte Zell-Hintergrundfarbe.
Meine Vermutung ist, dass die einmal gestzten Farbinformationen in einem anderen Speicher vorgehalten werden, damit die Perfomance nicht leidet.
Meine Hoffnung ist, dass man das irgendwie mit dem richtigen Setzens eines Flags umgehen kann.
Vielen Dank für einen Hinweis
Richie