Hi Markus,
Following is the code, please have a look on my code and help me to come out from this issue.
*&---------------------------------------------------------------------*
*& Report ZHR_EMP_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZHR_EMP_REPORT.
TABLES: pernr.
INFOTYPES: 0000, 0001, 0002, 0008, 0022,0041, 9007,0167, 0105.
TYPE-POOLS: slis.
* Type Declarations
TYPES: BEGIN OF TY_output,
sno(6) TYPE n,
werks TYPE string,
btrtl TYPE string,
persk TYPE pktxt,
pernr TYPE persno,
ENAME TYPE P0001-ENAME, " NAME
ptext TYPE btext,
NAME1 type T500P-NAME1,
BTEXT TYPE T001P-BTEXT,
ZZ_DESIGTEXT TYPE ZHRTR_DESIG, " Designation
GSBER type P0001-GSBER, " Bussiness Area
GTEXT TYPE TGSBT-GTEXT, " Bussiness Area TEXT
GBDAT TYPE P0002-GBDAT, "Date of Birth
ANSVH type P0001-ANSVH, " Stream
ATX TYPE T542T-ATX, " Stream TEXT
Start_date type P0022-BEGDA,
End_date type P0022-ENDDA,
mobile type p0105-usrid, "Communication ID/Number
EMAIL TYPE STRING, " Email ID
EMP_GRP TYPE STRING, " employee group
EMP_GENDER TYPE STRING,
END OF ty_output.
* Internal Table Declarations
DATA: it_output TYPE TABLE OF ty_output,
it_fieldcat TYPE slis_t_fieldcat_alv,
it_layout TYPE slis_layout_alv,
* IT_CADRE TYPE TABLE OF ZHRTR_CADRE,
IT_DESIG TYPE TABLE OF ZHRTR_DESIG,
IT_T503T TYPE TABLE OF T503T,
IT_T001P TYPE TABLE OF T001P,
IT_T500P TYPE TABLE OF T500P,
IT_P0022 TYPE TABLE OF P0022 .
* Work Area Declarations
DATA: wa_output TYPE ty_output,
wa_fieldcat TYPE slis_fieldcat_alv,
* WA_CADRE TYPE zhrtr_cadre,
WA_DESIG TYPE ZHRTR_DESIG,
WA_T503T TYPE T503T,
WA_T001P TYPE T001P,
WA_T500P TYPE T500P,
WA_P0105 type P0105,
WA_P0022 TYPE P0022,
SNO(6) TYPE n .
* Instantiate the used component
DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
* Selection Screen.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r1 RADIOBUTTON GROUP gr1 DEFAULT 'X' USER-COMMAND flg.
SELECTION-SCREEN COMMENT 10(3) text-002 FOR FIELD r1.
PARAMETERS: r2 RADIOBUTTON GROUP gr1 .
SELECTION-SCREEN COMMENT 20(6) text-003 FOR FIELD r2.
PARAMETERS: r3 RADIOBUTTON GROUP gr1 .
SELECTION-SCREEN COMMENT 30(4) text-004 FOR FIELD r3.
PARAMETERS: r4 RADIOBUTTON GROUP gr1 .
SELECTION-SCREEN COMMENT 40(5) text-007 FOR FIELD r4.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b1.
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-015.
SELECT-OPTIONS: s_date FOR sy-datum NO-EXTENSION NO INTERVALS OBLIGATORY. ".
SELECTION-SCREEN: END OF BLOCK b2. "Selection Screen.
Initialization.
At selection-screen.
PERFORM check.
START-OF-SELECTION.
pn-begda = '18000101'.
pn-endda = s_date-low. "s_date-high.
* TO GET THE DESIGNATION TEXT
SELECT * FROM ZHRTR_DESIG INTO TABLE IT_DESIG.
* SELECT TO GET EMPLOYEE SUBGROUP
select * from t503t into table IT_T503T where sprsl = sy-langu.
* SELECT TO GET PA (CIRCLE) CODE
SELECT * FROM T500P into table IT_T500P WHERE molga = '40'.
* SELECT TO GET PSA(SSA) CODE
SELECT * from t001p INTO TABLE IT_T001P where molga = '40'.
GET PERNR.
IF r2 = 'X'.
if PNPWERKS IS INITIAL.
Exit.
endif.
ELSEIF r1 = 'X' and PNPWERKS IS INITIAL and PNPBTRTL IS INITIAL.
Exit.
elseif r1 = 'X' and PNPWERKS IS not INITIAL and PNPBTRTL IS INITIAL.
exit.
elseif r4 = 'X' .
if PNPpernr IS INITIAL.
Exit.
endif.
ENDIF.
RP-PROVIDE-FROM-LAST P0000 SPACE PN-BEGDA PN-ENDDA.
"CHECK P0000-STAT2 for active employees
IF pnp-sw-found EQ 1.
" If to include the employees in active list whose separation was run in advance
IF P0000-BEGDA > SY-DATUM AND p0000-MASSN eq 'ZC'. " Change Ist: replace P0000-ENDDA > SY-DATUM with p0000-MASSN eq'Zc'..
CHECK P0000-STAT2 EQ '0'. " EMPLOYEE IS STILL ACTIVE
ELSEIF P0000-ENDDA < SY-DATUM AND p0000-MASSN eq 'ZC'. " Change 2nd: adding P0000-MASSN eq'Zc'..
REJECT.
ELSE.
CHECK p0000-STAT2 EQ '3'. " CHECK THE ACTIVE STATUS
ENDIF.
RP-PROVIDE-FROM-LAST P0001 SPACE PN-BEGDA PN-ENDDA.
if p0000-MASSN ne 'ZF'. " Change 3rd: if added for including Deputation employees
CHECK P0001-ABKRS NE '99'. " CHECK TO EXCLUDE THE DUMMY ENTRIES.
endif.
CHECK P0001-WERKS IN PNPWERKS. "CHECK Personnel Area
CHECK P0001-BTRTL IN PNPBTRTL. "CHECK Personnel Subarea
CHECK P0001-PERSG IN PNPPERSG. "CHECK EMPLOYEE GROUP
CHECK P0001-PERSK IN PNPPERSK. "CHECK EMPLOYEE SUBGROUP.
* TO GET THE DESIGNATION TEXT
" SELECT * FROM ZHRTR_DESIG INTO TABLE IT_DESIG.
READ TABLE IT_DESIG INTO WA_DESIG WITH KEY ZZ_DESIG = P0001-ZZ_DESIG.
IF SY-SUBRC EQ 0.
WA_OUTPUT-ZZ_DESIGTEXT = WA_DESIG-ZZ_DESIGTEXT.
ENDIF.
MOVE: P0000-PERNR to WA_OUTPUT-PERNR.
MOVE: P0001-ENAME TO WA_OUTPUT-ENAME.
MOVE: P0002-GBDAT TO WA_OUTPUT-GBDAT.
* SELECT TO GET EMPLOYEE SUBGROUP
Read table IT_T503T into WA_T503T with key persk = p0001-PERSK.
IF SY-SUBRC EQ 0.
MOVE: WA_T503T-PTEXT TO WA_OUTPUT-PTEXT.
ENDIF.
* SELECT TO GET PA (CIRCLE) CODE
Read table IT_T500P into WA_T500P with key PERSA = P0001-WERKS. " WERKS = PA CODE (CIRCLE)
IF SY-SUBRC EQ 0.
MOVE: WA_T500P-NAME1 TO WA_OUTPUT-NAME1.
ENDIF.
* SELECT TO GET PSA(SSA) CODE
Read table IT_T001P into WA_T001P with key btrtl = p0001-btrtl.
IF SY-SUBRC EQ 0.
MOVE: WA_T001P-BTEXT TO WA_OUTPUT-BTEXT.
ENDIF.
* IF TO GET GENDER TEXT
IF P0002-GESCH EQ '1'.
WA_OUTPUT-EMP_GENDER = 'MALE'.
ELSEIF P0002-GESCH EQ '2'.
WA_OUTPUT-EMP_GENDER = 'FEMALE'.
ENDIF.
* IF TO GET EMPLOYEE GROUP TEXT
IF P0001-PERSG EQ '1'.
WA_OUTPUT-EMP_GRP = 'Unabsorbed'.
ELSEIF P0001-PERSG EQ '2'.
WA_OUTPUT-EMP_GRP = 'Absorbed'.
ELSEIF P0001-PERSG EQ '3'.
WA_OUTPUT-EMP_GRP = 'Deputaion In'.
ELSEIF P0001-PERSG EQ '4'.
WA_OUTPUT-EMP_GRP = 'Direct Recruitee'.
ENDIF.
* TO GET THE MOBILE NO AND EMAIL ID..
LOOP AT P0105 INTO WA_P0105 .
IF WA_P0105-USRTY = '0002' AND WA_P0105-ENDDA > SY-DATUM.
WA_OUTPUT-MOBILE = WA_P0105-USRID.
ELSEIF P0105-USRTY = '0010' AND WA_P0105-ENDDA > SY-DATUM.
WA_OUTPUT-EMAIL = WA_P0105-USRID_LONG.
ENDIF.
ENDLOOP.
SNO = SNO + 1.
WA_OUTPUT-SNO = SNO.
if wa_outPUT is not initial.
APPEND WA_OUTPUT TO IT_OUTPUT.
CLEAR: WA_OUTPUT,
WA_T503T,
WA_T500P,
WA_DESIG.
endif.
ENDIF.
END-OF-SELECTION.
IF IT_OUTPUT IS INITIAL.
MESSAGE 'No Data Found for the Selection Criteria' TYPE 'I'.
ELSE.
PERFORM build_catalog.
PERFORM display.
ENDIF.
*&---------------------------------------------------------------------*
*& Form BUILD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_catalog .
REFRESH it_fieldcat.
PERFORM build_cat1 USING '1' 'SNO' 'IT_OUTPUT' text-006.
PERFORM build_cat1 USING '2' 'ENAME' 'IT_OUTPUT' text-008.
PERFORM build_cat1 USING '3' 'ZZ_DESIGTEXT' 'IT_OUTPUT' text-010.
PERFORM build_cat1 USING '4' '' 'IT_OUTPUT' text-010. "grade
PERFORM build_cat1 USING '5' 'ZZ_DESIGTEXT' 'IT_OUTPUT' text-010. "PAYSCALE
PERFORM build_cat1 USING '6' 'GBDAT' 'IT_OUTPUT' text-016.
PERFORM build_cat1 USING '7' '' 'IT_OUTPUT' text-017. "Date of positing in present circle
PERFORM build_cat1 USING '8' 'EMP_GRP' 'IT_OUTPUT' text-014. "absorbed Y/N
PERFORM build_cat1 USING '9' 'PERNR' 'IT_OUTPUT' text-007.
PERFORM build_cat1 USING '10' '' 'IT_OUTPUT' text-018. "Ending date currency of minor Punishment falling in last 5 years or minor penalty Imposed in last 3 years.
PERFORM build_cat1 USING '11' '' 'IT_OUTPUT' text-019. "Ending date of currency of major punishment falling in last 5 years or majorpenalty Imposed in last 5 years.
PERFORM build_cat1 USING '12' '' 'IT_OUTPUT' text-020. "Any disciplinary case contemplated/pending as per records.
PERFORM build_cat1 USING '13' '' 'IT_OUTPUT' text-021. "Any Complaint under investigation as per records. if yes (date of receipt of complaint).
PERFORM build_cat1 USING '14' '' 'IT_OUTPUT' text-022. "VC may be Granted/Withheld.
PERFORM build_cat1 USING '15' '' 'IT_OUTPUT' text-023. "Whether APR Submitted for the previous year ending on 31st December,
PERFORM build_cat1 USING '16' 'NAME1' 'IT_OUTPUT' text-003. "circle
PERFORM build_cat1 USING '17' 'BTEXT' 'IT_OUTPUT' text-002. "ssa
PERFORM build_cat1 USING '18' 'PTEXT' 'IT_OUTPUT' text-009. "emp subgrp
PERFORM build_cat1 USING '19' 'EMP_GENDER' 'IT_OUTPUT' text-011. "gender
PERFORM build_cat1 USING '20' 'MOBILE' 'IT_OUTPUT' text-012. " contact no.
it_layout-colwidth_optimize = 'X'.
ENDFORM. "build_catalog
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = it_layout
i_callback_pf_status_set = 'PF_STATUS'
it_fieldcat = it_fieldcat
* i_callback_user_command = 'USER_COMMAND'
* i_callback_top_of_page = 'TOP_OF_PAGE'
i_default = 'X'
i_save = 'A'
* is_variant = lv_tmplt
* I_GRID_TITLE = LV_GRID_TITLE
TABLES
t_outtab = it_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------*
*& Form BUILD_CAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0572 text
* -->P_0573 text
* -->P_0574 text
* -->P_TEXT_001 text
*----------------------------------------------------------------------*
FORM build_cat1 USING value(p_0572)
value(p_0573)
value(p_0574)
p_text_001.
wa_fieldcat-col_pos = p_0572.
wa_fieldcat-fieldname = p_0573.
wa_fieldcat-tabname = p_0574.
wa_fieldcat-seltext_l = p_text_001.
* " wa_fieldcat-do_sum = 'X'.
* IF p_0573 = 'PERNR'.
* wa_fieldcat-hotspot = 'X'.
* ENDIF.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR: wa_fieldcat.
ENDFORM. " BUILD_CAT
*&---------------------------------------------------------------------*
*& Form pf_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD1'.
ENDFORM. "pf_status