..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