DATA: it_spfli TYPE STANDARD TABLE OF spfli.
DATA: o_cnt TYPE REF TO cl_gui_docking_container.
DATA: o_doc TYPE REF TO cl_dd_document.
PARAMETERS: p_carr TYPE spfli-carrid DEFAULT '%'.
INITIALIZATION.
* Containerobjekt für die Einbettung des cl_dd_document
o_cnt = NEW #( no_autodef_progid_dynnr = abap_true
side = cl_gui_docking_container=>dock_at_bottom
ratio = 85 ).
* cl_dd_document für die formatierte Darstellung des Ausgabetextes
o_doc = NEW #( background_color = cl_dd_area=>col_textarea ).
* Dokument im Container darstellen
o_doc->display_document( parent = o_cnt ).
AT SELECTION-SCREEN OUTPUT.
IF o_cnt IS BOUND.
* SELECT mit LIKE, für % als Wildcard
SELECT * FROM spfli
INTO TABLE @it_spfli
WHERE carrid LIKE @p_carr.
* Dokument initialisieren, alten Inhalt löschen, Hintergrundfarbe weiß
o_doc->initialize_document( background_color = cl_dd_area=>col_textarea ).
* Text vom Stil Überschrift
o_doc->add_text( text = 'Flugverbindungen'
sap_style = cl_dd_document=>heading ).
* Trennlinie
o_doc->underline( ).
LOOP AT it_spfli ASSIGNING FIELD-SYMBOL(<fs_line>).
* Zeilen im Standardformat
o_doc->add_text( text = |{ <fs_line>-carrid } { <fs_line>-connid } { <fs_line>-airpfrom } { <fs_line>-cityfrom } { <fs_line>-airpto } { <fs_line>-cityto }|
sap_style = cl_dd_document=>standard ).
o_doc->new_line( ).
ENDLOOP.
* Dokument zusammenbauen
o_doc->merge_document( ).
* Dokument anzeigen, bisherige Controls, Ereignisbehandler und Container beibehalten
o_doc->display_document( reuse_control = abap_true
reuse_registration = abap_true
parent = o_cnt ).
ENDIF.