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

Изменим код отчета Z_SHIPPING_LABEL следующим образом.

  • В начале программы откроем связку книг, вызвав подпрограмму VIEWER_BUNDLE_OPEN в группе функций ZXLWB.

  • Несколько раз повторим заполнение контекста и вызов Ф.М.'ZXLWB_CALLFORM', таким образом добавляя форму в связку.

  • В конце программы закроем связку книг, вызвав подпрограмму VIEWER_BUNDLE_CLOSE в группе функций ZXLWB.

Итоговый вид программы печати:

REPORT z_shipping_labels_3.


* declare the context

DATA:

gs_context TYPE zcontext_shipping_label .


* open workbooks bundle

PERFORM viewer_bundle_open IN PROGRAM saplzxlwb .


DO 4 TIMES .


* fill the context

CLEAR gs_context .

CASE sy-index .

WHEN 1 .

gs_context-to_name = 'Dan Tedford' .

gs_context-to_street = '811 Alworth Avenue' .

gs_context-to_town = 'Middlefield' .

gs_context-to_state = 'CA' .

gs_context-to_zip = '98567' .

WHEN 2 .

gs_context-to_name = 'Shane Hamby' .

gs_context-to_street = '852 Ocean View Rd.' .

gs_context-to_town = 'Bayshore' .

gs_context-to_state = 'CA' .

gs_context-to_zip = '94123' .

WHEN 3 .

gs_context-to_name = 'Dr.Henry Albrecht' .

gs_context-to_street = '522 Ravenswood' .

gs_context-to_town = 'East Bayshore' .

gs_context-to_state = 'CA' .

gs_context-to_zip = '93327' .

WHEN 4 .

gs_context-to_name = 'Hugh Molotsi' .

gs_context-to_street = '1980 N.Stonecrest Rd.' .

gs_context-to_town = 'West Middlefield' .

gs_context-to_state = 'CA' .

gs_context-to_zip = '12384' .

ENDCASE .


* add form (workbook) to bundle

CALL FUNCTION 'ZXLWB_CALLFORM'

EXPORTING

iv_formname = 'SHIPPING_LABEL'

iv_context_ref = gs_context

iv_viewer_title = gs_context-to_name " -->> title by name of recipient

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 .

ENDDO .


* close and show bundle

PERFORM viewer_bundle_close IN PROGRAM saplzxlwb .

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