..3 Printing program

Create a report Z_FORM_ORDER and paste below code into it:


REPORT  z_form_order .

* declare the context
DATA gs_context  TYPE zcontext .

* fill the context
PERFORM fill_context .

* call the form
CALL FUNCTION 'ZXLWB_CALLFORM'
  EXPORTING
    iv_formname         = 'FORM_ORDER'
    iv_context_ref      = gs_context
  EXCEPTIONS
    process_terminated  = 1
    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 .


*&---------------------------------------------------------------------*
*&      Form  fill_context
*&---------------------------------------------------------------------*
FORM fill_context .
  DATA:
    ls_header         TYPE zcontext_header ,
    ls_position       TYPE zcontext_position ,
    ls_footer         TYPE zcontext_footer ,
    lv_poscount       TYPE char10 .

* -->> header
  ls_header-name    'John Doe' .
  ls_header-address '123 Main street #45' .
  ls_header-city    'Brooklyn' .
  ls_header-state   'NY' .
  ls_header-zip     '11201' .
  ls_header-phone   '1-234-567-8910' .
  ls_header-email   'John.Doe.12345@gmail.com' .
  gs_context-header ls_header .

* -->> positions
  DO 10 TIMES .
    ls_position-name(3sy-index .
    ls_position-name+3  'Position' .
    ls_position-qty     sy-index .
    ls_position-price   sy-index 555 .
    ls_position-total   '=RC[-5]*RC[-3]' .          " -->> formula
    APPEND ls_position TO gs_context-positions .
  ENDDO .

* -->> footer
  lv_poscount LINESgs_context-positions[] .
  CONCATENATE '=SUM(R[-' lv_poscount ']C:R[-1]C)' INTO ls_footer-subtotal .
  CONDENSE ls_footer-subtotal NO-GAPS .               " -->> formula:  =SUM(R[-10]C:R[-1]C)

  ls_footer-total         '=R[-2]C' .               " -->> formula
  ls_footer-card_visa     space .
  ls_footer-card_mc       'V' .
  ls_footer-card_discover space .
  ls_footer-card_number   '1234567890123456' .
  ls_footer-expiry_date   '20140601' .
  gs_context-footer       ls_footer . 
ENDFORM .                    "fill_context

 

Result of the printing program execution: