Calling SAP Hierarchy Graphics and Others, With Dialog 

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

PROGRAM G_HIER_2.

 

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

* *

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

* This Report starts the SAP Hierarchy system. *

* *

* It demonstrates several dialogs, depending on which PF key*

* is pressed. Each dialog starts one or more SAP Graphics *

* programs. Possible dialogs are: *

* PF10: Start SAP Hierarchy: Node selection opens text *

* window *

* PF11: Start SAP Hierarchy: Node selection opens 2nd HIER*

* window that displays a sub-tree of the hierarchy. *

* Node selection in the 2nd HIER window has no *

* effect. *

* PF12: Start SAP Hierarchy: Node selection opens a window*

* for SAP Business Graphics. *

* PF13: Start SAP Hierarchy: Node selection opens a window*

* for SAP Statistics. Selection of a curve point in *

* the statistics window opens a text window. *

* PF14: Start SAP Hierarchy: Node selection opens four *

* different windows: *

* 1. SAP Hierarchy, showing a sub-tree of the *

* hierarchy *

* 2. SAP Statistics *

* 3. SAP Business Graphics *

* 4. SAP Text Matrix *

* Selection of a curve point in the statistics *

* window opens a text window. *

* The description of each dialog is found with the code for *

* the individual PF keys (PF10-PF14). *

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

DATA: BEGIN OF HIER OCCURS 1,

ELKEY(11),

UEKEY(11),

ETEXT(20),

VAL1 TYPE P,

VAL2 TYPE P,

END OF HIER.

 

DATA: BEGIN OF PHIER OCCURS 1,

ELKEY(11),

UEKEY(11),

ETEXT(20),

END OF PHIER.

DATA: BEGIN OF BUSGDATA OCCURS 1,

ELKEY(11),

VAL1 TYPE P,

VAL2 TYPE P,

VAL3 TYPE P,

VAL4 TYPE P,

END OF BUSGDATA.

DATA: BEGIN OF MTEXT OCCURS 1,

TEXT(100),

END OF MTEXT.

 

DATA: RBUFF(64), M_TYP(1), RWNID(5), STAT_TYP.

DATA: INDEX LIKE SY-INDEX.

DATA: HIER1_STAT, HIER2_STAT.

DATA: TEMA_STAT, TEMA1_STAT.

DATA: STAT_STAT, BUSG_STAT..

DATA: NODE(64), KURVE(5), PUNKT(5).

 

DATA: BEGIN OF TCOL OCCURS 1,

TEXT(20),

END OF TCOL,

BEGIN OF GOPTS OCCURS 1,

C(20),

END OF GOPTS.

 

SET PF-STATUS 'GRAF'.

 

HIER-UEKEY = SPACE. "// Fill the data

HIER-ELKEY = '10000000001'.

HIER-ETEXT = 'El.1 - S1'.

HIER-VAL1 = 10.

HIER-VAL2 = 15.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 1234.

BUSGDATA-VAL2 = 2345.

BUSGDATA-VAL3 = 3456.

BUSGDATA-VAL4 = 4567.

APPEND BUSGDATA.

 

HIER-UEKEY = '10000000001'.

HIER-ELKEY = '11000000002'.

HIER-ETEXT = 'El.1 - S2'.

HIER-VAL1 = 20.

HIER-VAL2 = 25.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 3534.

BUSGDATA-VAL2 = 7845.

BUSGDATA-VAL3 = 1256.

BUSGDATA-VAL4 = 3467.

APPEND BUSGDATA.

 

HIER-UEKEY = '10000000001'.

HIER-ELKEY = '12000000002'.

HIER-ETEXT = 'El.2 - S2'.

HIER-VAL1 = 30.

HIER-VAL2 = 35.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 1734.

BUSGDATA-VAL2 = 2345.

BUSGDATA-VAL3 = 4256.

BUSGDATA-VAL4 = 3767.

APPEND BUSGDATA.

 

HIER-UEKEY = '10000000001'.

HIER-ELKEY = '13000000002'.

HIER-ETEXT = 'El.3 - S2'.

HIER-VAL1 = 40.

HIER-VAL2 = 45.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 8734.

BUSGDATA-VAL2 = 1345.

BUSGDATA-VAL3 = 5256.

BUSGDATA-VAL4 = 3767.

APPEND BUSGDATA.

 

HIER-UEKEY = '10000000001'.

HIER-ELKEY = '14000000002'.

HIER-ETEXT = 'El.4 - S2'.

HIER-VAL1 = 50.

HIER-VAL2 = 55.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 5890.

BUSGDATA-VAL2 = 3245.

BUSGDATA-VAL3 = 1786.

BUSGDATA-VAL4 = 3647.

APPEND BUSGDATA.

 

HIER-UEKEY = '11000000002'.

HIER-ELKEY = '11100000003'.

HIER-ETEXT = 'El.11 - S3'.

HIER-VAL1 = 60.

HIER-VAL2 = 65.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 2370.

BUSGDATA-VAL2 = 2845.

BUSGDATA-VAL3 = 1286.

BUSGDATA-VAL4 = 7311.

APPEND BUSGDATA.

 

HIER-UEKEY = '11000000002'.

HIER-ELKEY = '11200000003'.

HIER-ETEXT = 'El.12 - S3'.

HIER-VAL1 = 70.

HIER-VAL2 = 75.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 1210.

BUSGDATA-VAL2 = 2165.

BUSGDATA-VAL3 = 3290.

BUSGDATA-VAL4 = 1311.

APPEND BUSGDATA.

 

HIER-UEKEY = '11000000002'.

HIER-ELKEY = '11300000003'.

HIER-ETEXT = 'El.13 - S3'.

HIER-VAL1 = 80.

HIER-VAL2 = 85.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 4578.

BUSGDATA-VAL2 = 2789.

BUSGDATA-VAL3 = 5412.

BUSGDATA-VAL4 = 4678.

APPEND BUSGDATA.

 

HIER-UEKEY = '12000000002'.

HIER-ELKEY = '12100000003'.

HIER-ETEXT = 'El.21 - S3'.

HIER-VAL1 = 90.

HIER-VAL2 = 95.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 4782.

BUSGDATA-VAL2 = 3571.

BUSGDATA-VAL3 = 1672.

BUSGDATA-VAL4 = 2690.

APPEND BUSGDATA.

 

HIER-UEKEY = '12000000002'.

HIER-ELKEY = '12200000003'.

HIER-ETEXT = 'El.22 - S3'.

HIER-VAL1 = 18.

HIER-VAL2 = 24.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 3710.

BUSGDATA-VAL2 = 3125.

BUSGDATA-VAL3 = 5178.

BUSGDATA-VAL4 = 3730.

APPEND BUSGDATA.

 

HIER-UEKEY = '12200000003'.

HIER-ELKEY = '12210000004'.

HIER-ETEXT = 'El.221-S4'.

HIER-VAL1 = 37.

HIER-VAL2 = 45.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 2710.

BUSGDATA-VAL2 = 4125.

BUSGDATA-VAL3 = 1278.

BUSGDATA-VAL4 = 1730.

APPEND BUSGDATA.

 

HIER-UEKEY = '12200000003'.

HIER-ELKEY = '12220000004'.

HIER-ETEXT = 'El.222-S4'.

HIER-VAL1 = 67.

HIER-VAL2 = 72.

APPEND HIER.

BUSGDATA-ELKEY = HIER-ELKEY.

BUSGDATA-VAL1 = 2710.

BUSGDATA-VAL2 = 1125.

BUSGDATA-VAL3 = 4178.

BUSGDATA-VAL4 = 3570.

APPEND BUSGDATA.

 

SORT HIER.

LOOP AT HIER.

WRITE: / HIER-ELKEY,20 HIER-UEKEY,50 HIER-ETEXT.

ENDLOOP.

 

 

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

* PF10 *

* *

* Start up an SAP Hierarchy window *

* *

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

* When the user selects (clicks on) a node, a text window *

* appears. *

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

* The dialog ends when the SAP Hierarchy is closed by the *

* user. *

* Closing the text window will lead to a restart next time. *

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

 

 

AT PF10.

CLEAR HIER1_STAT.

TEMA_STAT = '2'. "// Start and do not

"// wait

DO.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

NLVAL = '2/1'

TTEXT = SY-TITLE

NDIMS = 4

SMODE = 2

VTXT1 = 'Display Criterion 1'

"// Criterion 1 has

VAL11 = 20 "// 2 threshold values

"// and

VAL12 = 50 "// 3 colors.

COL11 = 'DARKBLUE'

COL12 = 'DARKYELLOW'

COL13 = 'RED'

VTXT2 = 'Display Criterion 2'

"// Criterion 2 has

VAL21 = 30 "// 2 threshold values

"// and

VAL22 = 60 "// 3 colors.

COL21 = 'BLUE'

COL22 = 'YELLOW'

COL23 = 'BLACK'

NTEXT = 'WHITE'

STAT = HIER1_STAT

SUPER = 'X'

IMPORTING

NODES = HIER-ELKEY

M_TYP = M_TYP

TABLES

DATA = HIER.

HIER1_STAT = '4'. "// Next time, just wait

CASE M_TYP.

WHEN 'D'.

EXIT. "// Exit condition

WHEN ' '.

WHEN '0'.

"// From non-Hier window

"// It must be from text

"// window, and must

"// have been 'Q'.

TEMA_STAT = '2'. "// Restart TEMA next

"// time

WHEN 'Q'.

WHEN 'I'.

READ TABLE HIER WITH KEY HIER-ELKEY.

READ TABLE BUSGDATA WITH KEY HIER-ELKEY.

PERFORM DISPLAY_TEXT TABLES MTEXT USING HIER BUSGDATA.

CALL FUNCTION 'TEXT_MATRIX'

EXPORTING

TTEXT = 'Info Window'

RSIZE = '6'

CSIZE = '40'

STAT = TEMA_STAT

TABLES

DATA = MTEXT.

TEMA_STAT = '5'. "// Reload data next

"// time

ENDCASE.

ENDDO.

 

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

* PF11 *

* Start an SAP Hierarchy window. *

* *

* When the user clicks on a node, a second SAP Hierarchy *

* window is opened in which a sub-tree of the hierarchy is *

* displayed. *

* Clicking on nodes in the second window has no effect. *

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

* The dialog ends when the user closes the first SAP Hierarchy*

* window. If the user closes the second HIER window first, SAP*

* Hierarchy is re-started anew (in a second window) if the *

* user clicks on further hierarchy nodes. *

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

 

AT PF11.

CLEAR HIER1_STAT. "// Start and wait

HIER2_STAT = '2'. "// Start and do not

"// wait

DO.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

WINID = 'HIER1'

TTEXT = SY-TITLE

VTXT1 = 'Display Criterion 1'

"// Criterion 1 has

VAL11 = 20 "// 2 threshold values

VAL12 = 50 "// 3 colors

COL11 = 'DARKBLUE'

COL12 = 'DARKYELLOW'

COL13 = 'RED'

VTXT2 = 'Display Criterion 2'

"// Criterion 2 has no

STAT = HIER1_STAT "// threshold values

SMODE = 2

NTEXT = 'WHITE'

SUPER = 'X'

IMPORTING

NODES = HIER-ELKEY

M_TYP = M_TYP

RWNID = RWNID

TABLES

DATA = HIER.

HIER1_STAT = '4'.

CASE M_TYP.

WHEN 'D'.

EXIT.

WHEN '0'.

WHEN 'Q'. "// HIER2 has been

"// closed.

"// (Closing HIER1 would

"// produce a 'D'

"// message

"// due to using

"// SUPER.)

HIER2_STAT = '2'. "// Restart HIER2 next

"// time

WHEN 'I'. "// Msg. from an SAP

"// Hierarchy window

"// (HIER1

"// or HIER2)

IF RWNID EQ 'HIER1'.

PERFORM DISPLAY_NODES USING HIER-ELKEY.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

TTEXT = 'Partial Hierarchy Display'

SMODE = '2'

STAT = HIER2_STAT

WINID = 'HIER2'

TABLES

DATA = PHIER.

HIER2_STAT = '5'. "// Reload data next

"// time

ELSE.

"// Ignore any clicking

"// in HIER2 window

ENDIF.

ENDCASE.

ENDDO.

 

 

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

* PF12 *

* *

* Start an SAP Hierarchy window *

* *

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

* When the user clicks on a node, an SAP Business Graphics *

* window appears to display its data. *

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

* The dialog ends when the user closes the hierarchy window. *

* If the user closes the SAP Business Graphic windows first, *

* it cannot be opened again. That is, further selection of *

* nodes *

* (after closing a previous BUSG window) will not result in *

* new SAP Business Graphics windows being opened. *

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

 

AT PF12.

TCOL = 'Column 1'. APPEND TCOL.

TCOL = 'Column 2'. APPEND TCOL.

TCOL = 'Column 3'. APPEND TCOL.

TCOL = 'Column 4'. APPEND TCOL.

CLEAR HIER1_STAT.

BUSG_STAT = '2'. "// Start and do not

"// wait

DO.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

TTEXT = SY-TITLE

NDIMS = 4

SMODE = 2

VTXT1 = 'Display Criterion 1'

VAL11 = 20

VAL12 = 50

COL11 = 'DARKBLUE'

COL12 = 'DARKYELLOW'

COL13 = 'RED'

VTXT2 = 'Display Criterion 2'

NTEXT = 'WHITE'

STAT = HIER1_STAT

SUPER = 'X'

IMPORTING

NODES = HIER-ELKEY

M_TYP = M_TYP

TABLES

DATA = HIER.

HIER1_STAT = '4'. "// Next time wait

CASE M_TYP.

WHEN 'D'.

EXIT.

WHEN 'I'.

READ TABLE HIER WITH KEY HIER-ELKEY.

READ TABLE BUSGDATA WITH KEY HIER-ELKEY.

CALL FUNCTION 'GRAPH_MATRIX_2D'

EXPORTING

TITL = HIER-ETEXT

NROW = SY-TABIX

STAT = BUSG_STAT

TABLES

DATA = BUSGDATA

OPTS = GOPTS

TCOL = TCOL.

BUSG_STAT = '5'.

WHEN '0'. "// Must be from BUSG

"// Must be 'Q'

"// Do NOT restart BUSG

"// here.

ENDCASE.

ENDDO.

 

 

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

* PF13 *

* *

* Start an SAP Hierarchy window *

* *

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

* When the user clicks on a node, an SAP Statistics window *

* appears to display its data. If the user then clicks on a *

* point in a statistics curve, a text window appears. *

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

* The dialog ends when the user closes the hierarchy window. *

* If the user closes either the statistics or text window, the*

* corresponding program (Statistics or Text Matrix) is re- *

* started anew the next time the user clicks on nodes or *

* curve points. *

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

 

 

AT PF13.

DATA: BEGIN OF STATDATA OCCURS 1,

X TYPE P,

Y TYPE P,

END OF STATDATA.

CLEAR HIER1_STAT.

STAT_STAT = '2'. "// Start and do not

"// wait

TEMA_STAT = '2'. "// Start and do not

"// wait

DO.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

TTEXT = SY-TITLE

NDIMS = 4

SMODE = 2

VTXT1 = 'Display Criterion 1'

VAL11 = 20

VAL12 = 50

COL11 = 'DARKBLUE'

COL12 = 'DARKYELLOW'

COL13 = 'RED'

VTXT2 = 'Display Criterion 2'

NTEXT = 'WHITE'

STAT = HIER1_STAT

SUPER = 'X'

IMPORTING

NODES = NODE

RBUFF = RBUFF

RWNID = RWNID

M_TYP = M_TYP

TABLES

DATA = HIER.

HIER1_STAT = '4'. "// Next time wait

 

CASE M_TYP.

WHEN 'D'.

EXIT.

WHEN 'Q'.

WHEN ' '.

WHEN 'I'.

MOVE NODE TO HIER-ELKEY.

READ TABLE HIER WITH KEY HIER-ELKEY.

READ TABLE BUSGDATA WITH KEY HIER-ELKEY.

REFRESH GOPTS.

GOPTS = '$ 4'. APPEND GOPTS.

GOPTS = 'C_ART=1'. APPEND GOPTS.

GOPTS = 'CTYPE=3'. APPEND GOPTS.

GOPTS = 'COLOR=3'. APPEND GOPTS.

GOPTS = 'LTEXT=Monthly Salary'. APPEND GOPTS.

REFRESH STATDATA.

STATDATA-X = 1. STATDATA-Y = BUSGDATA-VAL1.

APPEND STATDATA.

STATDATA-X = 2. STATDATA-Y = BUSGDATA-VAL2.

APPEND STATDATA.

STATDATA-X = 3. STATDATA-Y = BUSGDATA-VAL3.

APPEND STATDATA.

STATDATA-X = 4. STATDATA-Y = BUSGDATA-VAL4.

APPEND STATDATA.

MOVE 'Additional Info: ' TO NODE.

WRITE HIER-ETEXT TO NODE+17(20).

CALL FUNCTION 'STAT_GRAPH'

EXPORTING

INFORM = 'X'

NOPOS = 'X'

STAT = STAT_STAT

TTEXT = NODE

TAXIS = 'Personnel'

SCALE = 'MAN'

XRNGU = 5

XTCKS = '6'

YRNGU = 10000

YTCKS = '11'

TABLES

DATA = STATDATA

OPTS = GOPTS.

STAT_STAT = '5'.

WHEN '0'. "// Some other window

IF RWNID(4) = 'STAT'. "// from Statistics

"// window

CALL FUNCTION 'STAT_GRAPH'

EXPORTING

STAT = 'R'

INBUF = RBUFF

IMPORTING

KURVE = KURVE

INDEX = PUNKT

M_TYP = STAT_TYP

TABLES

DATA = STATDATA "// Not used here

OPTS = GOPTS. "// Not used here

IF STAT_TYP = 'I'.

PERFORM DISPLAY_STAT TABLES MTEXT

USING KURVE PUNKT HIER-ETEXT

BUSGDATA.

CALL FUNCTION 'TEXT_MATRIX'

EXPORTING

TTEXT = 'Additional information window'

RSIZE = '4'

CSIZE = '30'

STAT = TEMA_STAT

TABLES

DATA = MTEXT.

TEMA_STAT = '5'. "// Reload data next

"// time

ELSE.

STAT_STAT = '2'. "// Restart STAT next

"// time

ENDIF.

ENDIF.

IF RWNID(4) = 'TEMA'. "// Msg comes text

"// window:

"// it must have been

"// 'Q'.

TEMA_STAT = '2'. "// Restart TEMA next

"// time

ENDIF.

ENDCASE.

ENDDO.

 

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

* PF14 *

* *

* Start up an SAP Hierarchy window. *

* *

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

* User selection of a hierarchy node results in the opening of*

* - an SAP Hierarchy window displaying a partial hierarchy *

* - an SAP Statistics window *

* - an SAP Business Graphics window *

* - an SAP Text Matrix (text) window *

* When the user selects a point in a Statistics window, an *

* additional text window is displayed. *

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

* The dialog ends when the first hierarchy window is closed. *

* Closing any other window (beside the first one) is *

* remembered: *

* if the corresponding programs are requested a second time, *

* they are started anew. *

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

 

AT PF14.

TCOL = 'Column 1'. APPEND TCOL.

TCOL = 'Column 2'. APPEND TCOL.

TCOL = 'Column 3'. APPEND TCOL.

TCOL = 'Column 4'. APPEND TCOL.

CLEAR HIER1_STAT. "// Start, send data and

"// wait

BUSG_STAT = '2'. "// Start and do not

"// wait

STAT_STAT = '2'. "// --"--

HIER2_STAT = '2'. "// --"--

TEMA_STAT = '2'. "// --"--

TEMA1_STAT = '2'. "// --"--

DO.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

TTEXT = SY-TITLE

NDIMS = 4

SMODE = 2

VTXT1 = 'Display Criterion 1'

VAL11 = 20

VAL12 = 50

COL11 = 'DARKBLUE'

COL12 = 'DARKYELLOW'

COL13 = 'RED'

VTXT2 = 'Display Criterion 2'

NTEXT = 'WHITE'

STAT = HIER1_STAT

SUPER = 'X'

WINID = 'HIER1'

IMPORTING

M_TYP = M_TYP

RBUFF = RBUFF

NODES = HIER-ELKEY

RWNID = RWNID

TABLES

DATA = HIER.

HIER1_STAT = '4'.

 

CASE M_TYP.

WHEN 'D'.

EXIT.

WHEN 'Q'. "// Must be from HIER2

"// (since quitting

"// HIER1

"// would cause a 'D'

"// because of using

"// SUPER)

HIER2_STAT = '2'. "// Restart next time

WHEN ' '.

WHEN 'I'.

IF RWNID(5) = 'HIER1'. "// Message from HIER1

MOVE HIER-ELKEY TO NODE.

READ TABLE HIER WITH KEY HIER-ELKEY.

READ TABLE BUSGDATA WITH KEY HIER-ELKEY.

REFRESH GOPTS.

CALL FUNCTION 'GRAPH_MATRIX_2D'

EXPORTING

TITL = HIER-ETEXT

NROW = SY-TABIX

STAT = BUSG_STAT

TABLES

DATA = BUSGDATA

OPTS = GOPTS

TCOL = TCOL.

BUSG_STAT = '5'.

PERFORM DISPLAY_TEXT TABLES MTEXT USING HIER

BUSGDATA.

CALL FUNCTION 'TEXT_MATRIX'

EXPORTING

TTEXT = 'Information window'

RSIZE = '6'

CSIZE = '30'

STAT = TEMA_STAT

TABLES

DATA = MTEXT.

TEMA_STAT = '5'. "// Reload data next

"// time

PERFORM DISPLAY_NODES USING HIER-ELKEY.

CALL FUNCTION 'GRAPH_HIERARCHY'

EXPORTING

TTEXT = 'Partial Hierarchy Display'

SMODE = '2'

STAT = HIER2_STAT

WINID = 'HIER2'

TABLES

DATA = PHIER.

HIER2_STAT = '5'. "// Reload data next

"// time

MOVE NODE TO HIER-ELKEY.

READ TABLE HIER WITH KEY HIER-ELKEY.

REFRESH GOPTS.

GOPTS = '$ 4'. APPEND GOPTS.

GOPTS = 'C_ART=1'. APPEND GOPTS.

GOPTS = 'CTYPE=3'. APPEND GOPTS.

GOPTS = 'COLOR=3'. APPEND GOPTS.

GOPTS = 'LTEXT=Monthly Salary'. APPEND GOPTS.

REFRESH STATDATA.

STATDATA-X = 1. STATDATA-Y = BUSGDATA-VAL1.

APPEND STATDATA.

STATDATA-X = 2. STATDATA-Y = BUSGDATA-VAL2.

APPEND STATDATA.

STATDATA-X = 3. STATDATA-Y = BUSGDATA-VAL3.

APPEND STATDATA.

STATDATA-X = 4. STATDATA-Y = BUSGDATA-VAL4.

APPEND STATDATA.

MOVE 'Additional Info: ' TO NODE.

WRITE HIER-ETEXT TO NODE+17(20).

CALL FUNCTION 'STAT_GRAPH'

EXPORTING

INFORM = 'X'

NOPOS = 'X'

STAT = STAT_STAT

TTEXT = NODE

TAXIS = 'Personnel'

SCALE = 'MAN'

XRNGU = 5

XTCKS = '6'

YRNGU = 10000

YTCKS = '11'

TABLES

DATA = STATDATA

OPTS = GOPTS.

STAT_STAT = '5'.

ELSE. "// Msg must be from

"// HIER2:

"// ignore it.

ENDIF.

WHEN '0'. "// From any non-HIER

"// window

IF RWNID(4) = 'STAT'. "// Msg is from STAT

"// window

CALL FUNCTION 'STAT_GRAPH' "// Reuse RBUFF to fill

EXPORTING "// STAT return

"// parameters

STAT = 'R'

INBUF = RBUFF

IMPORTING

KURVE = KURVE

INDEX = PUNKT

M_TYP = STAT_TYP

TABLES

DATA = STATDATA "// Not used here

OPTS = GOPTS. "// Not used here

IF STAT_TYP = 'I'.

PERFORM DISPLAY_STAT TABLES MTEXT

USING KURVE PUNKT HIER-ETEXT

BUSGDATA.

CALL FUNCTION 'TEXT_MATRIX'

EXPORTING

TTEXT = 'Statistics information window'

RSIZE = '4'

CSIZE = '30'

STAT = TEMA1_STAT

WINID = 'TEMA1'

TABLES

DATA = MTEXT.

TEMA1_STAT = '5'. "// Reload next time

ELSE. "// Must have been a 'Q'

STAT_STAT = '2'. "// Restart next time

ENDIF.

ENDIF.

IF RWNID(4) = 'BUSG'.

"// Must be a 'Q'

"// -message

BUSG_STAT = '2'. "// Restart BUSG next

"// time

ENDIF.

IF RWNID(4) = 'TEMA'.

"// Must be TEMA or

"// TEMA1

IF RWNID EQ 'TEMA1'. "// Restart TEMA1 next

"// time

TEMA1_STAT = '2'.

ELSE.

TEMA_STAT = '2'. "// Restart TEMA next

"// time

ENDIF.

ENDIF.

ENDCASE.

ENDDO.

 

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

* FORM DISPLAY_NODES *

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

FORM DISPLAY_NODES USING ELKEY.

FIELD-SYMBOLS: <1>,<2>.

DATA KEY(11).

DATA S.

MOVE ELKEY TO KEY. "//Save Key !

REFRESH PHIER.

LOOP AT HIER.

IF HIER-ELKEY GE KEY.

ASSIGN KEY+10(1) TO <1>.

ASSIGN HIER-ELKEY+10(1) TO <2>.

IF <2> LE <1> AND S NE SPACE. EXIT. ENDIF.

S = 'X'.

MOVE HIER TO PHIER.

MOVE HIER-ELKEY TO PHIER-ETEXT.

APPEND PHIER.

ENDIF.

ENDLOOP.

ENDFORM.

 

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

* FORM DISPLAY_TEXT *

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

FORM DISPLAY_TEXT TABLES MTEXT USING ETEXT EDATA.

DATA: BEGIN OF TEXT,

ELKEY(11),

UEKEY(11),

ETEXT(20),

VAL1 TYPE P,

VAL2 TYPE P,

END OF TEXT.

DATA: BEGIN OF DATA,

ELKEY(11),

VAL1 TYPE P,

VAL2 TYPE P,

VAL3 TYPE P,

VAL4 TYPE P,

END OF DATA.

DATA FELD(40).

MOVE ETEXT TO TEXT.

MOVE EDATA TO DATA.

REFRESH MTEXT.

MOVE: 'Element: ' TO FELD.

MOVE: TEXT-ELKEY TO FELD+14.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Parent Elem.: ' to FELD.

MOVE: TEXT-UEKEY TO FELD+14.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Label: ' TO FELD.

MOVE: TEXT-ETEXT TO FELD+14.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Value: ' TO FELD.

MOVE: TEXT-VAL1 TO FELD+14(10).

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Column 1: ' TO FELD.

MOVE: DATA-VAL1 TO FELD+14(10).

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Column 2: ' TO FELD.

MOVE: DATA-VAL2 TO FELD+14(10).

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Column 3: ' TO FELD.

MOVE: DATA-VAL3 TO FELD+14(10).

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Column 4: ' TO FELD.

MOVE: DATA-VAL4 TO FELD+14(10).

MOVE FELD TO MTEXT.

APPEND MTEXT.

ENDFORM.

 

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

* FORM DISPLAY_STAT *

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

FORM DISPLAY_STAT TABLES MTEXT USING KURVE PUNKT ETEXT EDATA.

DATA: BEGIN OF DATA,

ELKEY(11),

VAL1 TYPE P,

VAL2 TYPE P,

VAL3 TYPE P,

VAL4 TYPE P,

END OF DATA.

DATA FELD(40).

DATA PU_1.

MOVE EDATA TO DATA.

REFRESH MTEXT.

MOVE: 'Title......: ' TO FELD.

MOVE: ETEXT TO FELD+13.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Curve Nr...: ' TO FELD.

WRITE KURVE TO FELD+13.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Point Nr...: ' TO FELD.

WRITE PUNKT TO FELD+13.

MOVE FELD TO MTEXT.

APPEND MTEXT.

MOVE: 'Value......: ' TO FELD.

PU_1 = PUNKT.

CASE PU_1.

WHEN '1'.

WRITE DATA-VAL1 TO FELD+13(8).

WHEN '2'.

WRITE DATA-VAL2 TO FELD+13(8).

WHEN '3'.

WRITE DATA-VAL3 TO FELD+13(8).

WHEN '4'.

WRITE DATA-VAL4 TO FELD+13(8).

ENDCASE.

MOVE FELD TO MTEXT.

APPEND MTEXT.

ENDFORM.