..3 Программа печати

Создайте отчет Z_SHIPPING_LABELS_4 и поместите в него следующий код (для наглядности, отличия от Z_SHIPPING_LABELS обозначены красным цветом):

 

REPORT z_shipping_labels_4.

* declare the context
DATA:
  gs_line             
TYPE zcontext_shipping_label  ,
  gt_context          
TYPE zcontext_shipping_labels ,
  gv_document_rawdata TYPE mime_data .

* fill the context
gs_line-to_name    = 
'Dan Tedford' .
gs_line-to_street  = 
'811 Alworth Avenue' .
gs_line-to_town    = 
'Middlefield' .
gs_line-to_state   = 
'CA' .
gs_line-to_zip     = 
'98567' .
APPEND gs_line TO gt_context .

gs_line-to_name    = 
'Shane Hamby' .
gs_line-to_street  = 
'852 Ocean View Rd.' .
gs_line-to_town    = 
'Bayshore' .
gs_line-to_state   = 
'CA' .
gs_line-to_zip     = 
'94123' .
APPEND gs_line TO gt_context .

gs_line-to_name    = 
'Dr.Henry Albrecht' .
gs_line-to_street  = 
'522 Ravenswood' .
gs_line-to_town    = 
'East Bayshore' .
gs_line-to_state   = 
'CA' .
gs_line-to_zip     = 
'93327' .
APPEND gs_line TO gt_context .

gs_line-to_name    = 
'Hugh Molotsi' .
gs_line-to_street  = 
'1980 N.Stonecrest Rd.' .
gs_line-to_town    = 
'West Middlefield' .
gs_line-to_state   = 
'CA' .
gs_line-to_zip     = 
'12384' .
APPEND gs_line TO gt_context .

* call the form
CALL FUNCTION 'ZXLWB_CALLFORM'
  
EXPORTING
    iv_formname         = 
'SHIPPING_LABELS'
    iv_context_ref      = gt_context[]
    iv_viewer_suppress  = 'X'
  IMPORTING
    ev_document_rawdata = gv_document_rawdata 

  
EXCEPTIONS
    
OTHERS         = 2 .
IF sy-subrc NE 0 .
  
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
ENDIF .

* mailing
PERFORM send_mail USING gv_document_rawdata .


*&---------------------------------------------------------------------*
*&      Form  send_mail
*&---------------------------------------------------------------------*

FORM send_mail USING pv_document_rawdata TYPE mime_data .
  DATA:
    lv_attachment_size  TYPE sood-objlen ,
    lv_subject          TYPE so_obj_des ,
    lv_document_size    TYPE i ,
    lt_document_table   TYPE solix_tab .
  DATA:
    lr_send_request     TYPE REF TO cl_bcs ,
    lr_mail_message     TYPE REF TO cl_document_bcs ,
    lr_recipient        TYPE REF TO if_recipient_bcs ,
    lr_error            TYPE REF TO i_oi_error ,
    ls_retcode          TYPE soi_ret_string ,
    lv_attachment_type  TYPE soodk-objtp VALUE 'XLS' .

  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer        = pv_document_rawdata
    IMPORTING
      output_length = lv_document_size
    TABLES
      binary_tab    = lt_document_table.

  lr_send_request = cl_bcs=>create_persistent( ) .

  lv_subject = 'test mail' .
  lr_mail_message = cl_document_bcs=>create_document(
      i_type      = 'RAW'
      i_subject   = lv_subject ) .

  lv_attachment_size = lv_document_size .
  TRY .
      lr_mail_message->add_attachment(
          i_attachment_type     = lv_attachment_type
          i_attachment_subject  = space
          i_attachment_size     = lv_attachment_size
          i_att_content_hex     = lt_document_table ) .
    CATCH cx_document_bcs .
  ENDTRY .
  lr_send_request->set_document( lr_mail_message ) .

  lr_recipient = cl_sapuser_bcs=>create( sy-uname ).

  lr_send_request->set_send_immediately( abap_on ) .

  lr_send_request->add_recipient(
      i_recipient = lr_recipient
      i_express   = abap_on ) .

  lr_send_request->send( i_with_error_screen = abap_on ) .

  COMMIT WORK .
ENDFORM .                    "send_mail


 

Результат работы программы печати:



SAP EXCEL in background