Open all | Close all

Write report straight to printer


The code below demonstrates how send a report created using the write statement straight to the printer,
via the print dialog box. Alternative method for doing this would be to use sapscript.
*
*Print parameter declarations
DATA: val(1) TYPE c,
      pripar TYPE pri_params,
      arcpar TYPE arc_params,
      lay   TYPE pri_params-paart,
      lines TYPE pri_params-linct,
      rows  TYPE pri_params-linsz.


  lay = 'X_65_255'.
  lines = 255.
  rows  = 65.

CALL FUNCTION 'GET_PRINT_PARAMETERS'
       EXPORTING
            in_archive_parameters  = arcpar
            in_parameters          = pripar
            layout                 = lay
*            line_count             = lines
*            line_size              = rows
*            no_dialog              = 'X'
       IMPORTING
            out_archive_parameters = arcpar
            out_parameters         = pripar
            valid                  = val
       EXCEPTIONS
            archive_info_not_found = 1
            invalid_print_params   = 2
            invalid_archive_params = 3
            OTHERS                 = 4.

check val EQ 'X'.
NEW-PAGE PRINT ON
    NEW-SECTION
    PARAMETERS pripar
    ARCHIVE PARAMETERS arcpar
    NO DIALOG.


Write:/ 'Hello'.

NEW-PAGE PRINT OFF.

*Write to printer
  DATA: ld_params LIKE pri_params,
        ld_valid  TYPE c,
        ld_lay   TYPE pri_params-paart,

* Example of seting default layout
  ld_lay = 'X_65_255'.

  CALL FUNCTION 'GET_PRINT_PARAMETERS'
      EXPORTING
*         ARCHIVE_ID             = C_CHAR_UNKNOWN
*         ARCHIVE_INFO           = C_CHAR_UNKNOWN
*         ARCHIVE_MODE           = C_CHAR_UNKNOWN
*         ARCHIVE_TEXT           = C_CHAR_UNKNOWN
*         AR_OBJECT              = C_CHAR_UNKNOWN
*         ARCHIVE_REPORT         = C_CHAR_UNKNOWN
*         AUTHORITY              = C_CHAR_UNKNOWN
*         COPIES                 = C_NUM3_UNKNOWN
*         COVER_PAGE             = C_CHAR_UNKNOWN
*         DATA_SET               = C_CHAR_UNKNOWN
*         DEPARTMENT             = C_CHAR_UNKNOWN
*         DESTINATION            = C_CHAR_UNKNOWN
*         EXPIRATION             =
            immediately            = 'X'
*         IN_ARCHIVE_PARAMETERS  = ' '
*         IN_PARAMETERS          = ' '
            LAYOUT                 = ld_layout            "'X_PAPER'
*         LINE_COUNT             = C_INT_UNKNOWN
*         LINE_SIZE              = C_INT_UNKNOWN
            LIST_NAME              = 'TEST'
            LIST_TEXT              = 'Test page'
*         MODE                   = ' '
            NEW_LIST_ID            = 'X'
            no_dialog              = ' '
*         RECEIVER               = C_CHAR_UNKNOWN
           release                = 'X'
*         REPORT                 = C_CHAR_UNKNOWN
*          SAP_COVER_PAGE         = 'X'
*         HOST_COVER_PAGE        = C_CHAR_UNKNOWN
*         PRIORITY               = C_NUM1_UNKNOWN
*         SAP_OBJECT             = C_CHAR_UNKNOWN
*         TYPE                   = C_CHAR_UNKNOWN
*         USER                   = SY-UNAME
      IMPORTING
*         OUT_ARCHIVE_PARAMETERS =
           out_parameters         = ld_params
           valid                  = ld_valid
      EXCEPTIONS
           archive_info_not_found = 1
           invalid_print_params   = 2
           invalid_archive_params = 3
           OTHERS                 = 4
            .
  IF sy-subrc EQ 0.
    IF ld_valid <> space.
      new-page print on parameters ld_params NO dialog.
      write: 'This text will be printed on page'.
      write: 'This text will be printed on page'.

*     Stop spool report appearing, maybe option to remove this
      leave to screen 0.
    ENDIF.

  ENDIF.



SAP ABAP development help
More SAP ABAP development help and information


ABAP code and information
More SAP ABAP development tips and tricks

 
 

Number of SAP Development Users currently online hit counters