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



 


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