Calling SAP Portfolio Graphics, With Dialog 

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

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

* This program calls SAP Portfolio Graphics.

*

* GRPORT_1 calls GRAPH_PORT, sending portfolio graph objects,

* with trend lines to be drawn between them.

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

REPORT GRPORT_1.

 

DATA: BEGIN OF OBJT OCCURS 1. "// Object Attributes

INCLUDE STRUCTURE GPOOBJT.

DATA: END OF OBJT.

 

DATA: BEGIN OF AREA_TAB OCCURS 1. "// Areas (unused)

INCLUDE STRUCTURE GPOAREA.

DATA: END OF AREA_TAB.

 

DATA: BEGIN OF COL_TEXT OCCURS 1, "// Value columns

C(40),

END OF COL_TEXT.

 

DATA: BEGIN OF VALUES OCCURS 1, "// Object fields

P1 TYPE P,

P2 TYPE P,

P3 TYPE P,

P4 TYPE P,

P5 TYPE P,

P6 TYPE P,

P7 TYPE P,

P8 TYPE P,

P9 TYPE P,

END OF VALUES.

DATA: BEGIN OF AXIS OCCURS 4.

INCLUDE STRUCTURE GPOAXIS.

DATA: END OF AXIS.

 

DATA SAVE LIKE SY-TABIX.

 

 

SET PF-STATUS 'GRAF'.

 

* Constraints: Number of VALUES rows == Number of OBJT rows

* : Num of VALUES columns == Number of COL_TEXT rows

 

* Column title for $OBJD::VALTIT

COL_TEXT = '% Market share'. APPEND COL_TEXT.

COL_TEXT = '% Growth'. APPEND COL_TEXT.

COL_TEXT = 'Sales'. APPEND COL_TEXT.

COL_TEXT = 'Market share trend'. APPEND COL_TEXT.

COL_TEXT = 'Growth trend'. APPEND COL_TEXT.

COL_TEXT = 'Fixed costs'. APPEND COL_TEXT.

COL_TEXT = 'Overhead costs'. APPEND COL_TEXT.

COL_TEXT = 'Admin. costs'. APPEND COL_TEXT.

COL_TEXT = 'Estimated profits'. APPEND COL_TEXT.

 

* Attributes for $AXIS

AXIS-POS = 'RIGHT'.

AXIS-BACKCLR = 'DARKGRAY'.

AXIS-TEXTCLR = 'WHITE'.

AXIS-SCALCLR = 'WHITE'.

AXIS-SHADOW = 'N'.

AXIS-TICKS = '50'.

AXIS-START = '0'.

AXIS-END = '100'.

APPEND AXIS.

 

AXIS-POS = 'TOP'.

AXIS-BACKCLR = 'DARKGRAY'.

AXIS-TEXTCLR = 'WHITE'.

AXIS-SCALCLR = 'WHITE'.

AXIS-SHADOW = SPACE.

AXIS-TICKS = '50'.

AXIS-START = '0'.

AXIS-END = '100'.

APPEND AXIS.

 

AXIS-POS = 'LEFT'.

AXIS-BACKCLR = 'DARKGRAY'.

AXIS-TEXTCLR = 'WHITE'.

AXIS-SCALCLR = 'WHITE'.

AXIS-SHADOW = 'N'.

AXIS-TICKS = '10'.

AXIS-START = '0'.

AXIS-END = '100'.

APPEND AXIS.

 

AXIS-POS = 'BOTTOM'.

AXIS-BACKCLR = 'DARKGRAY'.

AXIS-TEXTCLR = 'WHITE'.

AXIS-SCALCLR = 'WHITE'.

AXIS-SHADOW = 'N'.

AXIS-TICKS = '50'.

AXIS-START = '0'.

AXIS-END = '100'.

APPEND AXIS.

 

* Objects

*BJT-LINECLR = 'WHITE'.

 

* 1. Trend line

 

OBJT-FORM = 'RECTANGLE'.

OBJT-FILLCLR = 'YELLOW'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Clarion 1990'.

OBJT-INFO = 'Sales in 1990'.

VALUES-P1 = 10.

VALUES-P2 = 20.

VALUES-P3 = 10000.

VALUES-P4 = 22.

VALUES-P5 = 22.

VALUES-P6 = 400.

VALUES-P7 = 300.

VALUES-P8 = 200.

VALUES-P9 = 100.

APPEND OBJT.

APPEND VALUES.

 

 

OBJT-FORM = 'RECTANGLE'.

OBJT-FILLCLR = 'YELLOW'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Clarion 1991'.

OBJT-INFO = 'Sales in 1991'.

VALUES-P1 = 22.

VALUES-P2 = 22.

VALUES-P3 = 15000.

VALUES-P4 = 45.

VALUES-P5 = 35.

VALUES-P6 = 100.

VALUES-P7 = 200.

VALUES-P8 = 300.

VALUES-P9 = 400.

APPEND OBJT.

APPEND VALUES.

 

 

OBJT-FORM = 'RECTANGLE'.

OBJT-FILLCLR = 'YELLOW'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Clarion 1992'.

OBJT-INFO = 'Sales in 1992'.

VALUES-P1 = 45.

VALUES-P2 = 35.

VALUES-P3 = 22000.

VALUES-P4 = 62.

VALUES-P5 = 33.

VALUES-P6 = 20.

VALUES-P7 = 40.

VALUES-P8 = 80.

VALUES-P9 = 160.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'RECTANGLE'.

OBJT-FILLCLR = 'YELLOW'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Clarion 1993'.

OBJT-INFO = 'Sales in 1993'.

VALUES-P1 = 62.

VALUES-P2 = 33.

VALUES-P3 = 12000.

VALUES-P4 = 62.

VALUES-P5 = 33.

VALUES-P6 = 600.

VALUES-P7 = 700.

VALUES-P8 = 600.

VALUES-P9 = 700.

APPEND OBJT.

APPEND VALUES.

 

* 2. Trend line

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1988'.

OBJT-INFO = 'Sony UX400/CD, Sales in 1988'.

VALUES-P1 = 2.

VALUES-P2 = 50.

VALUES-P3 = 2500.

VALUES-P4 = 26.

VALUES-P5 = 57.

VALUES-P6 = 100.

VALUES-P7 = 700.

VALUES-P8 = 20.

VALUES-P9 = 50.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1989'.

OBJT-INFO = 'Sony UX400/CD, Sales in 1989'.

VALUES-P1 = 26.

VALUES-P2 = 57.

VALUES-P3 = 3500.

VALUES-P4 = 58.

VALUES-P5 = 70.

VALUES-P6 = 100.

VALUES-P7 = 600.

VALUES-P8 = 20.

VALUES-P9 = 70.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1990'.

OBJT-INFO = 'Sony UX400/CD, Sales in 1990'.

VALUES-P1 = 58.

VALUES-P2 = 70.

VALUES-P3 = 11000.

VALUES-P4 = 79.

VALUES-P5 = 68.

VALUES-P6 = 100.

VALUES-P7 = 500.

VALUES-P8 = 25.

VALUES-P9 = 90.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1991'.

OBJT-INFO = 'Sony UX400/CD, Sales 1991'.

VALUES-P1 = 79.

VALUES-P2 = 68.

VALUES-P3 = 13000.

VALUES-P4 = 87.

VALUES-P5 = 54.

VALUES-P6 = 100.

VALUES-P7 = 430.

VALUES-P8 = 45.

VALUES-P9 = 120.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1992'.

OBJT-INFO = 'Sony UX400/CD, Sales in 1992'.

VALUES-P1 = 87.

VALUES-P2 = 54.

VALUES-P3 = 13500.

VALUES-P4 = 80.

VALUES-P5 = 34.

VALUES-P6 = 90.

VALUES-P7 = 390.

VALUES-P8 = 44.

VALUES-P9 = 150.

APPEND OBJT.

APPEND VALUES.

 

OBJT-FORM = 'CIRCLE'.

OBJT-FILLCLR = 'GREEN'.

OBJT-TEXTCLR = 'BLUE'.

OBJT-TITLE = 'Sony 1993'.

OBJT-INFO = 'Sony UX400/CD, Sales in 1993'.

VALUES-P1 = 80.

VALUES-P2 = 34.

VALUES-P3 = 23000.

VALUES-P4 = 80. "// Line to itself

VALUES-P5 = 34.

VALUES-P6 = 90.

VALUES-P7 = 370.

VALUES-P8 = 47.

VALUES-P9 = 165.

APPEND OBJT.

APPEND VALUES.

 

AREA_TAB-FORM = 'RECTANGLE'.

AREA_TAB-FILLCLR = 'RED'.

AREA_TAB-XFROM = '10'.

AREA_TAB-YFROM = '70'.

AREA_TAB-XTO = '40'.

AREA_TAB-YTO = '90'.

AREA_TAB-TITLE = 'Winner takes all'.

APPEND AREA_TAB.

 

LOOP AT OBJT.

WRITE: / OBJT-TITLE(20).

SAVE = SY-TABIX.

READ TABLE VALUES INDEX SAVE.

WRITE 25 VALUES-P3.

ENDLOOP.

 

AT PF08.

 

CALL FUNCTION 'GRAPH_PORT'

EXPORTING

TITLE_TITLE = 'Trend-Portfolio for Sony and Clarion Radio'

TITLE_INFO = 'The two objects over several years'

TITLE_TEXTCLR = 'YELLOW'

TITLE_BACKCLR = 'DARKGRAY'

TITLE_SIZE = '2'

FRM_BACKCLR = 'GRAY'

FRM_CORDCLR = 'WHITE'

FRM_SCALCLR = 'WHITE'

FRM_SCALMOD = 'LONGDASH'

FRM_GRIDX = '10'

FRM_GRIDY = '10'

FRM_SHADOW = 'X'

OBJ_XVAL = '0'

OBJ_YVAL = '1'

OBJ_SVAL = '2'

OBJ_XARR = '3'

OBJ_YARR = '4'

TABLES

AXIS = AXIS

COL_TEXT = COL_TEXT

OBJT = OBJT

VALUES = VALUES

AREA_TAB = AREA_TAB.