..3 Printing program

Create a report Z_CHART_COMP and paste below code:


REPORT z_chart_comp .


* declare the context

DATA gt_context TYPE zcontext_chart_comp .


* fill the context

PERFORM fill_context .


* call the form

CALL FUNCTION 'ZXLWB_CALLFORM'

EXPORTING

iv_formname = 'CHART_COMP'

iv_context_ref = gt_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_comp TYPE zcontext_chart_comp_s ,

ls_dataset TYPE zcontext_chart_dataset_s ,

lv_random_number TYPE i .


SELECT butxt

INTO ls_comp-company

FROM t001

UP TO 10 ROWS .


CLEAR ls_comp-dataset[] .


DO 4 TIMES .

CLEAR ls_dataset .

CLEAR lv_random_number .


ls_dataset-quarter = sy-index .


* get random Sales

CALL FUNCTION 'BKK_RANDOM'

EXPORTING

i_modulo = 10000

IMPORTING

e_random_number = lv_random_number .


ls_dataset-sales = lv_random_number + 50000 .


* get random Advertizing

CALL FUNCTION 'BKK_RANDOM'

EXPORTING

i_modulo = 5000

IMPORTING

e_random_number = lv_random_number .


ls_dataset-advertizing = lv_random_number + 10000 .


APPEND ls_dataset TO ls_comp-dataset .

ENDDO .


INSERT ls_comp INTO TABLE gt_context .


ENDSELECT .


ENDFORM . "fill_context

Result of the printing program execution: