Calling SAP Business Graphics, With Dialog 

The following ABAP program illustrates some of the function module calls discussed in the preceding topics.

*-------------------------------------------------------------*

* This program calls SAP Business Graphics.

 

* GRBUSGMO calls GRAPH_2D, sending graph data (2D chart).

* The online user can then update the chart

* (using mouse or BUSG modify window).

* The ABAP program responds by updating its own data.

*-------------------------------------------------------------*

 

REPORT GRBUSGMO.

*

* Data for 2D-Modification

*

DATA: BEGIN OF DATA OCCURS 1,

TEXT(25),

VALUE TYPE P,

END OF DATA.

 

DATA: TCOL1(5) VALUE '#1993'.

DATA: TITLE(25) VALUE 'Merchandise 1993'.

DATA: TIT2(10) VALUE 'Product'.

DATA: MOD_ROW(5), MOD_COL(5), MOD_VAL(20).

DATA: M_TYP, B_TYP, BUSG_STAT.

FIELD-SYMBOLS: <F>.

 

DATA-TEXT = 'Refrigerators'.

DATA-VALUE = 12345.

APPEND DATA.

 

DATA-TEXT = 'Freezers'.

DATA-VALUE = 22222.

APPEND DATA.

 

DATA-TEXT = 'Ovens'.

DATA-VALUE = 11111.

APPEND DATA.

 

DATA-TEXT = 'Dishwashers'.

DATA-VALUE = 54321.

APPEND DATA.

 

PERFORM OUTPUT_2D.

 

AT PF08.

BUSG_STAT = SPACE. "// start and wait

*

* Event-Loop

*

DO.

CALL FUNCTION 'GRAPH_2D'

EXPORTING

STAT = BUSG_STAT

INFORM = '7' "// allow modify

MAIL_ALLOW = 'X' "// allow mail

IMPORTING

M_TYP = M_TYP

B_TYP = B_TYP

MOD_ROW = MOD_ROW

MOD_COL = MOD_COL

MOD_VAL = MOD_VAL

TABLES

DATA = DATA.

BUSG_STAT = '4'. "// Just wait next time

CASE M_TYP.

WHEN 'D'. "// Programm ended

EXIT.

WHEN 'I'. "// Valid message

IF B_TYP = 'M'. "// Modify-event

READ TABLE DATA INDEX MOD_ROW.

ASSIGN COMPONENT MOD_COL OF STRUCTURE DATA TO <F>.

<F> = MOD_VAL.

MODIFY DATA INDEX MOD_ROW.

ENDIF.

IF B_TYP = 'S'. "// Select-event (ignored)

ENDIF. "// For element (MOD_ROW-MOD_COL)

ENDCASE.

ENDDO.

PERFORM OUTPUT_2D.

 

*-------------------------------------------------------------*

* FORM OUTPUT_2D (Show the actual data)

*-------------------------------------------------------------*

FORM OUTPUT_2D.

WRITE: / 'Products',22 TCOL1.

SKIP 2.

LOOP AT DATA.

WRITE: / DATA-TEXT, 22 DATA-VALUE.

ENDLOOP.

ENDFORM.