In meinem cl_salv_table ALV definiere ich die Ausgabestruktur dynamisch. Die itab wird folgendermaßen gebildet:
CREATE DATA t_data TYPE STANDARD TABLE OF (p_tabnam)
WITH NON-UNIQUE DEFAULT KEY.
mit Folgendem greife ich auf die Daten nach dem Select zu:
FIELD-SYMBOLS: <lt_itab> TYPE TYPE STANDARD TABLE.
ASSIGN t_data->* TO <lt_itab>.
Jetzt möchte ich einen Klickhandler einbauen...
METHOD on_click.
FIELD-SYMBOLS: <lt_itab> TYPE STANDARD TABLE.
ASSIGN t_data->* TO <lt_itab>.
FIELD-SYMBOLS: <ls_data> TYPE ANY TABLE.
READ TABLE <lt_itab> ASSIGNING <ls_data> INDEX row.
DATA: lv_msg TYPE string.
CASE column.
WHEN 'PRICE'.
lv_msg = <ls_data>-price.
Das Fieldsymbol <ls_data> kann ich nicht typisieren, da ich den Typ erst bei Laufzeit mitkriege.
Die Fehlermeldung: "<LS_DATA>" ist eine Tabelle ohne Kopfzeile und besitzt daher keine Komponente mit Namen "PRICE". erscheint.