List of Employees Who Have Completed
Certain Yrs of Service
*&---------------------------------------------------------------------* *& Report ZPV003HR_ANIV_EMP *&---------------------------------------------------------------------* REPORT zpv003hr_aniv_emp . TABLES: pernr. INFOTYPES: 0002, 0001. DATA: age TYPE d, serv TYPE d, curdate TYPE d. DATA: years TYPE d, enddate TYPE d . DATA: BEGIN OF int_empinfo OCCURS 0, pernr LIKE p0002-pernr, nachn LIKE p0002-nachn, vorna LIKE p0002-vorna, gbdat LIKE p0002-gbdat, begda LIKE p0001-begda, emp_age TYPE d, emp_serv TYPE d, END OF int_empinfo. SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001. PARAMETERS: 5_years RADIOBUTTON GROUP g1 DEFAULT 'X', 10_years RADIOBUTTON GROUP g1, 15_years RADIOBUTTON GROUP g1. *curdate type d DEFAULT '00050101' . SELECTION-SCREEN END OF BLOCK block1. START-OF-SELECTION . IF 5_years = 'X'. curdate = '00050101'. ELSEIF 10_years = 'X'. curdate = '00100101'. ELSEIF 15_years = 'X'. curdate = '00150101'. ENDIF. GET pernr. PERFORM get_0002. PERFORM get_0001. IF int_empinfo-emp_serv NE '00000000'. APPEND int_empinfo. ENDIF. END-OF-SELECTION. IF int_empinfo[] IS INITIAL. WRITE:/ 'NO EMPLOYEE WITH', curdate+2(2), 'YEARS OF SERVICE' COLOR 6 . ENDIF. PERFORM write_empinfo. *&---------------------------------------------------------------------* *& Form get_0002 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM get_0002 . rp-provide-from-last p0002 space pn-begda pn-endda. IF pnp-sw-found EQ '1'. "record found age = sy-datum - p0002-gbdat. MOVE: p0002-pernr TO int_empinfo-pernr, p0002-vorna TO int_empinfo-vorna, p0002-nachn TO int_empinfo-nachn, p0002-gbdat TO int_empinfo-gbdat, age TO int_empinfo-emp_age. ELSE. REJECT. ENDIF. ENDFORM. " get_0002 *&---------------------------------------------------------------------* *& Form write_empinfo *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM write_empinfo . LOOP AT int_empinfo. WRITE:/ int_empinfo-pernr, 20 int_empinfo-nachn, 35 int_empinfo-vorna, 50 int_empinfo-gbdat, 75 int_empinfo-emp_age+2(2), 85 int_empinfo-emp_serv+2(2) . ENDLOOP. ENDFORM. " write_empinfo *&---------------------------------------------------------------------* *& Form get_1001 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM get_0001 . rp-provide-from-last p0001 space pn-begda pn-endda. IF pnp-sw-found EQ '1'. "record found enddate = p0001-endda . years = sy-datum - p0001-begda. IF years > curdate AND enddate >= '99991231' . MOVE: years TO int_empinfo-emp_serv. ENDIF. ELSE. REJECT. ENDIF. ENDFORM. " get_1001 TOP-OF-PAGE. WRITE:/ 'EMP_PERNR', 20 'LAST_NAME', 35 'FIRST_NAME', 50 'DOB', 75 'EMP_AGE', 85 'EMP_SERVICE' . ULINE.With Compliment: Phani Varada
Fast Links:
Get help for your ABAP problems
ABAP Books
ABAP Tips
Best regards,
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|