*&---------------------------------------------------------------------*
*& Report ZSAN_GRAPH
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSAN_GRAPH.
*** Internal table to hold Statistical data
DATA:
BEGIN OF IT_DATA OCCURS 0,
DATANAME(15),
QUANTITY1 TYPE I,
QUANTITY2 TYPE I,
QUANTITY3 TYPE I,
END OF IT_DATA.
*** Internal table to hold Options
DATA:
BEGIN OF IT_OPTIONS OCCURS 0,
OPTION(20),
END OF IT_OPTIONS.
*** Populating statistics data
IT_DATA-DATANAME = 'India'.
IT_DATA-QUANTITY1 = 55.
IT_DATA-QUANTITY2 = 62.
IT_DATA-QUANTITY3 = 59.
APPEND IT_DATA.
IT_DATA-DATANAME = 'UK'.
IT_DATA-QUANTITY1 = 35.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 44.
APPEND IT_DATA.
IT_DATA-DATANAME = 'USA'.
IT_DATA-QUANTITY1 = 18.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 19.
APPEND IT_DATA.
*** Call FM to generate graph for the stats
CALL FUNCTION 'GRAPH_MATRIX_3D'
EXPORTING
COL1 = 'IT Professionals'
COL2 = 'Doctors'
COL3 = 'Engineers'
TITL = 'Professional Statistics'
TABLES
DATA = IT_DATA
OPTS = IT_OPTIONS
EXCEPTIONS
OTHERS = 1.
Sunday, March 28, 2010
Thursday, March 18, 2010
Oops Program to navigate the screens

*&---------------------------------------------------------------------*
*& Report Z_15006_MP_1203_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_15006_MP_1203_1.
TYPES: BEGIN OF ty_bws,
company TYPE char20, " Company
division TYPE char20, " Division1...
emp_team TYPE char20, " Software / Non Software
emp_spe TYPE char20, " Employee Specialization
END OF ty_bws.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& DATA DECLARATIONS
*--------------------------------------------------------------------------------------------------------------------------------------------*
DATA: g_alv_tree TYPE REF TO cl_gui_alv_tree, " For ALV tree
g_custom_container TYPE REF TO cl_gui_custom_container, " For custom container
a_hier_header TYPE treev_hhdr. " For Header
DATA: t_bws TYPE TABLE OF ty_bws,
v_bws TYPE ty_bws,
t_bws2 LIKE t_bws.
DATA: t_fieldcat TYPE lvc_t_fcat.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& END OF SELECTIONS
*--------------------------------------------------------------------------------------------------------------------------------------------*
END-OF-SELECTION.
" Call Screen 9001
CALL SCREEN 9000.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form INIT_TREE
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM init_tree .
* Create container for alv tree
CONSTANTS: l_tree_container_name(30) TYPE c VALUE 'CC1'.
* Create Object for the custom container
CREATE OBJECT g_custom_container
EXPORTING
* PARENT =
container_name = l_tree_container_name
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6 .
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'Error in G_CUSTOM_CONTAINER'(100).
ENDIF.
* Create Tree control
CREATE OBJECT g_alv_tree
EXPORTING
* LIFETIME =
parent = g_custom_container
* SHELLSTYLE =
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
* HIDE_SELECTION =
item_selection = 'X'
no_toolbar = ''
no_html_header = 'X'
* I_PRINT =
* I_FCAT_COMPLETE =
* I_MODEL_MODE =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'Error in G_ALV_TREE'(100).
ENDIF.
ENDFORM. " INIT_TREE
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form BUILD_HIER_HEADER
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* <--P_P_HIER_HEADER text
* <--P_TYPE text
* <--P_TREEV_HHDR text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM build_hier_header CHANGING p_hier_header TYPE treev_hhdr.
p_hier_header-heading = 'Company/Divisions/Businesses/Employee Teams/Employees'(300).
p_hier_header-tooltip = 'This is tool tip'(400).
p_hier_header-width = 35.
p_hier_header-width_pix = ''.
ENDFORM. " BUILD_HIER_HEADER
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
MODULE status_9001 OUTPUT.
SET PF-STATUS 'PF_9001'.
SET TITLEBAR 'TB_9001'.
IF g_alv_tree IS INITIAL.
PERFORM init_tree. " Initialize tree
PERFORM build_hier_header CHANGING a_hier_header. " Build Hierarchy Header
PERFORM build_data_tab.
PERFORM preapre_fcat.
PERFORM call_alv.
PERFORM create_hier_root.
** Send data to frontend.
CALL METHOD g_alv_tree->frontend_update.
ENDIF.
ENDMODULE. " STATUS_9001 OUTPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
MODULE user_command_9001 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9001 INPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form PREAPRE_FCAT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM preapre_fcat .
DATA: wa_fieldcat TYPE lvc_s_fcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'COMPANY'.
wa_fieldcat-seltext = 'Division'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'DIVISION'.
wa_fieldcat-seltext = 'Division'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'EMP_TEAM'.
wa_fieldcat-seltext = 'Employee Team'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'EMP_SPE'.
wa_fieldcat-seltext = 'Employee Specialization'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " PREAPRE_FCAT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form BUILD_DATA_TAB
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM build_data_tab .
PERFORM append_data USING 'Company' 'Division1' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division1' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division1' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division1' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division2' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division2' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division2' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division2' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division3' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division3' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division3' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division3' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division4' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division4' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division4' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division4' 'Non-Software' 'Other Workers'.
ENDFORM. " BUILD_DATA_TAB
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form CALL_ALV
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM call_alv .
CALL METHOD g_alv_tree->set_table_for_first_display
EXPORTING
is_hierarchy_header = a_hier_header
CHANGING
it_fieldcatalog = t_fieldcat
it_outtab = t_bws2. "table must be empty !
ENDFORM. " CALL_ALV
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form CREATE_HIER_ROOT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM create_hier_root .
DATA: p_divnode TYPE lvc_nkey,
p_teamnode TYPE lvc_nkey,
p_lastnode TYPE lvc_nkey,
p_division TYPE ty_bws-division.
DATA: l_node_text TYPE lvc_value.
DATA: lv_emp_team TYPE ty_bws-emp_team,
lv_emp_spe TYPE ty_bws-emp_spe.
break jdonepudi.
l_node_text = 'Company'.
CLEAR v_bws.
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = ''
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
IMPORTING
e_new_node_key = p_divnode.
*sort t_bws by division emp_team emp_spe.
LOOP AT t_bws INTO v_bws.
l_node_text = v_bws-division.
*p_relat_key = 1.
AT NEW division.
*at end of division.
PERFORM add_division USING v_bws
p_divnode
l_node_text
CHANGING p_teamnode.
p_division = v_bws-division.
ENDAT.
*at new emp_team - Software / Non Software
IF lv_emp_team <> v_bws-emp_team.
lv_emp_team = v_bws-emp_team.
l_node_text = v_bws-emp_team.
PERFORM add_emp_team USING v_bws
p_teamnode
l_node_text
CHANGING p_lastnode.
ENDIF.
*at new emp_spe SAP / .net Designers / Other Workers
IF lv_emp_spe <> v_bws-emp_spe.
lv_emp_spe = v_bws-emp_spe.
l_node_text = v_bws-emp_spe.
IF lv_emp_spe = '.net' OR
lv_emp_spe = 'Other Workers'.
p_lastnode = p_lastnode - 1.
ENDIF.
PERFORM add_emp_team USING v_bws
p_lastnode
l_node_text
CHANGING p_lastnode.
ENDIF.
ENDLOOP.
ENDFORM. " CREATE_HIER_ROOT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form ADD_EMP_TEAM
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_KEY text
* -->P_TEXT text
* -->P_OUTTAB text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM add_emp_team USING p_v_bws TYPE ty_bws
p_key TYPE lvc_nkey
p_text TYPE lvc_value
CHANGING p_key2 TYPE lvc_nkey.
* add node
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = p_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = p_text
is_outtab_line = p_v_bws
IMPORTING
e_new_node_key = p_key2.
ENDFORM. " ADD_EMP_TEAM
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form ADD_DIVISION
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_V_BWS text
* -->P_KEY text
* -->P_TEXT text
* <--P_KEY2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM add_division USING p_v_bws TYPE ty_bws
p_key TYPE lvc_nkey
p_text TYPE lvc_value
CHANGING p_key2 TYPE lvc_nkey.
* add node
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = p_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = p_text
is_outtab_line = p_v_bws
IMPORTING
e_new_node_key = p_key2.
ENDFORM. " ADD_DIVISION
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form APPEND_DATA
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_COMPANY text
* -->P_DIVISION text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM append_data USING p_company TYPE ty_bws-company
p_division TYPE ty_bws-division
p_empteam TYPE ty_bws-emp_team
p_empspe TYPE ty_bws-emp_spe.
v_bws-company = p_company.
v_bws-division = p_division.
v_bws-emp_team = p_empteam.
v_bws-emp_spe = p_empspe.
APPEND v_bws TO t_bws. CLEAR v_bws.
ENDFORM. " APPEND_DATA
output:
Write the Month Name based on input date
*&---------------------------------------------------------------------*
*& Report YDATES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YDATES.
FIELD-SYMBOLS: TYPE ANY.
CONSTANTS: lc_fl01(9) TYPE c VALUE 'January',
lc_fl02(9) TYPE c VALUE 'February',
lc_fl03(9) TYPE c VALUE 'March',
lc_fl04(9) TYPE c VALUE 'April',
lc_fl05(9) TYPE c VALUE 'May',
lc_fl06(9) TYPE c VALUE 'June',
lc_fl07(9) TYPE c VALUE 'July',
lc_fl08(9) TYPE c VALUE 'August',
lc_fl09(9) TYPE c VALUE 'September',
lc_fl10(9) TYPE c VALUE 'Octomber',
lc_fl11(9) TYPE c VALUE 'November',
lc_fl12(9) TYPE c VALUE 'December'.
DATA: lv_dd(2),
lv_mm(2),
lv_yyyy(4),
lv_month TYPE char7,
lv_month_name(9).
parameters: p_date type sy-datum.
lv_mm = p_date+4(2).
CONCATENATE 'lc_fl' lv_mm INTO lv_month.
ASSIGN (lv_month) TO.
lv_month_name =.
write : lv_month_name.
*& Report YDATES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YDATES.
FIELD-SYMBOLS:
CONSTANTS: lc_fl01(9) TYPE c VALUE 'January',
lc_fl02(9) TYPE c VALUE 'February',
lc_fl03(9) TYPE c VALUE 'March',
lc_fl04(9) TYPE c VALUE 'April',
lc_fl05(9) TYPE c VALUE 'May',
lc_fl06(9) TYPE c VALUE 'June',
lc_fl07(9) TYPE c VALUE 'July',
lc_fl08(9) TYPE c VALUE 'August',
lc_fl09(9) TYPE c VALUE 'September',
lc_fl10(9) TYPE c VALUE 'Octomber',
lc_fl11(9) TYPE c VALUE 'November',
lc_fl12(9) TYPE c VALUE 'December'.
DATA: lv_dd(2),
lv_mm(2),
lv_yyyy(4),
lv_month TYPE char7,
lv_month_name(9).
parameters: p_date type sy-datum.
lv_mm = p_date+4(2).
CONCATENATE 'lc_fl' lv_mm INTO lv_month.
ASSIGN (lv_month) TO
lv_month_name =
write : lv_month_name.
Subscribe to:
Posts (Atom)