Hi,
It's a basic Development to display information's in Different-2 charts.
Note: - For display information in chart IGS Server should be active in SAP System.
Input: -
Here, Number of Information's indicates the total number of information which will be display in Chart, as below output Picture,
Height and Width indicates the charts Height and Width and In chart type select the existing chart type.
Based on the selection information will be display as selected selected chart type.
As below picture Displaying the information in PIE_3D chart.
Output: -
Source Code: -
REPORT ZCHART_PRO.
TYPE-POOLS: VRM.
DATA: G_NAME TYPE VRM_ID,
GIT_LIST TYPE VRM_VALUES,
GFL_LIST LIKE LINE OF GIT_LIST.
DATA: g_rfc TYPE char32 VALUE 'IGS_RFC_DEST'.
DATA: cl_html TYPE REF TO cl_gui_html_viewer,
CL_CON TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
cl_chart TYPE REF TO cl_igs_chart,
git_html TYPE w3htmltabtype,
gfl_html TYPE w3html,
git_igs TYPE igs_data_tab,
gfl_igs TYPE igs_data,
g_url TYPE w3url,
g_bool TYPE c,
g_str TYPE string,
g_no TYPE i.
DATA: git_cont TYPE w3param-cont_type,
git_sub TYPE w3param-cont_type,
g_len TYPE i,
git_mine TYPE w3mimetabtype,
git_htm TYPE w3htmltabtype.
DATA: p_no TYPE i,
g_width TYPE i,
g_height TYPE i,
P_CTYPE TYPE CHAR2.
DATA: G_UCOMM TYPE SY-UCOMM.
INITIALIZATION.
CALL METHOD cl_igs_data=>is_registered_type
EXPORTING
destination = g_rfc
type = cl_igs_chart=>interpreter_type
RECEIVING
rval = g_bool
EXCEPTIONS
rfc_communication_error = 1
rfc_system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE 'No "Chart" interpreter installed on IGS' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
CALL SCREEN 9000.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS '9000MENU'.
SET TITLEBAR '9000INFO'.
IF GFL_LIST IS INITIAL.
PERFORM SUB_ADD_CHART_TYPE.
ENDIF.
IF CL_CON IS INITIAL.
CREATE OBJECT cl_con
EXPORTING
container_name = 'HTML'.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
IF cl_html IS INITIAL.
CREATE OBJECT cl_html
EXPORTING
parent = cl_con.
ENDIF.
CALL METHOD CL_HTML->DO_REFRESH.
IF cl_chart IS INITIAL.
CREATE OBJECT cl_chart.
ENDIF.
cl_gfw=>its_rfc_dest = g_rfc.
CALL METHOD cl_html->load_data
EXPORTING
type = git_cont
subtype = git_sub
size = g_len
IMPORTING
assigned_url = g_url
CHANGING
data_table = git_mine
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_general = 2
cntl_error = 3
* html_syntax_notcorrect = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE 'ERROR' TYPE 'E'.
ENDIF.
CONCATENATE '<HTML><HEAD><TITLE>Chart By Praveer</TITLE></HEAD>'
'<BODY BGCOLOR=#DEDEC8>'
'<MAP NAME = CHART>' INTO gfl_html-line.
APPEND gfl_html TO git_html.
APPEND LINES OF git_htm TO git_html.
CONCATENATE '</MAP>'
'<IMG SRC="' g_url '" USEMAP=#CHART BORDER=0>'
'</BODY></HTML>' INTO gfl_html-line.
APPEND gfl_html TO git_html.
CALL METHOD cl_html->load_data
EXPORTING
type = 'TEXT'
subtype = 'HTML'
IMPORTING
assigned_url = g_url
CHANGING
data_table = git_html.
CALL METHOD cl_html->show_url
EXPORTING
url = g_url.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Form SUB_ADD_CHART_TYPE
*&---------------------------------------------------------------------*
form SUB_ADD_CHART_TYPE .
REFRESH: GIT_LIST.
G_NAME = 'P_CTYPE'.
GFL_LIST-KEY = '01'.GFL_LIST-TEXT = 'TREND'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '02'.GFL_LIST-TEXT = 'LINES'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '03'.GFL_LIST-TEXT = 'LINES_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '04'.GFL_LIST-TEXT = 'AREA'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '05'.GFL_LIST-TEXT = 'AREA_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '06'.GFL_LIST-TEXT = 'AREA_STACKED'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '07'.GFL_LIST-TEXT = 'AREA_STACKED_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '08'.GFL_LIST-TEXT = 'BARS'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '09'.GFL_LIST-TEXT = 'BARS_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '10'.GFL_LIST-TEXT = 'BARS_STACKED'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '11'.GFL_LIST-TEXT = 'BARS_STACKED_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '12'.GFL_LIST-TEXT = 'COLS'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '13'.GFL_LIST-TEXT = 'COLS_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '14'.GFL_LIST-TEXT = 'COLS_STACKED'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '15'.GFL_LIST-TEXT = 'COLS_STACKED_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '16'.GFL_LIST-TEXT = 'PIE'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '17'.GFL_LIST-TEXT = 'PIE_3D'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '18'.GFL_LIST-TEXT = 'PIE_EX'.APPEND GFL_LIST TO GIT_LIST.
GFL_LIST-KEY = '19'.GFL_LIST-TEXT = 'PIE_EX_3D'.APPEND GFL_LIST TO GIT_LIST.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = G_NAME
VALUES = GIT_LIST
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2.
endform. " SUB_ADD_CHART_TYPE
*&---------------------------------------------------------------------*
*& Form SET_CHART_TYPE
*&---------------------------------------------------------------------*
form SET_CHART_TYPE .
CASE P_CTYPE.
WHEN '01'.
cl_chart->type = cl_igs_chart=>co_type_TREND.
WHEN '02'.
cl_chart->type = cl_igs_chart=>co_type_LINES.
WHEN '03'.
cl_chart->type = cl_igs_chart=>CO_TYPE_LINES_3D.
WHEN '04'.
cl_chart->type = cl_igs_chart=>co_type_AREA.
WHEN '05'.
cl_chart->type = cl_igs_chart=>co_type_AREA_3D.
WHEN '06'.
cl_chart->type = cl_igs_chart=>co_type_AREA_STACKED.
WHEN '07'.
cl_chart->type = cl_igs_chart=>co_type_AREA_STACKED_3D.
WHEN '08'.
cl_chart->type = cl_igs_chart=>co_type_BARS.
WHEN '09'.
cl_chart->type = cl_igs_chart=>co_type_BARS_3D.
WHEN '10'.
cl_chart->type = cl_igs_chart=>co_type_BARS_STACKED.
WHEN '11'.
cl_chart->type = cl_igs_chart=>CO_TYPE_BARS_STACKED_3D.
WHEN '12'.
cl_chart->type = cl_igs_chart=>co_type_COLS.
WHEN '13'.
cl_chart->type = cl_igs_chart=>co_type_COLS_3D.
WHEN '14'.
cl_chart->type = cl_igs_chart=>co_type_COLS_STACKED.
WHEN '15'.
cl_chart->type = cl_igs_chart=>co_type_COLS_STACKED_3D.
WHEN '16'.
cl_chart->type = cl_igs_chart=>co_type_PIE.
WHEN '17'.
cl_chart->type = cl_igs_chart=>co_type_PIE_3D.
WHEN '18'.
cl_chart->type = cl_igs_chart=>co_type_PIE_EX.
WHEN '19'.
cl_chart->type = cl_igs_chart=>co_type_PIE_EX_3D.
ENDCASE.
endform. " SET_CHART_TYPE
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_9000 input.
CASE G_UCOMM.
WHEN 'VIEW'.
REFRESH: git_html, git_igs.
IF cl_chart IS INITIAL.
CREATE OBJECT cl_chart.
ELSE.
FREE cl_chart.
CREATE OBJECT cl_chart.
ENDIF.
PERFORM SET_CHART_TYPE.
cl_chart->width = g_width.
cl_chart->height = g_height.
g_no = p_no.
DO p_no TIMES.
g_str = g_no * 10.
g_no = g_no - 1.
gfl_igs-groupid = 'Praveer'.
CONCATENATE 'INCRS' g_str INTO gfl_igs-x.
gfl_igs-y = g_str.
APPEND gfl_igs TO git_igs.
ENDDO.
cl_chart->data = git_igs.
REFRESH: GIT_MINE, GIT_HTM.
CLEAR: G_LEN, GIT_CONT.
CALL METHOD cl_chart->send
IMPORTING
content_type = git_cont
content_length = g_len
content = git_mine
imagemap = git_htm
EXCEPTIONS
rfc_communication_error = 1
rfc_system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE 'ERROR' TYPE 'E'.
ENDIF.
SPLIT git_cont AT '/' INTO git_cont git_sub.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_9000 INPUT
Screen: -
Screen Logic: -
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_9000.
Thanks & Regards
Praveer Kumar Sen.