Code: Alles auswählen.
TYPES: BEGIN OF ty_message,
index TYPE i,
text TYPE string,
END OF ty_message.
DATA: lt_messages TYPE TABLE OF ty_message,
lv_index TYPE i,
lo_salv TYPE REF TO cl_salv_table,
lo_salv_col TYPE REF TO cl_salv_columns_table,
lo_cx LIKE io_cx.
FIELD-SYMBOLS: <fs_message> LIKE LINE OF lt_messages.
* Wenn die Ausnahmekette nur aus einem Objekt besteht, Nachricht in Statusleiste anzeigen
IF io_cx->previous IS NOT BOUND.
MESSAGE io_cx TYPE 'I' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
* Nachrichten der gesamten Ausnahmekette ermitteln
lo_cx = io_cx.
WHILE lo_cx IS BOUND.
INSERT INITIAL LINE INTO lt_messages ASSIGNING <fs_message> INDEX 1.
<fs_message>-text = lo_cx->get_text( ).
lo_cx = lo_cx->previous.
ENDWHILE.
* Nachrichten der Reihenfolge des Auftretens nach nummerieren
LOOP AT lt_messages ASSIGNING <fs_message>.
ADD 1 TO lv_index.
<fs_message>-index = lv_index.
ENDLOOP.
* SALV mit Nachrichtentabelle erzeugen und anzeigen
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lo_salv
CHANGING
t_table = lt_messages ).
lo_salv_col = lo_salv->get_columns( ).
lo_salv_col->set_optimize( abap_true ).
lo_salv->set_screen_popup(
EXPORTING
start_column = 16
end_column = 100
start_line = 1
end_line = 6 ).
lo_salv->display( ).
CATCH cx_salv_msg INTO DATA(lx).
MESSAGE lx TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
Folgende Benutzer bedankten sich beim Autor DUTZMIC für den Beitrag (Insgesamt 2):
sidneyweiher • ewx