..3 Print program

Create a report Z_SHIPPING_LABELS_4 and paste below code into it (For clarity, the difference from Z_SHIPPING_LABELS marked in red color):

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

Result of the printing program execution: