根据内表数据做图表

制作图表有两种方法:

1)调用 GRAPH_MATRIX_2D,根据内表数据做2维图,内表的第一个字段是key

DATABEGIN OF gt_itab OCCURS 0,
        stu_name TYPE LENGTH 20,
        data1 TYPE f,
        data2 TYPE f,
        data3 TYPE f,
        data4 TYPE f,
        data5 TYPE f,
        data6 TYPE f,
END OF gt_itab.

DATABEGIN OF gt_options OCCURS 0,
        option TYPE LENGTH 20,
       END OF gt_options.
DATABEGIN OF gt_cols OCCURS 0,
      col_name TYPE LENGTH 15,
      END OF gt_cols.

START-OF-SELECTION.
  PERFORM sub_fill_data.
  PERFORM sub_write_chart.


*&---------------------------------------------------------------------*
*&      Form  SUB_FILL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_fill_data .
  gt_itab-stu_name 'ZhangSan'.
  gt_itab-data1 '70.5'.
*  gt_itab-data2 = '86.5'.
*  gt_itab-data3 = '60'.
*  gt_itab-data4 = '68'.
*  gt_itab-data5 = '92.5'.
*  gt_itab-data6 = '83'.
  APPEND gt_itab.

  gt_itab-stu_name 'LiSi'.
  gt_itab-data1 '45.5'.
*  gt_itab-data2 = '53'.
*  gt_itab-data3 = '58'.
*  gt_itab-data4 = '60.5'.
*  gt_itab-data5 = '60'.
*  gt_itab-data6 = '65'.
  APPEND gt_itab.

  gt_itab-stu_name 'WangWu'.
  gt_itab-data1 '76.5'.
*  gt_itab-data2 = '78.5'.
*  gt_itab-data3 = '83.5'.
*  gt_itab-data4 = '72'.
*  gt_itab-data5 = '68'.
*  gt_itab-data6 = '74'.
  APPEND gt_itab.

  gt_itab-stu_name 'ZhaoLiu'.
  gt_itab-data1 '70'.
*  gt_itab-data2 = '80'.
*  gt_itab-data3 = '75'.
*  gt_itab-data4 = '69'.
*  gt_itab-data5 = '65'.
*  gt_itab-data6 = '78'.
  APPEND gt_itab.

  gt_itab-stu_name 'SunQi'.
  gt_itab-data1 '92'.
*  gt_itab-data2 = '95'.
*  gt_itab-data3 = '91'.
*  gt_itab-data4 = '98'.
*  gt_itab-data5 = '98.5'.
*  gt_itab-data6 = '99.5'.
  APPEND gt_itab.

  gt_itab-stu_name 'ZhouBa'.
  gt_itab-data1 '75'.
*  gt_itab-data2 = '77'.
*  gt_itab-data3 = '80'.
*  gt_itab-data4 = '83'.
*  gt_itab-data5 = '75'.
*  gt_itab-data6 = '86'.
  APPEND gt_itab.

  gt_itab-stu_name 'LiuJiu'.
  gt_itab-data1 '30'.
*  gt_itab-data2 = '25.5'.
*  gt_itab-data3 = '22.5'.
*  gt_itab-data4 = '28'.
*  gt_itab-data5 = '35'.
*  gt_itab-data6 = '30'.
  APPEND gt_itab.
  gt_options-option 'P2TYPE = LN'.
  APPEND gt_options.
ENDFORM.                    " SUB_FILL_DATA

*&---------------------------------------------------------------------*
*&      Form  SUB_WRITE_CHART
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_write_chart .
*  CALL FUNCTION 'GRAPH_MATRIX_3D'
*    EXPORTING
*      col1   = 'JANUARY'
*      col2   = 'FEBRUARY'
*      col3   = 'MARCH'
*      col4   = 'APRIL'
*      col5   = 'MAY'
*      col6   = 'June'
*      titl   = 'Students exam results chart'
*    TABLES
*      data   = gt_itab[]
*      opts   = gt_options
*    EXCEPTIONS
*      OTHERS = 1.

  CALL FUNCTION 'GRAPH_MATRIX_2D'
    TABLES
      data              gt_itab[]
      opts              gt_options
      tcol              gt_cols[]
   EXCEPTIONS
     COL_INVALID       1
     OPT_INVALID       2
     OTHERS            3
            .
  IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " SUB_WRITE_CHART

 

 

2)调用GRAPH_MATRIX_3D 做3维图,最多6个column

DATABEGIN OF gt_itab OCCURS 0,
        stu_name TYPE LENGTH 20,
        data1 TYPE f,
        data2 TYPE f,
        data3 TYPE f,
        data4 TYPE f,
        data5 TYPE f,
        data6 TYPE f,
END OF gt_itab.

DATABEGIN OF gt_options OCCURS 0,
        option TYPE LENGTH 20,
       END OF gt_options.
DATABEGIN OF gt_cols OCCURS 0,
      col_name TYPE LENGTH 15,
      END OF gt_cols.

START-OF-SELECTION.
  PERFORM sub_fill_data.
  PERFORM sub_write_chart.


*&---------------------------------------------------------------------*
*&      Form  SUB_FILL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_fill_data .
  gt_itab-stu_name 'ZhangSan'.
  gt_itab-data1 '70.5'.
  gt_itab-data2 '86.5'.
  gt_itab-data3 '60'.
  gt_itab-data4 '68'.
  gt_itab-data5 '92.5'.
  gt_itab-data6 '83'.
  APPEND gt_itab.

  gt_itab-stu_name 'LiSi'.
  gt_itab-data1 '45.5'.
  gt_itab-data2 '53'.
  gt_itab-data3 '58'.
  gt_itab-data4 '60.5'.
  gt_itab-data5 '60'.
  gt_itab-data6 '65'.
  APPEND gt_itab.

  gt_itab-stu_name 'WangWu'.
  gt_itab-data1 '76.5'.
  gt_itab-data2 '78.5'.
  gt_itab-data3 '83.5'.
  gt_itab-data4 '72'.
  gt_itab-data5 '68'.
  gt_itab-data6 '74'.
  APPEND gt_itab.

  gt_itab-stu_name 'ZhaoLiu'.
  gt_itab-data1 '70'.
  gt_itab-data2 '80'.
  gt_itab-data3 '75'.
  gt_itab-data4 '69'.
  gt_itab-data5 '65'.
  gt_itab-data6 '78'.
  APPEND gt_itab.

  gt_itab-stu_name 'SunQi'.
  gt_itab-data1 '92'.
  gt_itab-data2 '95'.
  gt_itab-data3 '91'.
  gt_itab-data4 '98'.
  gt_itab-data5 '98.5'.
  gt_itab-data6 '99.5'.
  APPEND gt_itab.

  gt_itab-stu_name 'ZhouBa'.
  gt_itab-data1 '75'.
  gt_itab-data2 '77'.
  gt_itab-data3 '80'.
  gt_itab-data4 '83'.
  gt_itab-data5 '75'.
  gt_itab-data6 '86'.
  APPEND gt_itab.

  gt_itab-stu_name 'LiuJiu'.
  gt_itab-data1 '30'.
  gt_itab-data2 '25.5'.
  gt_itab-data3 '22.5'.
  gt_itab-data4 '28'.
  gt_itab-data5 '35'.
  gt_itab-data6 '30'.
  APPEND gt_itab.
  gt_options-option 'P2TYPE = LN'.
  APPEND gt_options.
ENDFORM.                    " SUB_FILL_DATA

*&---------------------------------------------------------------------*
*&      Form  SUB_WRITE_CHART
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_write_chart .
  CALL FUNCTION 'GRAPH_MATRIX_3D'
    EXPORTING
      col1   'JANUARY'
      col2   'FEBRUARY'
      col3   'MARCH'
      col4   'APRIL'
      col5   'MAY'
      col6   'June'
      titl   'Students exam results chart'
    TABLES
      data   gt_itab[]
      opts   gt_options
    EXCEPTIONS
      OTHERS 1.

*  CALL FUNCTION 'GRAPH_MATRIX_2D'
*    TABLES
*      data              = gt_itab[]
*      opts              = gt_options
*      tcol              = gt_cols[]
*   EXCEPTIONS
*     COL_INVALID       = 1
*     OPT_INVALID       = 2
*     OTHERS            = 3
*            .
*  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

ENDFORM.                    " SUB_WRITE_CHART

你可能感兴趣的:(Graph,Matrix)