Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Pie chart, bar chart

Former Member
0 Likes
864

Hi Experts,

Please help for making Pie chart and bar chats how can i make on a subscreen?

If any program you have please send it.

Thanks & Regards.

Ankur garg.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
812

Hi,

Use the function Modules

GRAPH_MATRIX_2D and GRAPH_MATRIX_3D

To generate Pie and Bar charts.

Sample Code:

REPORT yb<rupg>

MESSAGE-ID yb

NO STANDARD PAGE HEADING.

TABLES : ybstsaco .

&----


*Data Declarations

&----


*Internal Table for Upgrade errors

DATA : it_ybstsaco LIKE ybstucck OCCURS 0 WITH HEADER LINE.

*Internal Table for Tree Nodes

DATA : it_tnode LIKE snodetext OCCURS 0 WITH HEADER LINE.

DATA : it_tempcobs LIKE ybstsaco OCCURS 0 WITH HEADER LINE.

DATA : v_tot TYPE i.

DATA : v_validate TYPE tdevc-devclass,

v_vobjna TYPE tadir-obj_name,

v_devdes TYPE tdevct-ctext,

v_objdes TYPE ybstcobt-otext,

v_uecount TYPE i,

v_uwcount TYPE i,

v_cl1,v_cl2,v_cl3,

v_cl4,v_cl5,

v_ues(7),

v_uws(7),

v_ero(7),

v_objna(30).

DATA : v_flag TYPE flag.

DATA : v_objty(4).

DATA : BEGIN OF it_rulesaco OCCURS 0,

upgru TYPE ybstsaco-upgru,

impac TYPE ybstsaco-impac,

analw TYPE ybstsaco-analw,

objna TYPE ybstsaco-objna,

objty TYPE ybstsaco-objty,

categ TYPE ybstsaco-categ,

abapl TYPE ybstsaco-abapl,

progl TYPE ybstsaco-progl,

END OF it_rulesaco.

DATA : icon(20),

v_cntrule TYPE i.

DATA: green(20) TYPE c VALUE 'icon_green_light',

: yellow(20) TYPE c VALUE 'icon_yellow_light',

: red(20) TYPE c VALUE 'icon_red_light'.

DATA : it_rulesaco1 LIKE STANDARD TABLE OF it_rulesaco WITH HEADER LINE.

&----


*Selection Screen

&----


SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_devcl FOR ybstsaco-devcl.

SELECT-OPTIONS : s_objna FOR ybstsaco-objna.

SELECTION-SCREEN : END OF BLOCK b1.

SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: v_dewise RADIOBUTTON GROUP grp,

v_ruwise RADIOBUTTON GROUP grp.

SELECTION-SCREEN : END OF BLOCK b2.

&----


*At Selection Screen.

&----


AT SELECTION-SCREEN.

SELECT SINGLE devclass

INTO v_validate

FROM tdevc

WHERE devclass IN s_devcl.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'Package Does Not Exist' TYPE 'I'.

STOP.

ENDIF.

SELECT SINGLE obj_name

INTO v_objna

FROM tadir

WHERE obj_name IN s_objna.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'Object Does not Exist' TYPE 'I'.

STOP.

ENDIF.

&----


  • Start-of-selection.

&----


START-OF-SELECTION.

IF v_dewise = 'X'.

PERFORM get_data.

ELSEIF v_ruwise = 'X'.

PERFORM get_data_rule_wise.

ENDIF.

&----


*End-of-selection.

&----


END-OF-SELECTION.

IF v_flag NE 'X'.

IF v_dewise = 'X'.

PERFORM tree_display.

ELSEIF v_ruwise = 'X'.

PERFORM tree_display_rule_wise..

ENDIF.

ENDIF.

&----


*& Form tree_display

&----


FORM tree_display .

it_tnode-name = 'Custom Developed Objects'.

it_tnode-nlength = STRLEN( it_tnode-name ).

it_tnode-color = 1.

it_tnode-tlevel = 1.

APPEND it_tnode.

CLEAR it_tnode.

SORT it_ybstsaco BY devcl objty categ objna.

LOOP AT it_ybstsaco.

AT NEW devcl.

PERFORM get_zebra USING v_cl3.

CLEAR v_objty.

READ TABLE it_ybstsaco INDEX sy-tabix.

it_tnode-name = it_ybstsaco-devcl.

it_tnode-nlength = 30.

it_tnode-color = '4'.

it_tnode-tlevel = 2.

PERFORM get_devdes.

PERFORM num_count.

it_tnode-tlength = 45.

it_tnode-tcolor = 1.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl.

IF v_objty NE it_ybstsaco-objty.

v_objty = it_ybstsaco-objty.

PERFORM get_zebra USING v_cl5.

it_tnode-name = v_objty.

it_tnode-nlength = 4.

it_tnode-color = 7.

it_tnode-tlevel = 3.

PERFORM get_shorttext USING v_objty.

PERFORM num_count_objty.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 1.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

PERFORM get_zebra USING v_cl1.

IF v_objty EQ 'PROG'.

PERFORM build_prognodes.

ELSE.

PERFORM build_others.

ENDIF.

ENDIF.

ENDLOOP.

ENDAT.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode.

IF sy-subrc <> 0.

ENDIF.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE'

callback_gui_status = 'S001'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

use_control = 'L'.

  • IMPORTING

  • F15 = .

ENDFORM. " tree_display

&----


*& Form s001

&----


  • text

----


FORM s001.

SET PF-STATUS 'S002'.

SET TITLEBAR 'T001'.

ENDFORM. "s001

&----


*& Form top_of_page

&----


  • text

----


FORM top_of_page.

WRITE : 60 'UNICODE ANALYSIS' COLOR 1 INTENSIFIED OFF,

/60 '****************',

/,/12 'Object Name' COLOR 1,

60 'Description' COLOR 1 ,

99 'Unicode' COLOR 3,

107 'Unicode' COLOR 3,

115 'Total ' COLOR 3.

WRITE : /99 'Issues ' COLOR 3,

107 'Warns ' COLOR 3,

115 'Issues' COLOR 3,

sy-uline.

ENDFORM. "top_of_page

&----


*& Form user_command

&----


  • text

----


FORM user_command TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

DATA : v_objna1(30),

v_objct1(30).

CASE sy-ucomm.

WHEN 'TRPI' OR 'UPGR'.

IF pt_nodes-tlevel EQ '05' OR pt_nodes-tlevel EQ '04'.

IF pt_nodes-nlength NE '04'.

pv_list_refresh = ' '.

CLEAR v_objna.

v_objna1 = pt_nodes-name.

v_objct1 = pt_nodes-text4.

PERFORM tree_display1 USING v_objna1 v_objct1.

ELSEIF pt_nodes-selfield EQ 'MINUS'

OR pt_nodes-selfield EQ 'PLUS'.

ELSE.

MESSAGE 'No Errors For the Selected Object'

TYPE 'I'.

ENDIF.

ELSEIF pt_nodes-selfield EQ 'MINUS'

OR pt_nodes-selfield EQ 'PLUS'

OR sy-ucomm EQ 'TREP'

OR sy-ucomm EQ 'TRCM'.

ELSE.

MESSAGE

'Please Select the Object For Further Navigation' TYPE 'I'.

SET PF-STATUS 'S002'.

ENDIF.

WHEN OTHERS.

ENDCASE.

ENDFORM. "user_command

&----


*& Form num_count

&----


FORM num_count .

DATA : v_eroi TYPE i,

v_len TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSE.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_count

&----


*& Form get_devdes

&----


FORM get_devdes .

SELECT SINGLE ctext FROM tdevct INTO v_devdes

WHERE devclass EQ it_ybstsaco-devcl

AND spras EQ sy-langu.

IF sy-subrc EQ 0.

IF v_devdes IS NOT INITIAL.

it_tnode-text = v_devdes.

CLEAR v_devdes.

ELSE.

CONCATENATE 'Description Missing in '

sy-langu INTO it_tnode-text.

  • it_tnode-text = 'Description Missing'.

CLEAR v_devdes.

ENDIF.

ELSE.

it_tnode-text = 'Description Missing'.

ENDIF.

ENDFORM. " get_devdes

&----


*& Form get_Shorttext

&----


FORM get_shorttext USING p_v_objty.

CLEAR v_objdes.

SELECT SINGLE otext

FROM ybstcobt

INTO v_objdes

WHERE objct EQ p_v_objty

AND spras EQ sy-langu.

ENDFORM. " get_Shorttext

&----


*& Form build_prognodes

&----


FORM build_prognodes .

DATA : v_categ(4).

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty.

IF v_categ NE it_ybstsaco-categ.

PERFORM get_zebra USING v_cl1.

v_categ = it_ybstsaco-categ.

it_tnode-name = v_categ.

it_tnode-nlength = 4.

it_tnode-color = 7.

it_tnode-tlevel = 4.

PERFORM get_shorttext USING v_categ.

PERFORM numcount_categ USING v_categ.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND categ EQ v_categ.

IF v_objna NE it_ybstsaco-objna.

v_objna = it_ybstsaco-objna.

it_tnode-name = it_ybstsaco-objna.

it_tnode-nlength = 30.

it_tnode-color = 7.

it_tnode-tlevel = 5.

PERFORM get_shorttext_objna USING v_objna v_objty.

PERFORM num_countobjna CHANGING v_tot.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

it_tnode-text4 = it_ybstsaco-objty.

IF v_tot EQ 0.

CLEAR it_tnode.

ELSE.

PERFORM get_zebra USING v_cl2.

APPEND it_tnode.

CLEAR it_tnode.

ENDIF.

ENDIF.

ENDLOOP.

ENDIF.

ENDLOOP.

ENDFORM. " build_prognodes

&----


*& Form build_others

&----


FORM build_others .

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty.

IF v_objna NE it_ybstsaco-objna.

v_objna = it_ybstsaco-objna.

it_tnode-name = it_ybstsaco-objna.

it_tnode-nlength = 30.

it_tnode-color = 7.

it_tnode-tlevel = 4.

PERFORM get_shorttext_objna USING v_objna v_objty.

PERFORM num_countobjna CHANGING v_tot.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

it_tnode-text4 = it_ybstsaco-objty.

IF v_tot EQ 0.

CLEAR it_tnode.

ELSE.

PERFORM get_zebra USING v_cl2.

APPEND it_tnode.

CLEAR it_tnode.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " build_others

&----


*& Form num_count_objty

&----


FORM num_count_objty .

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty..

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_count_objty

&----


*& Form numcount_categ

&----


FORM numcount_categ USING v_categ.

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND categ EQ v_categ.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " numcount_categ

&----


*& Form num_countobjna

&----


FORM num_countobjna CHANGING v_tot.

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR v_tot.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND objna EQ it_ybstsaco-objna.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_tot = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_countobjna

&----


*& Form get_shorttext_objna

&----


FORM get_shorttext_objna USING p_v_objna v_objty.

CLEAR : v_objdes.

IF v_objty EQ 'FUNC'.

SELECT SINGLE stext

FROM v_fdirt

INTO v_objdes

WHERE funcname EQ p_v_objna

AND spras EQ sy-langu.

IF sy-subrc NE 0.

v_objdes = 'Description Not available'.

ELSE.

IF v_objdes IS INITIAL.

CONCATENATE 'Description Not available in ' sy-langu INTO v_objdes.

ENDIF.

ENDIF.

ELSE.

SELECT SINGLE text

FROM trdirt

INTO v_objdes

WHERE name EQ p_v_objna

AND sprsl EQ sy-langu.

IF sy-subrc NE 0.

v_objdes = 'Description Not available'.

ELSE.

IF v_objdes IS INITIAL.

CONCATENATE 'Description Not available in ' sy-langu INTO v_objdes.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " get_shorttext_objna

&----


*& Form tree_display1

&----


FORM tree_display1 USING p_objna

v_objc.

DATA : v_rule(5),

v_len TYPE i,

v_ruleno TYPE i.

*Internal Table for Tree Nodes

DATA icon(20).

DATA: green(20) TYPE c VALUE 'icon_green_light',

: yellow(20) TYPE c VALUE 'icon_yellow_light',

: red(20) TYPE c VALUE 'icon_red_light'.

DATA : it_tnode1 LIKE snodetext OCCURS 0 WITH HEADER LINE.

CLEAR it_tnode1.

REFRESH it_tnode1.

it_tnode1-name = 'Object Name'.

it_tnode1-nlength = 15.

it_tnode1-color = 1.

it_tnode1-tlevel = 1.

it_tnode1-text = p_objna.

it_tnode1-tlength = 15.

it_tnode1-tcolor = 1.

it_tnode1-tpos = 20.

  • it_tnode1-text1 =

APPEND it_tnode1.

CLEAR it_tnode1.

SORT it_ybstsaco BY analw.

LOOP AT it_ybstsaco WHERE objna EQ p_objna

AND objty EQ v_objc.

IF it_ybstsaco-upgru NE v_ruleno.

IF v_cl1 IS INITIAL.

it_tnode1-tintensiv = 'X'.

it_tnode1-tintensiv2 = 'X'.

v_cl1 = 'X'.

ELSE.

CLEAR v_cl1.

it_tnode1-tintensiv = ' '.

it_tnode1-tintensiv2 = ' '.

ENDIF.

PERFORM 2count.

v_ruleno = it_ybstsaco-upgru.

it_tnode1-text = it_ybstsaco-analw.

it_tnode1-tlength = 64.

it_tnode1-tcolor = 1.

it_tnode1-tlevel = 2.

it_tnode1-tpos = 9.

IF it_ybstsaco-impac EQ 'E'.

icon = red.

ELSE.

icon = yellow.

ENDIF.

it_tnode1-text1 = icon.

it_tnode1-kind1 = 'I'.

it_tnode1-tlength1 = 3.

it_tnode1-tcolor1 = 1.

it_tnode1-tpos1 = 74.

it_tnode1-text2 = v_ues.

it_tnode1-tlength2 = 7.

it_tnode1-tcolor2 = 3.

it_tnode1-tpos2 = 79.

APPEND it_tnode1.

CLEAR it_tnode1.

LOOP AT it_ybstsaco WHERE objna EQ it_ybstsaco-objna

AND devcl EQ it_ybstsaco-devcl

AND upgru EQ it_ybstsaco-upgru.

IF v_cl2 IS INITIAL.

it_tnode1-tintensiv4 = 'X'.

it_tnode1-tintensiv = 'X'.

v_cl2 = 'X'.

ELSE.

CLEAR v_cl2.

it_tnode1-tintensiv4 = ' '.

it_tnode1-tintensiv = ' '.

ENDIF.

CONDENSE it_ybstsaco-abapl.

it_tnode1-text4 = it_ybstsaco-abapl.

it_tnode1-tpos4 = 13.

it_tnode1-tlength4 = 72.

it_tnode1-tcolor4 = 7.

it_tnode1-tlevel = 03.

it_tnode1-text = it_ybstsaco-progl.

it_tnode1-tlength = 5.

it_tnode1-tcolor = 1.

it_tnode1-tpos = 86.

it_tnode1-text2 = it_ybstsaco-objna.

it_tnode1-text3 = it_ybstsaco-objty.

APPEND it_tnode1.

CLEAR it_tnode1.

ENDLOOP.

ENDIF.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode1.

IF sy-subrc <> 0.

ENDIF.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND1'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE1'

callback_gui_status = 'S002'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START_COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

use_control = 'L'.

  • IMPORTING

  • F15 =

ENDFORM. " tree_display1

&----


*& Form Top_of_page1

&----


  • text

----


FORM top_of_page1.

DATA : v_len TYPE i.

CLEAR v_len.

v_len = STRLEN( it_ybstsaco-objna ).

WRITE : /40 'Unicode Analysis For the Object :' COLOR 1 NO-GAP,

it_ybstsaco-objna(v_len) COLOR 1 .

v_len = 33 + v_len.

WRITE : /40 sy-uline(v_len).

WRITE : /9 'Error Description' COLOR 1,

74 'Err ' COLOR 2 INTENSIFIED ON,

79 'Err ' COLOR 3,

86 'Line' COLOR 2 INTENSIFIED ON.

WRITE : /13 'Error Line' COLOR 7,

74 'TYPE' COLOR 2,

79 'Count' COLOR 3,

86 'Numb' COLOR 2.

WRITE : sy-uline.

ENDFORM. "Top_of_page1

&----


*& Form user_command1

&----


  • text

----


-

FORM user_command1 TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

IF sy-ucomm EQ 'DISP' OR

sy-ucomm EQ 'TRPI'.

IF pt_nodes-tlevel EQ '03' AND

( pt_nodes-selfield NE 'MINUS' OR

pt_nodes-selfield NE 'PLUS').

IF pt_nodes-text3 NE 'FUNC'.

CALL FUNCTION 'EDITOR_PROGRAM'

EXPORTING

display = 'X'

line = pt_nodes-text

program = pt_nodes-text2.

ELSEIF pt_nodes-text3 EQ 'FUNC'..

CALL FUNCTION 'RS_TOOL_ACCESS'

EXPORTING

operation = 'SHOW'

object_name = pt_nodes-text2

object_type = 'FUNC'

  • ENCLOSING_OBJECT =

position = pt_nodes-text

  • DEVCLASS =

  • INCLUDE =

  • VERSION = ' '

  • MONITOR_ACTIVATION = 'X'

  • WB_MANAGER =

  • IN_NEW_WINDOW =

  • WITH_OBJECTLIST = ' '

  • WITH_WORKLIST = ' '

.

IF sy-subrc <> 0.

ENDIF.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ELSEIF ( pt_nodes-selfield EQ 'MINUS' OR

pt_nodes-selfield EQ 'PLUS') OR

sy-ucomm EQ 'TREP' OR

sy-ucomm EQ 'TRCM'.

ELSE.

MESSAGE 'Click on Error Line For Further Navigation'

TYPE 'I'.

ENDIF.

ENDIF.

ENDFORM. "user_command1

&----


*& Form s002

&----


  • text

----


FORM s002.

SET PF-STATUS 'S2SCR'.

SET TITLEBAR 'T002'.

ENDFORM. "s002

&----


*& Form 2count

&----


FORM 2count .

DATA : v_len.

CLEAR v_uecount.

LOOP AT it_ybstsaco WHERE objna EQ it_ybstsaco-objna

AND devcl EQ it_ybstsaco-devcl

AND upgru EQ it_ybstsaco-upgru.

v_uecount = v_uecount + 1.

ENDLOOP.

CLEAR : v_len,v_ues.

v_ues = v_uecount.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

ENDFORM. " 2count

&----


*& Form get_zebra

&----


FORM get_zebra USING v_cl.

IF v_cl IS INITIAL.

it_tnode-tintensiv9 = 'X'.

it_tnode-intensiv = 'X'.

it_tnode-tintensiv1 = 'X'.

it_tnode-tintensiv2 = 'X'.

it_tnode-tintensiv3 = 'X'.

it_tnode-tintensiv4 = 'X'.

it_tnode-tintensiv5 = 'X'.

it_tnode-tintensiv6 = 'X'.

it_tnode-tintensiv7 = 'X'.

it_tnode-tintensiv8 = 'X'.

it_tnode-tintensiv = 'X'.

v_cl ='X'.

ELSE.

it_tnode-tintensiv9 = ' '.

it_tnode-tintensiv = ' '.

it_tnode-intensiv = ' '.

it_tnode-tintensiv1 = ' '.

it_tnode-tintensiv2 = ' '.

it_tnode-tintensiv3 = ' '.

it_tnode-tintensiv4 = ' '.

it_tnode-tintensiv5 = ' '.

it_tnode-tintensiv6 = ' '.

it_tnode-tintensiv7 = ' '.

it_tnode-tintensiv8 = ' '.

CLEAR v_cl.

ENDIF.

ENDFORM. " get_zebra

&----


*& Form get_data

&----


  • text

----


FORM get_data .

CLEAR it_ybstsaco.

REFRESH it_ybstsaco.

*Fetching All The Error Data From Ybstsaco Table

SELECT *

FROM ybstucck

INTO TABLE it_ybstsaco

WHERE devcl IN s_devcl

AND objna IN s_objna.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'The Package doesnot contain any Upgrade issues' TYPE 'I'.

ENDIF.

ENDFORM. " get_data

&----


*& Form get_data_rule_wise

&----


  • text

----


FORM get_data_rule_wise .

SELECT upgru

impac

analw

objna

objty

categ

abapl

progl

INTO TABLE it_rulesaco

FROM ybstucck

WHERE devcl IN s_devcl.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'The Package doesnot contain any Upgrade issues' TYPE 'I'.

ENDIF.

ENDFORM. " get_data_rule_wise

&----


*& Form tree_display

&----


FORM tree_display_rule_wise .

DATA : it_tnode LIKE snodetext OCCURS 0 WITH HEADER LINE,

v_cntrule1(7).

LOOP AT it_rulesaco.

SHIFT it_rulesaco-upgru LEFT DELETING LEADING '0'.

MODIFY it_rulesaco INDEX sy-tabix.

ENDLOOP.

CLEAR it_tnode.

REFRESH it_tnode.

SORT it_rulesaco BY upgru objna.

it_tnode-name = 'Rule Wise'.

it_tnode-color = 1.

it_tnode-nlength = 9.

it_tnode-tlevel = 1.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco.

AT NEW upgru.

READ TABLE it_rulesaco INDEX sy-tabix.

it_tnode-name = it_rulesaco-upgru.

it_tnode-color = 1.

it_tnode-nlength = 3.

it_tnode-tlevel = 2.

it_tnode-text = it_rulesaco-analw.

it_tnode-tcolor = 1.

it_tnode-tlength = 64.

it_tnode-tpos = 13.

PERFORM get_inforule.

it_tnode-text1 = icon.

it_tnode-kind1 = 'I'.

it_tnode-tpos1 = 78.

it_tnode-tlength1 = 3.

v_cntrule1 = v_cntrule.

it_tnode-text2 = v_cntrule1.

it_tnode-tpos2 = 83.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco1.

AT NEW objna.

READ TABLE it_rulesaco1 INDEX sy-tabix.

READ TABLE it_rulesaco INDEX sy-tabix.

it_tnode-name = it_rulesaco1-objna.

it_tnode-color = 1.

it_tnode-nlength = 30.

it_tnode-tlevel = 3.

it_tnode-text = it_rulesaco1-objty.

it_tnode-tcolor = 5.

it_tnode-tlength = 4.

it_tnode-tpos = 45.

it_tnode-text1 = it_rulesaco1-categ.

it_tnode-tcolor1 = 5.

it_tnode-tlength1 = 4.

it_tnode-tpos1 = 50.

PERFORM objna_count.

v_cntrule1 = v_cntrule.

it_tnode-text2 = v_cntrule1.

it_tnode-tpos2 = 83.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco1 WHERE objna EQ it_rulesaco1-objna.

it_tnode-name = it_rulesaco1-progl.

it_tnode-color = 1.

it_tnode-nlength = 6.

it_tnode-tlevel = 4.

it_tnode-text = it_rulesaco1-abapl.

it_tnode-tcolor = 1.

it_tnode-tlength = 72.

it_tnode-tpos = 24.

it_tnode-text1 = it_rulesaco1-objna.

it_tnode-text2 = it_rulesaco1-objty.

APPEND it_tnode.

CLEAR it_tnode.

ENDLOOP.

ENDAT.

ENDLOOP.

ENDAT.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND_RULE'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE_RULE'

callback_gui_status = 'S001_RULE'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START_COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

  • USE_CONTROL = STREE_USE_LIST

  • IMPORTING

  • F15 =

.

ENDFORM. " tree_display

&----


*& Form user_command

&----


  • text

----


FORM user_command_rule TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

CASE sy-ucomm.

when 'OBJT'.

data : begin of it_cnt occurs 0,

objna(30),

errcnt type i,

end of it_cnt.

data : itab1 like it_cnt occurs 0 with header line.

data : itab2 like it_cnt occurs 0 with header line.

data : begin of it_optru occurs 0,

optru like ybstsaco-upgru,

errcnt type i,

end of it_optru.

select upgru

into table it_optru

from ybstsaco

where devcl in s_devcl.

sort it_optru.

loop at it_optru.

it_cnt-errcnt = it_cnt-errcnt + 1.

at end of optru.

it_cnt-objna = it_optru-optru.

append it_cnt.

clear it_cnt.

endat.

endloop.

CALL FUNCTION

'GRAPH_MATRIX_2D'

EXPORTING

SO_TITLE = 'TITLE'

TITL = 'Rules/ Number of Errors Distribution'

VALT = 'Number of Errors '

TABLES

DATA = it_cnt

OPTS = itab1

TCOL = itab2.

WHEN 'TRPI' OR 'DISP'.

IF pt_nodes-tlevel EQ '04' .

CALL FUNCTION 'RS_TOOL_ACCESS'

EXPORTING

operation = 'SHOW'

object_name = pt_nodes-text1

object_type = pt_nodes-text2

  • ENCLOSING_OBJECT =

position = pt_nodes-name

  • DEVCLASS =

  • INCLUDE =

  • VERSION = ' '

  • MONITOR_ACTIVATION = 'X'

  • WB_MANAGER =

  • IN_NEW_WINDOW =

  • WITH_OBJECTLIST = ' '

  • WITH_WORKLIST = ' '

  • IMPORTING

  • NEW_NAME =

  • WB_TODO_REQUEST =

  • TABLES

  • OBJLIST =

  • CHANGING

  • P_REQUEST = ' '

  • EXCEPTIONS

  • NOT_EXECUTED = 1

  • INVALID_OBJECT_TYPE = 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.

.

ELSEIF pt_nodes-selfield EQ 'MINUS' OR pt_nodes-selfield EQ 'PLUS'.

ELSE.

MESSAGE 'Select the Error Line For Further Navigation' TYPE 'I'.

ENDIF.

WHEN OTHERS.

ENDCASE.

ENDFORM. "user_command

&----


*& Form s001

&----


  • text

----


FORM s001_rule.

SET PF-STATUS 'S002'.

SET TITLEBAR 'T001'.

ENDFORM. "s001

&----


*& Form get_inforule

&----


FORM get_inforule .

IF it_rulesaco-impac EQ 'W'.

icon = yellow.

ELSE.

icon = red.

ENDIF.

CLEAR it_rulesaco1.

REFRESH it_rulesaco1.

LOOP AT it_rulesaco WHERE upgru EQ it_rulesaco-upgru.

MOVE-CORRESPONDING it_rulesaco TO it_rulesaco1.

APPEND it_rulesaco1.

ENDLOOP.

CLEAR v_cntrule.

LOOP AT it_rulesaco WHERE upgru EQ it_rulesaco-upgru.

v_cntrule = v_cntrule + 1.

ENDLOOP.

ENDFORM. " get_inforule

&----


*& Form objna_count

&----


FORM objna_count .

CLEAR v_cntrule.

LOOP AT it_rulesaco1 WHERE upgru EQ it_rulesaco1-upgru

AND objna EQ it_rulesaco1-objna.

v_cntrule = v_cntrule + 1.

ENDLOOP.

ENDFORM. " objna_count

&----


*& Form top_of_page_rule

&----


  • text

----


FORM top_of_page_rule.

WRITE : 40(16) 'Unicode Analysis' COLOR 1,

/40(16) '****************',/,

40(16) 'Rule Wise Report'.

ENDFORM. "top_of_page_rule

Regards,

Anji

Message was edited by:

Anji Reddy Vangala

Hi Experts,

Please help for making Pie chart and bar chats how can i make on a subscreen?

If any program you have please send it.

Thanks & Regards.

Ankur garg.

5 REPLIES 5
Read only

Former Member
0 Likes
813

Hi,

Use the function Modules

GRAPH_MATRIX_2D and GRAPH_MATRIX_3D

To generate Pie and Bar charts.

Sample Code:

REPORT yb<rupg>

MESSAGE-ID yb

NO STANDARD PAGE HEADING.

TABLES : ybstsaco .

&----


*Data Declarations

&----


*Internal Table for Upgrade errors

DATA : it_ybstsaco LIKE ybstucck OCCURS 0 WITH HEADER LINE.

*Internal Table for Tree Nodes

DATA : it_tnode LIKE snodetext OCCURS 0 WITH HEADER LINE.

DATA : it_tempcobs LIKE ybstsaco OCCURS 0 WITH HEADER LINE.

DATA : v_tot TYPE i.

DATA : v_validate TYPE tdevc-devclass,

v_vobjna TYPE tadir-obj_name,

v_devdes TYPE tdevct-ctext,

v_objdes TYPE ybstcobt-otext,

v_uecount TYPE i,

v_uwcount TYPE i,

v_cl1,v_cl2,v_cl3,

v_cl4,v_cl5,

v_ues(7),

v_uws(7),

v_ero(7),

v_objna(30).

DATA : v_flag TYPE flag.

DATA : v_objty(4).

DATA : BEGIN OF it_rulesaco OCCURS 0,

upgru TYPE ybstsaco-upgru,

impac TYPE ybstsaco-impac,

analw TYPE ybstsaco-analw,

objna TYPE ybstsaco-objna,

objty TYPE ybstsaco-objty,

categ TYPE ybstsaco-categ,

abapl TYPE ybstsaco-abapl,

progl TYPE ybstsaco-progl,

END OF it_rulesaco.

DATA : icon(20),

v_cntrule TYPE i.

DATA: green(20) TYPE c VALUE 'icon_green_light',

: yellow(20) TYPE c VALUE 'icon_yellow_light',

: red(20) TYPE c VALUE 'icon_red_light'.

DATA : it_rulesaco1 LIKE STANDARD TABLE OF it_rulesaco WITH HEADER LINE.

&----


*Selection Screen

&----


SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_devcl FOR ybstsaco-devcl.

SELECT-OPTIONS : s_objna FOR ybstsaco-objna.

SELECTION-SCREEN : END OF BLOCK b1.

SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: v_dewise RADIOBUTTON GROUP grp,

v_ruwise RADIOBUTTON GROUP grp.

SELECTION-SCREEN : END OF BLOCK b2.

&----


*At Selection Screen.

&----


AT SELECTION-SCREEN.

SELECT SINGLE devclass

INTO v_validate

FROM tdevc

WHERE devclass IN s_devcl.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'Package Does Not Exist' TYPE 'I'.

STOP.

ENDIF.

SELECT SINGLE obj_name

INTO v_objna

FROM tadir

WHERE obj_name IN s_objna.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'Object Does not Exist' TYPE 'I'.

STOP.

ENDIF.

&----


  • Start-of-selection.

&----


START-OF-SELECTION.

IF v_dewise = 'X'.

PERFORM get_data.

ELSEIF v_ruwise = 'X'.

PERFORM get_data_rule_wise.

ENDIF.

&----


*End-of-selection.

&----


END-OF-SELECTION.

IF v_flag NE 'X'.

IF v_dewise = 'X'.

PERFORM tree_display.

ELSEIF v_ruwise = 'X'.

PERFORM tree_display_rule_wise..

ENDIF.

ENDIF.

&----


*& Form tree_display

&----


FORM tree_display .

it_tnode-name = 'Custom Developed Objects'.

it_tnode-nlength = STRLEN( it_tnode-name ).

it_tnode-color = 1.

it_tnode-tlevel = 1.

APPEND it_tnode.

CLEAR it_tnode.

SORT it_ybstsaco BY devcl objty categ objna.

LOOP AT it_ybstsaco.

AT NEW devcl.

PERFORM get_zebra USING v_cl3.

CLEAR v_objty.

READ TABLE it_ybstsaco INDEX sy-tabix.

it_tnode-name = it_ybstsaco-devcl.

it_tnode-nlength = 30.

it_tnode-color = '4'.

it_tnode-tlevel = 2.

PERFORM get_devdes.

PERFORM num_count.

it_tnode-tlength = 45.

it_tnode-tcolor = 1.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl.

IF v_objty NE it_ybstsaco-objty.

v_objty = it_ybstsaco-objty.

PERFORM get_zebra USING v_cl5.

it_tnode-name = v_objty.

it_tnode-nlength = 4.

it_tnode-color = 7.

it_tnode-tlevel = 3.

PERFORM get_shorttext USING v_objty.

PERFORM num_count_objty.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 1.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

PERFORM get_zebra USING v_cl1.

IF v_objty EQ 'PROG'.

PERFORM build_prognodes.

ELSE.

PERFORM build_others.

ENDIF.

ENDIF.

ENDLOOP.

ENDAT.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode.

IF sy-subrc <> 0.

ENDIF.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE'

callback_gui_status = 'S001'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

use_control = 'L'.

  • IMPORTING

  • F15 = .

ENDFORM. " tree_display

&----


*& Form s001

&----


  • text

----


FORM s001.

SET PF-STATUS 'S002'.

SET TITLEBAR 'T001'.

ENDFORM. "s001

&----


*& Form top_of_page

&----


  • text

----


FORM top_of_page.

WRITE : 60 'UNICODE ANALYSIS' COLOR 1 INTENSIFIED OFF,

/60 '****************',

/,/12 'Object Name' COLOR 1,

60 'Description' COLOR 1 ,

99 'Unicode' COLOR 3,

107 'Unicode' COLOR 3,

115 'Total ' COLOR 3.

WRITE : /99 'Issues ' COLOR 3,

107 'Warns ' COLOR 3,

115 'Issues' COLOR 3,

sy-uline.

ENDFORM. "top_of_page

&----


*& Form user_command

&----


  • text

----


FORM user_command TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

DATA : v_objna1(30),

v_objct1(30).

CASE sy-ucomm.

WHEN 'TRPI' OR 'UPGR'.

IF pt_nodes-tlevel EQ '05' OR pt_nodes-tlevel EQ '04'.

IF pt_nodes-nlength NE '04'.

pv_list_refresh = ' '.

CLEAR v_objna.

v_objna1 = pt_nodes-name.

v_objct1 = pt_nodes-text4.

PERFORM tree_display1 USING v_objna1 v_objct1.

ELSEIF pt_nodes-selfield EQ 'MINUS'

OR pt_nodes-selfield EQ 'PLUS'.

ELSE.

MESSAGE 'No Errors For the Selected Object'

TYPE 'I'.

ENDIF.

ELSEIF pt_nodes-selfield EQ 'MINUS'

OR pt_nodes-selfield EQ 'PLUS'

OR sy-ucomm EQ 'TREP'

OR sy-ucomm EQ 'TRCM'.

ELSE.

MESSAGE

'Please Select the Object For Further Navigation' TYPE 'I'.

SET PF-STATUS 'S002'.

ENDIF.

WHEN OTHERS.

ENDCASE.

ENDFORM. "user_command

&----


*& Form num_count

&----


FORM num_count .

DATA : v_eroi TYPE i,

v_len TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSE.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_count

&----


*& Form get_devdes

&----


FORM get_devdes .

SELECT SINGLE ctext FROM tdevct INTO v_devdes

WHERE devclass EQ it_ybstsaco-devcl

AND spras EQ sy-langu.

IF sy-subrc EQ 0.

IF v_devdes IS NOT INITIAL.

it_tnode-text = v_devdes.

CLEAR v_devdes.

ELSE.

CONCATENATE 'Description Missing in '

sy-langu INTO it_tnode-text.

  • it_tnode-text = 'Description Missing'.

CLEAR v_devdes.

ENDIF.

ELSE.

it_tnode-text = 'Description Missing'.

ENDIF.

ENDFORM. " get_devdes

&----


*& Form get_Shorttext

&----


FORM get_shorttext USING p_v_objty.

CLEAR v_objdes.

SELECT SINGLE otext

FROM ybstcobt

INTO v_objdes

WHERE objct EQ p_v_objty

AND spras EQ sy-langu.

ENDFORM. " get_Shorttext

&----


*& Form build_prognodes

&----


FORM build_prognodes .

DATA : v_categ(4).

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty.

IF v_categ NE it_ybstsaco-categ.

PERFORM get_zebra USING v_cl1.

v_categ = it_ybstsaco-categ.

it_tnode-name = v_categ.

it_tnode-nlength = 4.

it_tnode-color = 7.

it_tnode-tlevel = 4.

PERFORM get_shorttext USING v_categ.

PERFORM numcount_categ USING v_categ.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND categ EQ v_categ.

IF v_objna NE it_ybstsaco-objna.

v_objna = it_ybstsaco-objna.

it_tnode-name = it_ybstsaco-objna.

it_tnode-nlength = 30.

it_tnode-color = 7.

it_tnode-tlevel = 5.

PERFORM get_shorttext_objna USING v_objna v_objty.

PERFORM num_countobjna CHANGING v_tot.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

it_tnode-text4 = it_ybstsaco-objty.

IF v_tot EQ 0.

CLEAR it_tnode.

ELSE.

PERFORM get_zebra USING v_cl2.

APPEND it_tnode.

CLEAR it_tnode.

ENDIF.

ENDIF.

ENDLOOP.

ENDIF.

ENDLOOP.

ENDFORM. " build_prognodes

&----


*& Form build_others

&----


FORM build_others .

LOOP AT it_ybstsaco WHERE devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty.

IF v_objna NE it_ybstsaco-objna.

v_objna = it_ybstsaco-objna.

it_tnode-name = it_ybstsaco-objna.

it_tnode-nlength = 30.

it_tnode-color = 7.

it_tnode-tlevel = 4.

PERFORM get_shorttext_objna USING v_objna v_objty.

PERFORM num_countobjna CHANGING v_tot.

it_tnode-text = v_objdes.

it_tnode-tlength = 45.

it_tnode-tcolor = 2.

it_tnode-tpos = 52.

it_tnode-text1 = v_ues.

it_tnode-tlength1 = 7.

it_tnode-tcolor1 = 3.

it_tnode-tpos1 = 99.

it_tnode-text2 = v_uws.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

it_tnode-tpos2 = 107.

it_tnode-text3 = v_ero.

it_tnode-tlength3 = 7.

it_tnode-tcolor3 = 3.

it_tnode-tpos3 = 115.

it_tnode-text4 = it_ybstsaco-objty.

IF v_tot EQ 0.

CLEAR it_tnode.

ELSE.

PERFORM get_zebra USING v_cl2.

APPEND it_tnode.

CLEAR it_tnode.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " build_others

&----


*& Form num_count_objty

&----


FORM num_count_objty .

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty..

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_count_objty

&----


*& Form numcount_categ

&----


FORM numcount_categ USING v_categ.

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND categ EQ v_categ.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " numcount_categ

&----


*& Form num_countobjna

&----


FORM num_countobjna CHANGING v_tot.

DATA : v_len TYPE i,

v_eroi TYPE i.

CLEAR v_tot.

CLEAR : v_uecount,v_uwcount.

LOOP AT it_ybstsaco WHERE

devcl EQ it_ybstsaco-devcl

AND objty EQ v_objty

AND objna EQ it_ybstsaco-objna.

IF it_ybstsaco-impac = 'E'.

v_uecount = v_uecount + 1.

ELSEIF it_ybstsaco-impac = 'W'.

v_uwcount = v_uwcount + 1.

ENDIF.

ENDLOOP.

CLEAR : v_ues,v_uws.

v_ues = v_uecount.

v_uws = v_uwcount.

v_eroi = v_uwcount + v_uecount.

v_ero = v_eroi.

v_tot = v_eroi.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_uws ).

v_len = 7 - v_len.

SHIFT v_uws RIGHT BY v_len PLACES.

CLEAR v_len.

v_len = STRLEN( v_ero ).

v_len = 7 - v_len.

SHIFT v_ero RIGHT BY v_len PLACES.

CLEAR v_len.

ENDFORM. " num_countobjna

&----


*& Form get_shorttext_objna

&----


FORM get_shorttext_objna USING p_v_objna v_objty.

CLEAR : v_objdes.

IF v_objty EQ 'FUNC'.

SELECT SINGLE stext

FROM v_fdirt

INTO v_objdes

WHERE funcname EQ p_v_objna

AND spras EQ sy-langu.

IF sy-subrc NE 0.

v_objdes = 'Description Not available'.

ELSE.

IF v_objdes IS INITIAL.

CONCATENATE 'Description Not available in ' sy-langu INTO v_objdes.

ENDIF.

ENDIF.

ELSE.

SELECT SINGLE text

FROM trdirt

INTO v_objdes

WHERE name EQ p_v_objna

AND sprsl EQ sy-langu.

IF sy-subrc NE 0.

v_objdes = 'Description Not available'.

ELSE.

IF v_objdes IS INITIAL.

CONCATENATE 'Description Not available in ' sy-langu INTO v_objdes.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " get_shorttext_objna

&----


*& Form tree_display1

&----


FORM tree_display1 USING p_objna

v_objc.

DATA : v_rule(5),

v_len TYPE i,

v_ruleno TYPE i.

*Internal Table for Tree Nodes

DATA icon(20).

DATA: green(20) TYPE c VALUE 'icon_green_light',

: yellow(20) TYPE c VALUE 'icon_yellow_light',

: red(20) TYPE c VALUE 'icon_red_light'.

DATA : it_tnode1 LIKE snodetext OCCURS 0 WITH HEADER LINE.

CLEAR it_tnode1.

REFRESH it_tnode1.

it_tnode1-name = 'Object Name'.

it_tnode1-nlength = 15.

it_tnode1-color = 1.

it_tnode1-tlevel = 1.

it_tnode1-text = p_objna.

it_tnode1-tlength = 15.

it_tnode1-tcolor = 1.

it_tnode1-tpos = 20.

  • it_tnode1-text1 =

APPEND it_tnode1.

CLEAR it_tnode1.

SORT it_ybstsaco BY analw.

LOOP AT it_ybstsaco WHERE objna EQ p_objna

AND objty EQ v_objc.

IF it_ybstsaco-upgru NE v_ruleno.

IF v_cl1 IS INITIAL.

it_tnode1-tintensiv = 'X'.

it_tnode1-tintensiv2 = 'X'.

v_cl1 = 'X'.

ELSE.

CLEAR v_cl1.

it_tnode1-tintensiv = ' '.

it_tnode1-tintensiv2 = ' '.

ENDIF.

PERFORM 2count.

v_ruleno = it_ybstsaco-upgru.

it_tnode1-text = it_ybstsaco-analw.

it_tnode1-tlength = 64.

it_tnode1-tcolor = 1.

it_tnode1-tlevel = 2.

it_tnode1-tpos = 9.

IF it_ybstsaco-impac EQ 'E'.

icon = red.

ELSE.

icon = yellow.

ENDIF.

it_tnode1-text1 = icon.

it_tnode1-kind1 = 'I'.

it_tnode1-tlength1 = 3.

it_tnode1-tcolor1 = 1.

it_tnode1-tpos1 = 74.

it_tnode1-text2 = v_ues.

it_tnode1-tlength2 = 7.

it_tnode1-tcolor2 = 3.

it_tnode1-tpos2 = 79.

APPEND it_tnode1.

CLEAR it_tnode1.

LOOP AT it_ybstsaco WHERE objna EQ it_ybstsaco-objna

AND devcl EQ it_ybstsaco-devcl

AND upgru EQ it_ybstsaco-upgru.

IF v_cl2 IS INITIAL.

it_tnode1-tintensiv4 = 'X'.

it_tnode1-tintensiv = 'X'.

v_cl2 = 'X'.

ELSE.

CLEAR v_cl2.

it_tnode1-tintensiv4 = ' '.

it_tnode1-tintensiv = ' '.

ENDIF.

CONDENSE it_ybstsaco-abapl.

it_tnode1-text4 = it_ybstsaco-abapl.

it_tnode1-tpos4 = 13.

it_tnode1-tlength4 = 72.

it_tnode1-tcolor4 = 7.

it_tnode1-tlevel = 03.

it_tnode1-text = it_ybstsaco-progl.

it_tnode1-tlength = 5.

it_tnode1-tcolor = 1.

it_tnode1-tpos = 86.

it_tnode1-text2 = it_ybstsaco-objna.

it_tnode1-text3 = it_ybstsaco-objty.

APPEND it_tnode1.

CLEAR it_tnode1.

ENDLOOP.

ENDIF.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode1.

IF sy-subrc <> 0.

ENDIF.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND1'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE1'

callback_gui_status = 'S002'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START_COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

use_control = 'L'.

  • IMPORTING

  • F15 =

ENDFORM. " tree_display1

&----


*& Form Top_of_page1

&----


  • text

----


FORM top_of_page1.

DATA : v_len TYPE i.

CLEAR v_len.

v_len = STRLEN( it_ybstsaco-objna ).

WRITE : /40 'Unicode Analysis For the Object :' COLOR 1 NO-GAP,

it_ybstsaco-objna(v_len) COLOR 1 .

v_len = 33 + v_len.

WRITE : /40 sy-uline(v_len).

WRITE : /9 'Error Description' COLOR 1,

74 'Err ' COLOR 2 INTENSIFIED ON,

79 'Err ' COLOR 3,

86 'Line' COLOR 2 INTENSIFIED ON.

WRITE : /13 'Error Line' COLOR 7,

74 'TYPE' COLOR 2,

79 'Count' COLOR 3,

86 'Numb' COLOR 2.

WRITE : sy-uline.

ENDFORM. "Top_of_page1

&----


*& Form user_command1

&----


  • text

----


-

FORM user_command1 TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

IF sy-ucomm EQ 'DISP' OR

sy-ucomm EQ 'TRPI'.

IF pt_nodes-tlevel EQ '03' AND

( pt_nodes-selfield NE 'MINUS' OR

pt_nodes-selfield NE 'PLUS').

IF pt_nodes-text3 NE 'FUNC'.

CALL FUNCTION 'EDITOR_PROGRAM'

EXPORTING

display = 'X'

line = pt_nodes-text

program = pt_nodes-text2.

ELSEIF pt_nodes-text3 EQ 'FUNC'..

CALL FUNCTION 'RS_TOOL_ACCESS'

EXPORTING

operation = 'SHOW'

object_name = pt_nodes-text2

object_type = 'FUNC'

  • ENCLOSING_OBJECT =

position = pt_nodes-text

  • DEVCLASS =

  • INCLUDE =

  • VERSION = ' '

  • MONITOR_ACTIVATION = 'X'

  • WB_MANAGER =

  • IN_NEW_WINDOW =

  • WITH_OBJECTLIST = ' '

  • WITH_WORKLIST = ' '

.

IF sy-subrc <> 0.

ENDIF.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

ELSEIF ( pt_nodes-selfield EQ 'MINUS' OR

pt_nodes-selfield EQ 'PLUS') OR

sy-ucomm EQ 'TREP' OR

sy-ucomm EQ 'TRCM'.

ELSE.

MESSAGE 'Click on Error Line For Further Navigation'

TYPE 'I'.

ENDIF.

ENDIF.

ENDFORM. "user_command1

&----


*& Form s002

&----


  • text

----


FORM s002.

SET PF-STATUS 'S2SCR'.

SET TITLEBAR 'T002'.

ENDFORM. "s002

&----


*& Form 2count

&----


FORM 2count .

DATA : v_len.

CLEAR v_uecount.

LOOP AT it_ybstsaco WHERE objna EQ it_ybstsaco-objna

AND devcl EQ it_ybstsaco-devcl

AND upgru EQ it_ybstsaco-upgru.

v_uecount = v_uecount + 1.

ENDLOOP.

CLEAR : v_len,v_ues.

v_ues = v_uecount.

v_len = STRLEN( v_ues ).

v_len = 7 - v_len.

SHIFT v_ues RIGHT BY v_len PLACES.

ENDFORM. " 2count

&----


*& Form get_zebra

&----


FORM get_zebra USING v_cl.

IF v_cl IS INITIAL.

it_tnode-tintensiv9 = 'X'.

it_tnode-intensiv = 'X'.

it_tnode-tintensiv1 = 'X'.

it_tnode-tintensiv2 = 'X'.

it_tnode-tintensiv3 = 'X'.

it_tnode-tintensiv4 = 'X'.

it_tnode-tintensiv5 = 'X'.

it_tnode-tintensiv6 = 'X'.

it_tnode-tintensiv7 = 'X'.

it_tnode-tintensiv8 = 'X'.

it_tnode-tintensiv = 'X'.

v_cl ='X'.

ELSE.

it_tnode-tintensiv9 = ' '.

it_tnode-tintensiv = ' '.

it_tnode-intensiv = ' '.

it_tnode-tintensiv1 = ' '.

it_tnode-tintensiv2 = ' '.

it_tnode-tintensiv3 = ' '.

it_tnode-tintensiv4 = ' '.

it_tnode-tintensiv5 = ' '.

it_tnode-tintensiv6 = ' '.

it_tnode-tintensiv7 = ' '.

it_tnode-tintensiv8 = ' '.

CLEAR v_cl.

ENDIF.

ENDFORM. " get_zebra

&----


*& Form get_data

&----


  • text

----


FORM get_data .

CLEAR it_ybstsaco.

REFRESH it_ybstsaco.

*Fetching All The Error Data From Ybstsaco Table

SELECT *

FROM ybstucck

INTO TABLE it_ybstsaco

WHERE devcl IN s_devcl

AND objna IN s_objna.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'The Package doesnot contain any Upgrade issues' TYPE 'I'.

ENDIF.

ENDFORM. " get_data

&----


*& Form get_data_rule_wise

&----


  • text

----


FORM get_data_rule_wise .

SELECT upgru

impac

analw

objna

objty

categ

abapl

progl

INTO TABLE it_rulesaco

FROM ybstucck

WHERE devcl IN s_devcl.

IF sy-subrc NE 0.

v_flag = 'X'.

MESSAGE 'The Package doesnot contain any Upgrade issues' TYPE 'I'.

ENDIF.

ENDFORM. " get_data_rule_wise

&----


*& Form tree_display

&----


FORM tree_display_rule_wise .

DATA : it_tnode LIKE snodetext OCCURS 0 WITH HEADER LINE,

v_cntrule1(7).

LOOP AT it_rulesaco.

SHIFT it_rulesaco-upgru LEFT DELETING LEADING '0'.

MODIFY it_rulesaco INDEX sy-tabix.

ENDLOOP.

CLEAR it_tnode.

REFRESH it_tnode.

SORT it_rulesaco BY upgru objna.

it_tnode-name = 'Rule Wise'.

it_tnode-color = 1.

it_tnode-nlength = 9.

it_tnode-tlevel = 1.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco.

AT NEW upgru.

READ TABLE it_rulesaco INDEX sy-tabix.

it_tnode-name = it_rulesaco-upgru.

it_tnode-color = 1.

it_tnode-nlength = 3.

it_tnode-tlevel = 2.

it_tnode-text = it_rulesaco-analw.

it_tnode-tcolor = 1.

it_tnode-tlength = 64.

it_tnode-tpos = 13.

PERFORM get_inforule.

it_tnode-text1 = icon.

it_tnode-kind1 = 'I'.

it_tnode-tpos1 = 78.

it_tnode-tlength1 = 3.

v_cntrule1 = v_cntrule.

it_tnode-text2 = v_cntrule1.

it_tnode-tpos2 = 83.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco1.

AT NEW objna.

READ TABLE it_rulesaco1 INDEX sy-tabix.

READ TABLE it_rulesaco INDEX sy-tabix.

it_tnode-name = it_rulesaco1-objna.

it_tnode-color = 1.

it_tnode-nlength = 30.

it_tnode-tlevel = 3.

it_tnode-text = it_rulesaco1-objty.

it_tnode-tcolor = 5.

it_tnode-tlength = 4.

it_tnode-tpos = 45.

it_tnode-text1 = it_rulesaco1-categ.

it_tnode-tcolor1 = 5.

it_tnode-tlength1 = 4.

it_tnode-tpos1 = 50.

PERFORM objna_count.

v_cntrule1 = v_cntrule.

it_tnode-text2 = v_cntrule1.

it_tnode-tpos2 = 83.

it_tnode-tlength2 = 7.

it_tnode-tcolor2 = 3.

APPEND it_tnode.

CLEAR it_tnode.

LOOP AT it_rulesaco1 WHERE objna EQ it_rulesaco1-objna.

it_tnode-name = it_rulesaco1-progl.

it_tnode-color = 1.

it_tnode-nlength = 6.

it_tnode-tlevel = 4.

it_tnode-text = it_rulesaco1-abapl.

it_tnode-tcolor = 1.

it_tnode-tlength = 72.

it_tnode-tpos = 24.

it_tnode-text1 = it_rulesaco1-objna.

it_tnode-text2 = it_rulesaco1-objty.

APPEND it_tnode.

CLEAR it_tnode.

ENDLOOP.

ENDAT.

ENDLOOP.

ENDAT.

ENDLOOP.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

TABLES

nodetab = it_tnode.

CALL FUNCTION 'RS_TREE_LIST_DISPLAY'

EXPORTING

callback_program = sy-repid

callback_user_command = 'USER_COMMAND_RULE'

  • CALLBACK_TEXT_DISPLAY =

  • CALLBACK_MOREINFO_DISPLAY =

  • CALLBACK_COLOR_DISPLAY =

callback_top_of_page = 'TOP_OF_PAGE_RULE'

callback_gui_status = 'S001_RULE'

  • CALLBACK_CONTEXT_MENU =

  • STATUS = 'IMPLICIT'

  • CHECK_DUPLICATE_NAME = '1'

  • COLOR_OF_NODE = '4'

  • COLOR_OF_MARK = '3'

  • COLOR_OF_LINK = '1'

  • COLOR_OF_MATCH = '5'

  • LOWER_CASE_SENSITIVE = ' '

  • MODIFICATION_LOG = ' '

  • NODE_LENGTH = 30

  • TEXT_LENGTH = 75

  • TEXT_LENGTH1 = 0

  • TEXT_LENGTH2 = 0

  • RETURN_MARKED_SUBTREE = ' '

  • SCREEN_START_COLUMN = 0

  • SCREEN_START_LINE = 0

  • SCREEN_END_COLUMN = 0

  • SCREEN_END_LINE = 0

  • SUPPRESS_NODE_OUTPUT = ' '

  • LAYOUT_MODE = ' '

  • USE_CONTROL = STREE_USE_LIST

  • IMPORTING

  • F15 =

.

ENDFORM. " tree_display

&----


*& Form user_command

&----


  • text

----


FORM user_command_rule TABLES pt_nodes STRUCTURE seucomm

USING pv_command TYPE c

CHANGING pv_exit TYPE c

pv_list_refresh TYPE c.

CASE sy-ucomm.

when 'OBJT'.

data : begin of it_cnt occurs 0,

objna(30),

errcnt type i,

end of it_cnt.

data : itab1 like it_cnt occurs 0 with header line.

data : itab2 like it_cnt occurs 0 with header line.

data : begin of it_optru occurs 0,

optru like ybstsaco-upgru,

errcnt type i,

end of it_optru.

select upgru

into table it_optru

from ybstsaco

where devcl in s_devcl.

sort it_optru.

loop at it_optru.

it_cnt-errcnt = it_cnt-errcnt + 1.

at end of optru.

it_cnt-objna = it_optru-optru.

append it_cnt.

clear it_cnt.

endat.

endloop.

CALL FUNCTION

'GRAPH_MATRIX_2D'

EXPORTING

SO_TITLE = 'TITLE'

TITL = 'Rules/ Number of Errors Distribution'

VALT = 'Number of Errors '

TABLES

DATA = it_cnt

OPTS = itab1

TCOL = itab2.

WHEN 'TRPI' OR 'DISP'.

IF pt_nodes-tlevel EQ '04' .

CALL FUNCTION 'RS_TOOL_ACCESS'

EXPORTING

operation = 'SHOW'

object_name = pt_nodes-text1

object_type = pt_nodes-text2

  • ENCLOSING_OBJECT =

position = pt_nodes-name

  • DEVCLASS =

  • INCLUDE =

  • VERSION = ' '

  • MONITOR_ACTIVATION = 'X'

  • WB_MANAGER =

  • IN_NEW_WINDOW =

  • WITH_OBJECTLIST = ' '

  • WITH_WORKLIST = ' '

  • IMPORTING

  • NEW_NAME =

  • WB_TODO_REQUEST =

  • TABLES

  • OBJLIST =

  • CHANGING

  • P_REQUEST = ' '

  • EXCEPTIONS

  • NOT_EXECUTED = 1

  • INVALID_OBJECT_TYPE = 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.

.

ELSEIF pt_nodes-selfield EQ 'MINUS' OR pt_nodes-selfield EQ 'PLUS'.

ELSE.

MESSAGE 'Select the Error Line For Further Navigation' TYPE 'I'.

ENDIF.

WHEN OTHERS.

ENDCASE.

ENDFORM. "user_command

&----


*& Form s001

&----


  • text

----


FORM s001_rule.

SET PF-STATUS 'S002'.

SET TITLEBAR 'T001'.

ENDFORM. "s001

&----


*& Form get_inforule

&----


FORM get_inforule .

IF it_rulesaco-impac EQ 'W'.

icon = yellow.

ELSE.

icon = red.

ENDIF.

CLEAR it_rulesaco1.

REFRESH it_rulesaco1.

LOOP AT it_rulesaco WHERE upgru EQ it_rulesaco-upgru.

MOVE-CORRESPONDING it_rulesaco TO it_rulesaco1.

APPEND it_rulesaco1.

ENDLOOP.

CLEAR v_cntrule.

LOOP AT it_rulesaco WHERE upgru EQ it_rulesaco-upgru.

v_cntrule = v_cntrule + 1.

ENDLOOP.

ENDFORM. " get_inforule

&----


*& Form objna_count

&----


FORM objna_count .

CLEAR v_cntrule.

LOOP AT it_rulesaco1 WHERE upgru EQ it_rulesaco1-upgru

AND objna EQ it_rulesaco1-objna.

v_cntrule = v_cntrule + 1.

ENDLOOP.

ENDFORM. " objna_count

&----


*& Form top_of_page_rule

&----


  • text

----


FORM top_of_page_rule.

WRITE : 40(16) 'Unicode Analysis' COLOR 1,

/40(16) '****************',/,

40(16) 'Rule Wise Report'.

ENDFORM. "top_of_page_rule

Regards,

Anji

Message was edited by:

Anji Reddy Vangala

Read only

Former Member
0 Likes
812

Hi,

here a short example to use a graph.

seach in se37 with graph* and find more possibilities.

DATA: BEGIN OF IGRAPH OCCURS 0,

TEXT(07),

VALUE LIKE MBEW-VERPR,

END OF IGRAPH.

*

IGRAPH-TEXT = '1. Wert'. IGRAPH-VALUE = 10. APPEND IGRAPH.

IGRAPH-TEXT = '2. Wert'. IGRAPH-VALUE = 11. APPEND IGRAPH.

IGRAPH-TEXT = '3. Wert'. IGRAPH-VALUE = 12. APPEND IGRAPH.

IGRAPH-TEXT = '4. Wert'. IGRAPH-VALUE = 13. APPEND IGRAPH.

IGRAPH-TEXT = '5. Wert'. IGRAPH-VALUE = 14. APPEND IGRAPH.

IGRAPH-TEXT = '6. Wert'. IGRAPH-VALUE = 15. APPEND IGRAPH.

IGRAPH-TEXT = '7. Wert'. IGRAPH-VALUE = 16. APPEND IGRAPH.

IGRAPH-TEXT = '8. Wert'. IGRAPH-VALUE = 17. APPEND IGRAPH.

IGRAPH-TEXT = '9. Wert'. IGRAPH-VALUE = 18. APPEND IGRAPH.

IGRAPH-TEXT = '10. Wert'. IGRAPH-VALUE = 19. APPEND IGRAPH.

IGRAPH-TEXT = '11. Wert'. IGRAPH-VALUE = 20. APPEND IGRAPH.

*

CALL FUNCTION 'GRAPH_3D'

EXPORTING

TITL = 'Muster'

VALT = 'GLD in EUR'

TABLES

DATA = IGRAPH.

Regards, Dieter

Read only

Former Member
0 Likes
812

Hi,

Refer to the following code.Just copy & paste in a new program & observe the result.

DATA: BEGIN OF ITAB_DATA OCCURS 0,

DATANAME(15),

QUANTITY1 TYPE I,

QUANTITY2 TYPE I,

QUANTITY3 TYPE I,

END OF ITAB_DATA,

BEGIN OF ITAB_OPTIONS OCCURS 0,

OPTION(20),

END OF ITAB_OPTIONS.

ITAB_DATA-DATANAME = 'Electricity'.

ITAB_DATA-QUANTITY1 = 55.

ITAB_DATA-QUANTITY2 = 62.

ITAB_DATA-QUANTITY3 = 59.

APPEND ITAB_DATA.

ITAB_DATA-DATANAME = 'Gas'.

ITAB_DATA-QUANTITY1 = 35.

ITAB_DATA-QUANTITY2 = 52.

ITAB_DATA-QUANTITY3 = 44.

APPEND ITAB_DATA.

ITAB_DATA-DATANAME = 'Water'.

ITAB_DATA-QUANTITY1 = 18.

ITAB_DATA-QUANTITY2 = 22.

ITAB_DATA-QUANTITY3 = 19.

APPEND ITAB_DATA.

CALL FUNCTION 'GRAPH_MATRIX_3D'

EXPORTING

COL1 = 'Jan'

COL2 = 'Feb'

COL3 = 'Mar'

TITL = 'Utility Expenses in US$.'

TABLES

DATA = ITAB_DATA

OPTS = ITAB_OPTIONS

EXCEPTIONS

OTHERS = 1.

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

0 Likes
812

Hi Sipra,

Your program is very helpful but ,I need Pie chart. can you send me some program of it?

Thanks & Regard.

Ankur Garg.

Read only

0 Likes
812

Hi Ankur,

Please refer this program

GFW_PROG_PIE.

This uses the controls to dicplay the pie chart.

Hope this helps you.

reward if useful.

Regards,

Saumya