Advertisement
yaramohamed78

Report ZHCMR_ASSESSMENT

Feb 22nd, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 14.90 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZHCMR_ASSESSMENT
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT zhcmr_assessment.
  10.  
  11. INCLUDE zhcmn_assessment_data.
  12. INCLUDE zhcmn_assessment_parms.
  13.  
  14. INITIALIZATION.
  15.   PERFORM f_initialize.
  16.  
  17.  
  18.  
  19. START-OF-SELECTION.
  20.  
  21.   DATA r_pernr TYPE TABLE OF selopt WITH HEADER LINE.
  22.   IF s_pernr IS NOT INITIAL.
  23.     MOVE-CORRESPONDING s_pernr[] TO r_pernr[].
  24.  
  25.   ELSE.
  26.     CLEAR r_pernr[].
  27.   ENDIF.
  28.   IF p_prf = abap_true.
  29.     PERFORM f_retrive_profile_data.
  30.  
  31.     IF it_profile_ext IS NOT INITIAL.
  32.       PERFORM f_prepare_fcat_prf.
  33.       PERFORM f_show_report TABLES it_profile_ext USING 'PS9188' 'Profile XT Report'.
  34.     ENDIF.
  35.  
  36. ****
  37.   ELSEIF p_tln = abap_true.
  38.     PERFORM f_retrive_talent_data.
  39.     IF it_talent_ext IS NOT INITIAL.
  40.       PERFORM f_prepare_fcat_tln.
  41.       PERFORM f_show_report TABLES it_talent_ext USING 'PS9189' 'Talent Q Report'.
  42.     ENDIF.
  43.  
  44.   ELSEIF p_eng = abap_true.
  45.     PERFORM f_retrive_english_data.
  46.     IF it_english_ext IS NOT INITIAL.
  47.       PERFORM f_prepare_fcat_eng.
  48.       PERFORM f_show_report TABLES it_english_ext USING 'PS9190' 'English Test Report'.
  49.     ENDIF.
  50. ****
  51.   ELSEIF p_app = abap_true.
  52.  
  53.     PERFORM f_retrive_appraisal_data.
  54.     IF it_appraisal_ext IS NOT INITIAL.
  55.       PERFORM f_prepare_fcat_app.
  56.       PERFORM f_show_report TABLES it_appraisal_ext USING 'PS9191' 'Appraisal Report'.
  57.     ENDIF.
  58. **
  59.   ELSEIF p_maj = abap_true.
  60.     CALL SCREEN 0001.
  61.   ENDIF.
  62.  
  63.  
  64. FORM f_fill_app_ext.
  65.   CLEAR it_appraisal_ext[].
  66.   DATA it_personal_data TYPE TABLE OF bapip0001b.
  67.  
  68.  
  69.   MOVE-CORRESPONDING it_appraisal_9191[] TO it_appraisal_ext[].
  70.   LOOP AT it_appraisal_ext.
  71.     CLEAR it_personal_data[].
  72.     CALL FUNCTION 'BAPI_EMPLOYEE_GETDATA'
  73.       EXPORTING
  74.         employee_id    = it_appraisal_ext-pernr
  75.       TABLES
  76.         org_assignment = it_personal_data
  77. *       PERSONAL_DATA  =
  78. *       INTERNAL_CONTROL       =
  79. *       COMMUNICATION  =
  80. *       ARCHIVELINK    =
  81.       .
  82.     CHECK it_personal_data IS NOT INITIAL.
  83.     it_appraisal_ext-name = it_personal_data[ 1 ]-name.
  84.     MODIFY it_appraisal_ext.
  85.   ENDLOOP .
  86. ENDFORM.
  87. ****
  88.  
  89. FORM f_fill_eng_ext.
  90.   CLEAR it_english_ext[].
  91.   DATA it_personal_data TYPE TABLE OF bapip0001b.
  92.  
  93.  
  94.   MOVE-CORRESPONDING it_english_9190[] TO it_english_ext[].
  95.   LOOP AT it_english_ext.
  96.     CLEAR it_personal_data[].
  97.     CALL FUNCTION 'BAPI_EMPLOYEE_GETDATA'
  98.       EXPORTING
  99.         employee_id    = it_english_ext-pernr
  100.       TABLES
  101.         org_assignment = it_personal_data
  102. *       PERSONAL_DATA  =
  103. *       INTERNAL_CONTROL       =
  104. *       COMMUNICATION  =
  105. *       ARCHIVELINK    =
  106.       .
  107.     CHECK it_personal_data IS NOT INITIAL.
  108.     it_english_ext-name = it_personal_data[ 1 ]-name.
  109.     MODIFY it_english_ext.
  110.   ENDLOOP .
  111. ENDFORM.
  112.  
  113. FORM f_fill_tln_ext.
  114.   CLEAR it_talent_ext[].
  115.   DATA it_personal_data TYPE TABLE OF bapip0001b.
  116.  
  117.  
  118.   MOVE-CORRESPONDING it_talent_9189[] TO it_talent_ext[].
  119.   LOOP AT it_talent_ext.
  120.     CLEAR it_personal_data[].
  121.     CALL FUNCTION 'BAPI_EMPLOYEE_GETDATA'
  122.       EXPORTING
  123.         employee_id    = it_talent_ext-pernr
  124.       TABLES
  125.         org_assignment = it_personal_data
  126. *       PERSONAL_DATA  =
  127. *       INTERNAL_CONTROL       =
  128. *       COMMUNICATION  =
  129. *       ARCHIVELINK    =
  130.       .
  131.     CHECK it_personal_data IS NOT INITIAL.
  132.     SORT it_personal_data  BY to_date DESCENDING.
  133.     it_talent_ext-name = it_personal_data[ 1 ]-name.
  134.     MODIFY it_talent_ext.
  135.   ENDLOOP .
  136. ENDFORM.
  137. FORM f_initialize.
  138.  
  139. ENDFORM.
  140. *&---------------------------------------------------------------------*
  141. *&      Form  F_SHOW_APPRAISAL_REPORT
  142. *&---------------------------------------------------------------------*
  143. *       text
  144. *----------------------------------------------------------------------*
  145. *  -->  p1        text
  146. *  <--  p2        text
  147. *----------------------------------------------------------------------*
  148. FORM f_show_report TABLES i_tab USING str_name report_name.
  149.  
  150.  
  151. *In the function module pass :
  152.  
  153.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  154.     EXPORTING
  155.       i_structure_name = str_name
  156.       it_fieldcat      = i_fcat
  157.       i_grid_title     = report_name
  158.     TABLES
  159.       t_outtab         = i_tab.
  160. ENDFORM.                    " F_SHOW_APPRAISAL_REPORT
  161.  
  162.  
  163.  
  164. FORM f_prepare_fcat_app.
  165.   CLEAR wa_fcat.
  166.   CLEAR i_fcat[].
  167.   wa_fcat-outputlen = 15.
  168.   wa_fcat-col_pos = '1'.
  169.   wa_fcat-fieldname = 'PERNR'.
  170.   wa_fcat-seltext_m = 'Personnel No.'.
  171.   APPEND wa_fcat TO i_fcat.
  172.   CLEAR wa_fcat.
  173.   wa_fcat-outputlen = 40.
  174.   wa_fcat-col_pos = '2'.
  175.   wa_fcat-fieldname = 'NAME'.
  176.   wa_fcat-seltext_m = 'Name'.
  177.   APPEND wa_fcat TO i_fcat.
  178.   CLEAR wa_fcat.
  179. ENDFORM.
  180. FORM f_prepare_fcat_eng.
  181.   CLEAR wa_fcat.
  182.   CLEAR i_fcat[].
  183.   wa_fcat-outputlen = 15.
  184.   wa_fcat-col_pos = '1'.
  185.   wa_fcat-fieldname = 'PERNR'.
  186.   wa_fcat-seltext_m = 'Personnel No.'.
  187.   APPEND wa_fcat TO i_fcat.
  188.   CLEAR wa_fcat.
  189.   wa_fcat-col_pos = '2'.
  190.   wa_fcat-fieldname = 'NAME'.
  191.   wa_fcat-seltext_m = 'Name'.
  192.   wa_fcat-outputlen = 40.
  193.   APPEND wa_fcat TO i_fcat.
  194.   CLEAR wa_fcat.
  195. ENDFORM.
  196.  
  197. FORM f_prepare_fcat_tln.
  198.   CLEAR wa_fcat.
  199.   CLEAR i_fcat[].
  200.   wa_fcat-outputlen = 15.
  201.   wa_fcat-col_pos = '1'.
  202.   wa_fcat-fieldname = 'PERNR'.
  203.   wa_fcat-seltext_m = 'Personnel No.'.
  204.   APPEND wa_fcat TO i_fcat.
  205.   CLEAR wa_fcat.
  206.   wa_fcat-col_pos = '2'.
  207.   wa_fcat-fieldname = 'NAME'.
  208.   wa_fcat-seltext_m = 'Name'.
  209.   wa_fcat-outputlen = 40.
  210.   APPEND wa_fcat TO i_fcat.
  211.   CLEAR wa_fcat.
  212. ENDFORM.
  213. *&---------------------------------------------------------------------*
  214. *&      Form  F_FILL_PRF_EXT
  215. *&---------------------------------------------------------------------*
  216. *       text
  217. *----------------------------------------------------------------------*
  218. *  -->  p1        text
  219. *  <--  p2        text
  220. *----------------------------------------------------------------------*
  221. FORM f_fill_prf_ext .
  222.  
  223.   CLEAR it_profile_ext[].
  224.   DATA it_personal_data TYPE TABLE OF bapip0001b.
  225. **
  226.   MOVE-CORRESPONDING it_profile_9188[] TO it_profile_ext[].
  227.   LOOP AT it_profile_ext.
  228.     CLEAR it_personal_data[].
  229.  
  230.     CALL FUNCTION 'BAPI_EMPLOYEE_GETDATA'
  231.       EXPORTING
  232.         employee_id    = it_profile_ext-pernr
  233.       TABLES
  234.         org_assignment = it_personal_data
  235. *       PERSONAL_DATA  =
  236. *       INTERNAL_CONTROL       =
  237. *       COMMUNICATION  =
  238. *       ARCHIVELINK    =
  239.       .
  240.     CHECK it_personal_data IS NOT INITIAL.
  241.     SORT it_personal_data  BY to_date DESCENDING.
  242.     it_profile_ext-name = it_personal_data[ 1 ]-name.
  243.     MODIFY it_profile_ext.
  244.   ENDLOOP .
  245. ENDFORM.                    " F_FILL_PRF_EXT
  246. *&---------------------------------------------------------------------*
  247. *&      Form  F_PREPARE_FCAT_PRF
  248. *&---------------------------------------------------------------------*
  249. *       text
  250. *----------------------------------------------------------------------*
  251. *  -->  p1        text
  252. *  <--  p2        text
  253. *----------------------------------------------------------------------*
  254. FORM f_prepare_fcat_prf .
  255.  
  256.  
  257.   CLEAR wa_fcat.
  258.   CLEAR i_fcat[].
  259.   wa_fcat-outputlen = 15.
  260.   wa_fcat-col_pos = '1'.
  261.   wa_fcat-fieldname = 'PERNR'.
  262.   wa_fcat-seltext_m = 'Personnel No.'.
  263.   APPEND wa_fcat TO i_fcat.
  264.   CLEAR wa_fcat.
  265.   wa_fcat-col_pos = '2'.
  266.   wa_fcat-fieldname = 'NAME'.
  267.   wa_fcat-seltext_m = 'Name'.
  268.   wa_fcat-outputlen = 40.
  269.   APPEND wa_fcat TO i_fcat.
  270.   CLEAR wa_fcat.
  271.  
  272.   wa_fcat-col_pos = '3'.
  273.   wa_fcat-fieldname = 'SG'.
  274.   wa_fcat-seltext_m = 'SG'.
  275.   wa_fcat-outputlen = 10.
  276.   APPEND wa_fcat TO i_fcat.
  277.   CLEAR wa_fcat.
  278.  
  279.   wa_fcat-col_pos = '4'.
  280.   wa_fcat-fieldname = 'COMP_CODE'.
  281.   wa_fcat-seltext_m = 'Orglv'.
  282.   wa_fcat-outputlen = 10.
  283.   APPEND wa_fcat TO i_fcat.
  284.   CLEAR wa_fcat.
  285.  
  286.   wa_fcat-col_pos = '5'.
  287.   wa_fcat-fieldname = 'POSITION'.
  288.   wa_fcat-seltext_m = 'Current Position'.
  289.   wa_fcat-outputlen = 20.
  290.   APPEND wa_fcat TO i_fcat.
  291.   CLEAR wa_fcat.
  292.  
  293.  
  294.   wa_fcat-col_pos = '6'.
  295.   wa_fcat-fieldname = 'MAN_LVL'.
  296.   wa_fcat-seltext_m = 'Managerial Level'.
  297.   wa_fcat-outputlen = 20.
  298.   APPEND wa_fcat TO i_fcat.
  299.   CLEAR wa_fcat.
  300.  
  301.   wa_fcat-col_pos = '7'.
  302.   wa_fcat-fieldname = 'COSTCENTER'.
  303.   wa_fcat-seltext_m = 'Cost Center'.
  304.   wa_fcat-outputlen = 20.
  305.   APPEND wa_fcat TO i_fcat.
  306.   CLEAR wa_fcat.
  307.  
  308.   wa_fcat-col_pos = '7'.
  309.   wa_fcat-fieldname = 'PERS_AREA'.
  310.   wa_fcat-seltext_m = 'Location 1'.
  311.   wa_fcat-outputlen = 20.
  312.   APPEND wa_fcat TO i_fcat.
  313.   CLEAR wa_fcat.
  314.  
  315.   wa_fcat-col_pos = '8'.
  316.   wa_fcat-fieldname = 'P_SUBAREA'.
  317.   wa_fcat-seltext_m = 'Location 2'.
  318.   wa_fcat-outputlen = 20.
  319.   APPEND wa_fcat TO i_fcat.
  320.   CLEAR wa_fcat.
  321.  
  322.   wa_fcat-col_pos = '9'.
  323.   wa_fcat-fieldname = 'ORG_UNIT'.
  324.   wa_fcat-seltext_m = 'Department'.
  325.   wa_fcat-outputlen = 20.
  326.   APPEND wa_fcat TO i_fcat.
  327.   CLEAR wa_fcat.
  328.  
  329.  
  330.   wa_fcat-col_pos = '10'.
  331.   wa_fcat-fieldname = 'BUS_AREA'.
  332.   wa_fcat-seltext_m = 'Business Area'.
  333.   wa_fcat-outputlen = 20.
  334.   APPEND wa_fcat TO i_fcat.
  335.   CLEAR wa_fcat.
  336.  
  337.  
  338.   wa_fcat-col_pos = '11'.
  339.   wa_fcat-fieldname = 'SEN_DATE'.
  340.   wa_fcat-seltext_m = 'Seniority Date'.
  341.   wa_fcat-outputlen = 20.
  342.   APPEND wa_fcat TO i_fcat.
  343.   CLEAR wa_fcat.
  344.  
  345.   wa_fcat-col_pos = '12'.
  346.   wa_fcat-fieldname = 'LST_PRM'.
  347.   wa_fcat-seltext_m = 'Last Promotion'.
  348.   wa_fcat-outputlen = 20.
  349.   APPEND wa_fcat TO i_fcat.
  350.   CLEAR wa_fcat.
  351.  
  352. ENDFORM.                    " F_PREPARE_FCAT_PRF
  353.  
  354. *&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'DATA_SHEET'
  355. CONSTANTS: BEGIN OF c_data_sheet,
  356.              tab1 LIKE sy-ucomm VALUE 'DATA_SHEET_FC1',
  357.              tab2 LIKE sy-ucomm VALUE 'DATA_SHEET_FC2',
  358.              tab3 LIKE sy-ucomm VALUE 'DATA_SHEET_FC3',
  359.              tab4 LIKE sy-ucomm VALUE 'DATA_SHEET_FC4',
  360.            END OF c_data_sheet.
  361. *&SPWIZARD: DATA FOR TABSTRIP 'DATA_SHEET'
  362. CONTROLS:  data_sheet TYPE TABSTRIP.
  363. DATA:      BEGIN OF g_data_sheet,
  364.              subscreen   LIKE sy-dynnr,
  365.              prog        LIKE sy-repid VALUE 'ZHCMR_ASSESSMENT',
  366.              pressed_tab LIKE sy-ucomm VALUE c_data_sheet-tab1,
  367.            END OF g_data_sheet.
  368. DATA:      ok_code LIKE sy-ucomm.
  369.  
  370. *&SPWIZARD: OUTPUT MODULE FOR TS 'DATA_SHEET'. DO NOT CHANGE THIS LINE!
  371. *&SPWIZARD: SETS ACTIVE TAB
  372. MODULE data_sheet_active_tab_set OUTPUT.
  373.   data_sheet-activetab = g_data_sheet-pressed_tab.
  374.   CASE g_data_sheet-pressed_tab.
  375.     WHEN c_data_sheet-tab1.
  376.       g_data_sheet-subscreen = '0002'.
  377.     WHEN c_data_sheet-tab2.
  378.       g_data_sheet-subscreen = '0003'.
  379.     WHEN c_data_sheet-tab3.
  380.       g_data_sheet-subscreen = '0004'.
  381.     WHEN c_data_sheet-tab4.
  382.       g_data_sheet-subscreen = '0005'.
  383.     WHEN OTHERS.
  384. *&SPWIZARD:      DO NOTHING
  385.   ENDCASE.
  386. ENDMODULE.
  387.  
  388. *&SPWIZARD: INPUT MODULE FOR TS 'DATA_SHEET'. DO NOT CHANGE THIS LINE!
  389. *&SPWIZARD: GETS ACTIVE TAB
  390. MODULE data_sheet_active_tab_get INPUT.
  391.   ok_code = sy-ucomm.
  392.   CASE ok_code.
  393.     WHEN c_data_sheet-tab1.
  394.       g_data_sheet-pressed_tab = c_data_sheet-tab1.
  395.     WHEN c_data_sheet-tab2.
  396.       g_data_sheet-pressed_tab = c_data_sheet-tab2.
  397.     WHEN c_data_sheet-tab3.
  398.       g_data_sheet-pressed_tab = c_data_sheet-tab3.
  399.     WHEN c_data_sheet-tab4.
  400.       g_data_sheet-pressed_tab = c_data_sheet-tab4.
  401.     WHEN OTHERS.
  402. *&SPWIZARD:      DO NOTHING
  403.   ENDCASE.
  404. ENDMODULE.
  405.  
  406. *&---------------------------------------------------------------------*
  407. *&      Form  F_RETRIVE_PROFILE_DATA
  408. *&---------------------------------------------------------------------*
  409. *       text
  410. *----------------------------------------------------------------------*
  411. *  -->  p1        text
  412. *  <--  p2        text
  413. *----------------------------------------------------------------------*
  414. FORM f_retrive_profile_data .
  415.   CLEAR it_profile_ext[].
  416.     CLEAR it_profile_9188[].
  417.   CALL FUNCTION 'ZHCM_GET_PROFILE_XT_9188'
  418.     EXPORTING
  419.       im_latest_only   = p_latest
  420.     TABLES
  421.       im_pernrs_selopt = r_pernr
  422.       ex_tab_infty     = it_profile_9188.
  423.   IF it_profile_9188[] IS NOT INITIAL.
  424.     PERFORM f_fill_prf_ext.
  425.  
  426.   ELSE.
  427.     MESSAGE 'No talent test data found for selected personal no.' TYPE 'I'.
  428.   ENDIF.
  429. ENDFORM.                    " F_RETRIVE_PROFILE_DATA
  430. *&---------------------------------------------------------------------*
  431. *&      Form  F_RETRIVE_TALENT_DATA
  432. *&---------------------------------------------------------------------*
  433. *       text
  434. *----------------------------------------------------------------------*
  435. *  -->  p1        text
  436. *  <--  p2        text
  437. *----------------------------------------------------------------------*
  438. FORM f_retrive_talent_data .
  439.   CLEAR it_talent_ext[].
  440.     CLEAR it_talent_9189[].
  441.   CALL FUNCTION 'ZHCM_GET_TALENT_Q_9189'
  442.     EXPORTING
  443.       im_latest_only   = p_latest
  444.     TABLES
  445.       im_pernrs_selopt = r_pernr
  446.       ex_tab_infty     = it_talent_9189.
  447.   IF it_talent_9189[] IS NOT INITIAL.
  448.     PERFORM f_fill_tln_ext.
  449.  
  450.   ELSE.
  451.     MESSAGE 'No talent test data found for selected personal no.' TYPE 'I'.
  452.   ENDIF.
  453.  
  454. ENDFORM.                    " F_RETRIVE_TALENT_DATA
  455. *&---------------------------------------------------------------------*
  456. *&      Form  F_RETRIVE_ENGLISH_DATA
  457. *&---------------------------------------------------------------------*
  458. *       text
  459. *----------------------------------------------------------------------*
  460. *  -->  p1        text
  461. *  <--  p2        text
  462. *----------------------------------------------------------------------*
  463. FORM f_retrive_english_data .
  464.   CLEAR it_english_ext[].
  465.   CLEAR it_english_9190[].
  466.   CALL FUNCTION 'ZHCM_GET_ENGLISH_TEST_9190'
  467.     EXPORTING
  468.       im_latest_only   = p_latest
  469.     TABLES
  470.       im_pernrs_selopt = r_pernr
  471.       ex_tab_infty     = it_english_9190.
  472.   IF it_english_9190[] IS NOT INITIAL.
  473.     PERFORM f_fill_eng_ext.
  474.  
  475.   ELSE.
  476.     MESSAGE 'No english test data found for selected personal no.' TYPE 'I'.
  477.   ENDIF.
  478. ENDFORM.                    " F_RETRIVE_ENGLISH_DATA
  479. *&---------------------------------------------------------------------*
  480. *&      Form  F_RETRIVE_APPRAISAL_DATA
  481. *&---------------------------------------------------------------------*
  482. *       text
  483. *----------------------------------------------------------------------*
  484. *  -->  p1        text
  485. *  <--  p2        text
  486. *----------------------------------------------------------------------*
  487. FORM f_retrive_appraisal_data .
  488.   CLEAR it_appraisal_ext[].
  489.     CLEAR it_appraisal_9191[].
  490.   CALL FUNCTION 'ZHCM_GET_APPRAISAL_9191'
  491.     EXPORTING
  492.       im_latest_only   = p_latest
  493.     TABLES
  494.       im_pernrs_selopt = r_pernr
  495.       ex_tab_infty     = it_appraisal_9191.
  496.  
  497.   IF it_appraisal_9191[] IS NOT INITIAL.
  498.     PERFORM f_fill_app_ext.
  499.  
  500.  
  501.   ELSE.
  502.     MESSAGE 'No appraisal data found for selected personal no.' TYPE 'I'.
  503.   ENDIF.
  504. ENDFORM.                    " F_RETRIVE_APPRAISAL_DATA
  505. INCLUDE zhcmn_assessment_datasheet.
  506. INCLUDE zhcmn_assessment_datasheet_prf.
  507. INCLUDE zhcmn_assessment_datasheet_eng.
  508. INCLUDE zhcmn_assessment_datasheet_tln.
  509. INCLUDE zhcmn_assessment_datasheet_app.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement