Автор Тема: Прграмма для вывода графиков 2D/3D/4D  (Прочитано 6198 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Прграмма для вывода графиков 2D/3D/4D
« : Октябрь 22, 2008, 05:21:56 pm »
В общем программа пример для вывода графиков по данным. Не знаю почему ее нет в 6.0, но в 4.6С точно пока есть, в принципе попробовал, без проблем импортируется в 6.0 и даже работает, так что пусть тут полежит, мало ли... больше не будет где 4.6 посмотреть. Короче, абаперу на заметку  ;)
Код: You are not allowed to view links. Register or Login
REPORT REKH0004.
*{description
*----------------------------------------------------------------------*
* Example with call of SAP-business-graphics via function-module 290191
*----------------------------------------------------------------------*
*}

DATA: BEGIN OF DATA OCCURS 1,
        P TYPE P,
      END OF DATA.

*--- options-table ----------------------------------------------------*
DATA: BEGIN OF OPTS OCCURS 1,
         C(80) TYPE C,
      END OF OPTS.

DATA: BEGIN OF TDIM1 OCCURS 1,
         C(80) TYPE C,
      END OF TDIM1.

DATA: BEGIN OF TDIM2 OCCURS 1,
         C(80) TYPE C,
      END OF TDIM2.

DATA: BEGIN OF TDIM3 OCCURS 1,
         C(80) TYPE C,
      END OF TDIM3.

DATA: BEGIN OF MAX OCCURS 1,
         D1(3) TYPE P VALUE 4,
         D2(3) TYPE P VALUE 5,
         D3(3) TYPE P VALUE 6,
      END OF MAX.

DATA: TYEAR1(5) VALUE '#1991',
      TYEAR2(5) VALUE '#1992',
      TYEAR3(5) VALUE '#1993',
      TYEAR4(5) VALUE '#1994'.

DATA: TPROD1(9),
      TPROD2(9),
      TPROD3(9),
      TPROD4(9),
      TPROD5(9).

TPROD1 = TEXT-P01.
TPROD2 = TEXT-P02.
TPROD3 = TEXT-P03.
TPROD4 = TEXT-P04.
TPROD5 = TEXT-P05.

DATA: TLAND1(20),
      TLAND2(20),
      TLAND3(20),
      TLAND4(20),
      TLAND5(20),
      TLAND6(20).

TLAND1 = TEXT-L01.
TLAND2 = TEXT-L02.
TLAND3 = TEXT-L03.
TLAND4 = TEXT-L04.
TLAND5 = TEXT-L05.
TLAND6 = TEXT-L06.

DATA: INDEX     LIKE  SY-INDEX.
DATA: MAXD(3)    TYPE  P.
DATA: TYP.

FIELD-SYMBOLS: <F>.

SET PF-STATUS 'GRAF'.

PERFORM FILL_DATA.
MAXD = MAX-D1 * MAX-D2.
*{listdisplay
*----------------------------------------------------------------------*
* display of a list:                                                   *
* for 5 countries each 4 colums (years) and 5 lines (products)
*----------------------------------------------------------------------*
*}
WRITE: / TLAND1.
INDEX = 1.
PERFORM LISTE.
*----------------------------------------------------------------------*

SKIP.
ULINE.
WRITE: / TLAND2.
INDEX = MAXD + 1.
PERFORM LISTE.

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

NEW-PAGE.
WRITE: / TLAND3.
INDEX = 2 * MAXD + 1.
PERFORM LISTE.

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

SKIP.
ULINE.
WRITE: / TLAND4.
INDEX = 3 * MAXD + 1.
PERFORM LISTE.

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

NEW-PAGE.
WRITE: / TLAND5.
INDEX = 4 * MAXD + 1.
PERFORM LISTE.

*----------------------------------------------------------------------*
SKIP.
ULINE.
WRITE: / TLAND6.
INDEX = 5 * MAXD + 1.
PERFORM LISTE.


*----------------------------------------------------------------------*
* PF05: 4D-graphic, general function-module                            *
*----------------------------------------------------------------------*
AT PF05.
  REFRESH OPTS.
*--- first screen: selection ------------------------------------------*
  WRITE 'FIFRST = PU' TO OPTS-C. APPEND OPTS.
*--- 2D-graphic-type: perspective bars --------------------------------*
  WRITE 'P2TYPE = TD' TO OPTS-C. APPEND OPTS.
*--- kind of colours: regular  ----------------------------------------*
  WRITE 'P3CTYP = PL' TO OPTS-C. APPEND OPTS.

*--- dimension 1
  REFRESH TDIM1.
  MOVE TYEAR1 TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR2 TO TDIM1.
  APPEND TDIM1.
  MOVE SPACE  TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR4 TO TDIM1.
  APPEND TDIM1.

*--- dimension 2
  REFRESH TDIM2.
  MOVE SPACE  TO TDIM2.
  APPEND TDIM2.
  MOVE TPROD2 TO TDIM2.
  APPEND TDIM2.
  MOVE TPROD3 TO TDIM2.
  APPEND TDIM2.
  MOVE TPROD4 TO TDIM2.
  APPEND TDIM2.
  MOVE SPACE  TO TDIM2.
  APPEND TDIM2.

*--- dimension 3
  REFRESH TDIM3.
  MOVE TLAND1 TO TDIM3.
  APPEND TDIM3.
  MOVE SPACE  TO TDIM3.
  APPEND TDIM3.
  MOVE TLAND3 TO TDIM3.
  APPEND TDIM3.
  MOVE TLAND4 TO TDIM3.
  APPEND TDIM3.
  MOVE SPACE  TO TDIM3.
  APPEND TDIM3.
  MOVE SPACE  TO TDIM3.
  APPEND TDIM3.

  CALL FUNCTION 'GRAPH_MATRIX'
       EXPORTING
            TITL  = TEXT-VGL
            VALT  = 'DM'
            DIM1  = TEXT-J00
            DIM2  = TEXT-P00
            DIM3  = TEXT-L00
       TABLES
            DATA  = DATA
            TDIM1 = TDIM1
            TDIM2 = TDIM2
            TDIM3 = TDIM3
            OPTS  = OPTS.

*----------------------------------------------------------------------*
* PF06: 3D-graphic general function-module                             *
*----------------------------------------------------------------------*
AT PF06.
  REFRESH OPTS.
*--- first screen: selection ------------------------------------------*
  WRITE 'FIFRST = PU' TO OPTS-C. APPEND OPTS.
*--- 2D-graphic-Type: perspective bars --------------------------------*
  WRITE 'P2TYPE = TD' TO OPTS-C. APPEND OPTS.
*--- kind of colours: regular -----------------------------------------*
  WRITE 'P3CTYP = PL' TO OPTS-C. APPEND OPTS.

*--- dimension 1
  REFRESH TDIM1.
  MOVE TYEAR1 TO TDIM1.
  APPEND TDIM1.
  MOVE SPACE  TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR3 TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR4 TO TDIM1.
  APPEND TDIM1.

*--- dimension 2
  REFRESH TDIM2.
  MOVE TPROD1 TO TDIM2.
  APPEND TDIM2.
  MOVE SPACE  TO TDIM2.
  APPEND TDIM2.
  MOVE TPROD3 TO TDIM2.
  APPEND TDIM2.
  MOVE SPACE  TO TDIM2.
  APPEND TDIM2.
  MOVE TPROD5 TO TDIM2.
  APPEND TDIM2.

  REFRESH TDIM3.

  CALL FUNCTION 'GRAPH_MATRIX'
       EXPORTING
            TITL  = TEXT-VGL
            VALT  = 'DM'
            DIM1  = TEXT-J00
            DIM2  = TEXT-P00
       TABLES
            DATA  = DATA
            TDIM1 = TDIM1
            TDIM2 = TDIM2
            TDIM3 = TDIM3
            OPTS  = OPTS.
*----------------------------------------------------------------------*
* PF07: 2D-graphic general function-module                             *
*----------------------------------------------------------------------*
AT PF07.
  REFRESH OPTS.
*--- first screen: selection ------------------------------------------*
  WRITE 'FIFRST = PU' TO OPTS-C. APPEND OPTS.
*--- 2D-graphic-type perspective bars ---------------------------------*
  WRITE 'P2TYPE = TD' TO OPTS-C. APPEND OPTS.
*--- kind of colour: regular ------------------------------------------*
  WRITE 'P3CTYP = PL' TO OPTS-C. APPEND OPTS.

*--- dimension 1
  REFRESH TDIM1.
  MOVE TYEAR1 TO TDIM1.
  APPEND TDIM1.
  MOVE SPACE  TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR3 TO TDIM1.
  APPEND TDIM1.
  MOVE TYEAR4 TO TDIM1.
  APPEND TDIM1.

  REFRESH TDIM2.
  REFRESH TDIM3.


  CALL FUNCTION 'GRAPH_MATRIX'
       EXPORTING
            TITL  = TEXT-VGL
            VALT  = 'DM'
            DIM1  = TEXT-J00
       TABLES
            DATA  = DATA
            TDIM1 = TDIM1
            TDIM2 = TDIM2
            TDIM3 = TDIM3
            OPTS  = OPTS.

*---------------------------------------------------------------------*
*       FORM LISTE                                                    *
*---------------------------------------------------------------------*
*       displays a list with turnover figures                         *
*       (products and years)                                          *
*---------------------------------------------------------------------*
FORM LISTE.

  DATA: CNT_MOD LIKE SY-TABIX.
  DATA: CNT_DIV LIKE SY-TABIX.

  WRITE: / TEXT-P00,22 TYEAR1,39 TYEAR2,56 TYEAR3, 73 TYEAR4.
  SKIP 2.
  DO MAXD TIMES.
    READ TABLE DATA INDEX INDEX.
    IF SY-SUBRC NE 0. EXIT. ENDIF.
    INDEX = INDEX + 1.
    CNT_MOD = SY-INDEX MOD MAX-D1.
    CNT_DIV = SY-INDEX DIV MAX-D1.
    IF CNT_MOD EQ 1.
      CASE CNT_DIV.
        WHEN 0.
          WRITE: / TPROD1, ' '.
        WHEN 1.
          WRITE: / TPROD2, ' '.
        WHEN 2.
          WRITE: / TPROD3, ' '.
        WHEN 3.
          WRITE: / TPROD4, ' '.
        WHEN 4.
          WRITE: / TPROD5, ' '.
      ENDCASE.
    ENDIF.
    WRITE: DATA-P.
  ENDDO.

ENDFORM.

*---------------------------------------------------------------------*
*       FORM FILL_DATA                                                *
*---------------------------------------------------------------------*
*       fills the datatable                                           *
*---------------------------------------------------------------------*
FORM FILL_DATA.

  DATA-P = 153470.
  APPEND DATA.
  DATA-P = 243470.
  APPEND DATA.
  DATA-P = 124567.
  APPEND DATA.
  DATA-P = 179037.
  APPEND DATA.
  DATA-P = 234980.
  APPEND DATA.
  DATA-P = 287513.
  APPEND DATA.
  DATA-P = 253430.
  APPEND DATA.
  DATA-P = 223440.
  APPEND DATA.
  DATA-P =  24567.
  APPEND DATA.
  DATA-P = 180037.
  APPEND DATA.
  DATA-P = 129830.
  APPEND DATA.
  DATA-P = 145530.
  APPEND DATA.
  DATA-P = 132470.
  APPEND DATA.
  DATA-P = 453470.
  APPEND DATA.
  DATA-P =  24456.
  APPEND DATA.
  DATA-P = 119807.
  APPEND DATA.
  DATA-P = 288710.
  APPEND DATA.
  DATA-P = 166656.
  APPEND DATA.
  DATA-P = 300430.
  APPEND DATA.
  DATA-P = 723110.
  APPEND DATA.
  DATA-P =  22767.
  APPEND DATA.
  DATA-P = 195522.
  APPEND DATA.
  DATA-P =  38970.
  APPEND DATA.
  DATA-P =  89635.
  APPEND DATA.
  DATA-P = 166970.
  APPEND DATA.
  DATA-P = 401470.
  APPEND DATA.
  DATA-P =  29967.
  APPEND DATA.
  DATA-P = 112957.
  APPEND DATA.
  DATA-P =  37860.
  APPEND DATA.
  DATA-P =  77450.
  APPEND DATA.
  DATA-P = 253150.
  APPEND DATA.
  DATA-P = 343570.
  APPEND DATA.
  DATA-P = 768867.
  APPEND DATA.
  DATA-P = 236790.
  APPEND DATA.
  DATA-P = 122750.
  APPEND DATA.
  DATA-P = 328760.
  APPEND DATA.
  DATA-P = 292150.
  APPEND DATA.
  DATA-P = 356570.
  APPEND DATA.
  DATA-P = 268867.
  APPEND DATA.
  DATA-P =  36790.
  APPEND DATA.
  DATA-P = 125680.
  APPEND DATA.
  DATA-P = 178893.
  APPEND DATA.
  DATA-P = 333150.
  APPEND DATA.
  DATA-P = 373570.
  APPEND DATA.
  DATA-P = 168867.
  APPEND DATA.
  DATA-P = 226790.
  APPEND DATA.
  DATA-P = 278940.
  APPEND DATA.
  DATA-P = 177784.
  APPEND DATA.
  DATA-P = 234150.
  APPEND DATA.
  DATA-P = 296570.
  APPEND DATA.
  DATA-P = 233867.
  APPEND DATA.
  DATA-P =  16790.
  APPEND DATA.
  DATA-P = 125590.
  APPEND DATA.
  DATA-P = 208760.
  APPEND DATA.
  DATA-P = 113150.
  APPEND DATA.
  DATA-P = 388570.
  APPEND DATA.
  DATA-P = 565867.
  APPEND DATA.
  DATA-P = 211790.
  APPEND DATA.
  DATA-P = 277480.
  APPEND DATA.
  DATA-P = 277489.
  APPEND DATA.
  DATA-P = 53470.
  APPEND DATA.
  DATA-P = 321560.
  APPEND DATA.
  DATA-P = 452456.
  APPEND DATA.
  DATA-P = 174695.
  APPEND DATA.
  DATA-P = 277590.
  APPEND DATA.
  DATA-P = 177490.
  APPEND DATA.
  DATA-P = 153470.
  APPEND DATA.
  DATA-P = 467560.
  APPEND DATA.
  DATA-P = 222456.
  APPEND DATA.
  DATA-P = 198695.
  APPEND DATA.
  DATA-P =  99470.
  APPEND DATA.
  DATA-P = 100340.
  APPEND DATA.
  DATA-P = 11470.
  APPEND DATA.
  DATA-P = 323560.
  APPEND DATA.
  DATA-P = 434456.
  APPEND DATA.
  DATA-P = 224695.
  APPEND DATA.
  DATA-P = 277490.
  APPEND DATA.
  DATA-P = 467890.
  APPEND DATA.
  DATA-P = 953470.
  APPEND DATA.
  DATA-P =  67560.
  APPEND DATA.
  DATA-P = 298456.
  APPEND DATA.
  DATA-P =  98695.
  APPEND DATA.
  DATA-P = 577900.
  APPEND DATA.
  DATA-P = 199490.
  APPEND DATA.
  DATA-P = 18470.
  APPEND DATA.
  DATA-P = 390560.
  APPEND DATA.
  DATA-P = 411456.
  APPEND DATA.
  DATA-P =  94695.
  APPEND DATA.
  DATA-P = 182000.
  APPEND DATA.
  DATA-P = 260570.
  APPEND DATA.
  DATA-P = 367356.
  APPEND DATA.
  DATA-P = 231850.
  APPEND DATA.
  DATA-P = 436645.
  APPEND DATA.
  DATA-P = 346650.
  APPEND DATA.
  DATA-P =  82500.
  APPEND DATA.
  DATA-P = 300560.
  APPEND DATA.
  DATA-P = 467109.
  APPEND DATA.
  DATA-P = 161850.
  APPEND DATA.
  DATA-P = 356470.
  APPEND DATA.
  DATA-P = 198840.
  APPEND DATA.
  DATA-P = 199000.
  APPEND DATA.
  DATA-P = 340570.
  APPEND DATA.
  DATA-P = 127356.
  APPEND DATA.
  DATA-P = 591850.
  APPEND DATA.
  DATA-P = 287460.
  APPEND DATA.
  DATA-P = 299770.
  APPEND DATA.
  DATA-P =  12500.
  APPEND DATA.
  DATA-P = 230560.
  APPEND DATA.
  DATA-P = 437109.
  APPEND DATA.
  DATA-P = 191850.
  APPEND DATA.
  DATA-P =  36780.
  APPEND DATA.
  DATA-P =  78789.
  APPEND DATA.
  DATA-P = 282000.
  APPEND DATA.
  DATA-P = 270570.
  APPEND DATA.
  DATA-P = 567356.
  APPEND DATA.
  DATA-P =  31850.
  APPEND DATA.
  DATA-P = 92410.
  APPEND DATA.
  DATA-P = 121350.
  APPEND DATA.
  DATA-P = 67356.
  APPEND DATA.
  DATA-P = 431891.
  APPEND DATA.

ENDFORM.
Все что нужно после импорта в свою Z-программу, это создать GUI-статус с именем GRAF и такими кнопками как на рисунке в примере.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Прграмма для вывода графиков 2D/3D/4D
« Ответ #1 : Октябрь 22, 2008, 05:25:48 pm »
Примеры того что выводит