Druckausgabe per ABAP-Code anschieben
SELECT * INTO TABLE @DATA(it_ispfli) FROM spfli UP TO 50 ROWS.
IF sy-subrc = 0.
TRY.
DATA: o_salv TYPE REF TO cl_salv_table.
cl_salv_table=>factory( IMPORTING r_salv_table = o_salv
CHANGING t_table = it_ispfli ).
DATA: lv_print_params TYPE pri_params.
* Druckparameter holen
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
no_dialog = abap_true
IMPORTING
out_parameters = lv_print_params
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
OTHERS = 4.
IF sy-subrc = 0.
* nur Drucken in Spool, keine Anzeige des ALV-Grids
* Name eines Geräts
lv_print_params-pdest = 'LOCL'.
* Beschreibungstext
lv_print_params-prtxt = |{ sy-datum } { sy-uzeit }|.
* Druckparameter setzen
DATA(o_print) = o_salv->get_print( ).
DATA(lv_print_ctrl) = o_print->get_print_control( ).
lv_print_ctrl-pri_params = lv_print_params.
o_print->set_print_control( lv_print_ctrl ).
o_print->set_print_only( abap_true ).
* SALV-Grid anzeigen
o_salv->display( ).
ENDIF.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.
ENDIF.
Druckausgabe im Batchmodus
SELECT * INTO TABLE @DATA(it_ispfli) FROM spfli UP TO 50 ROWS.
IF sy-subrc = 0.
* Wenn Batchmodus aktiv, dann nur SALV-Objekt erzeugen und per display( ) ausgeben.
* Das SALV-Grid erzeugt automatisch eine Listausgabe der Tabelle in die Spool.
IF sy-batch = abap_true.
TRY.
DATA: o_salv TYPE REF TO cl_salv_table.
cl_salv_table=>factory( IMPORTING r_salv_table = o_salv
CHANGING t_table = it_ispfli ).
* Tabelle im Spool ausgeben
o_salv->display( ).
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.
ENDIF.
ENDIF.