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:
Example of HR Report
Sample HR Reports - Allocate Petrol Allowance

Get help for your ABAP problems
Do you have a ABAP Question?

ABAP Books
ABAP Certification, BAPI, Java, Web Programming, Smart Forms, Sapscripts Reference Books

ABAP Tips
ABAP Forum for Discussion and Samples Program Codes for Abapers

Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.  The site www.erpgreat.com is in no way affiliated with SAP AG.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of
www.erpgreat.com or the content authors.