*-- Table(s)
TABLES : PERNR,
HRP1000,
T528T,
T531S,
T503T.
*-- Infotype(s)
INFOTYPES: 0000, 0001, 0002, 0019 .
*--- Internal Table(s)
DATA:BEGIN OF P OCCURS 10,
PERNR LIKE PERNR-PERNR,
ENAME LIKE PERNR-ENAME,
HIRE LIKE P0000-BEGDA, "ISE GIRIS TARIHI
FIRE LIKE P0000-ENDDA, "ISten çikis TARIHI
MC_SHORT LIKE HRP1000-MC_SHORT, "Departman kodu
MC_STEXT LIKE HRP1000-MC_STEXT, "Departman text
* plstx like t528t-plstx, "Pozisyon text
* persk like p0001-persk, "Çalisan Altgrup
* ptext like t503t-ptext, "Çalisan Altgrup Text
ANSVH LIKE P0001-ANSVH, "Istihdam Kosullari
TMART LIKE P0019-TMART, "Tarih türü
TMTXT LIKE T531S-TMTXT, "Tarih türü izleme metni
TERMN LIKE P0019-TERMN, "Sözlesme Sonu
MNDAT LIKE P0019-MNDAT. "Ihbar Tarihi
DATA: END OF P.
DATA: XT528T LIKE T528T OCCURS 0 WITH HEADER LINE,
XT531S LIKE T531S OCCURS 0 WITH HEADER LINE,
XT503T LIKE T503T OCCURS 0 WITH HEADER LINE.
*-- Departman Listesi
DATA: BEGIN OF DEP OCCURS 0,
OBJID LIKE HRP1000-OBJID,
SHORT LIKE HRP1000-MC_SHORT,
STEXT LIKE HRP1000-MC_STEXT,
BEGDA LIKE HRP1000-BEGDA ,
ENDDA LIKE HRP1000-ENDDA ,
END OF DEP .
*-- RP_HIRE_FIRE
DATA: HIREDATE LIKE P0000-BEGDA,
FIREDATE LIKE P0000-ENDDA.
DATA: BEGIN OF PHIFI OCCURS 5.
INCLUDE STRUCTURE PHIFI.
DATA: END OF PHIFI.
*-- Variables
DATA: MYTOPLAM(4) TYPE N,
BEGDA LIKE P0000-BEGDA,
ENDDA LIKE P0000-ENDDA,
C01 LIKE SY-COLNO VALUE 180.
*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECT-OPTIONS: HI_FI FOR P0001-BEGDA
DEFAULT '19800101'
TO SY-DATUM .
SELECT-OPTIONS: SHORT FOR HRP1000-MC_SHORT,
ANSVH FOR P0001-ANSVH DEFAULT 'TE'.
* persk for p0001-persk.
SELECTION-SCREEN END OF BLOCK BLOCK1.
*------- PROGRAM BASLIYOR
*initialization.
* rp-sel-ein-aus-init. "Istihdam Durumu <> 0 islemi
START-OF-SELECTION.
PERFORM SET_INITIAL_VALUES .
GET PERNR.
*--
CALL FUNCTION 'RP_HIRE_FIRE'
EXPORTING
BEG = PN-BEGDA
END = PN-ENDDA
IMPORTING
HIRE_DATE = HIREDATE
FIRE_DATE = FIREDATE
TABLES
PP0000 = P0000 "input
PP0001 = P0001 "input
PPHIFI = PHIFI. "output
*----
* write :/1 hiredate,' ',firedate.
*---
PERFORM CALC_HIRE.
*-- end-of-selection
END-OF-SELECTION.
*-- GUI Status Bilgisi
SET PF-STATUS 'LIST'.
PERFORM BODY.
PERFORM TOTAL.
TOP-OF-PAGE.
PERFORM FORMAT .
*&---------------------------------------------------------------------*
*& Form FORMAT
*&---------------------------------------------------------------------*
FORM FORMAT.
WRITE : /60 TEXT-013 COLOR COL_BACKGROUND INVERSE.
SKIP.
ULINE AT (C01).
FORMAT INTENSIFIED OFF COLOR 6.
WRITE : /1 '|' NO-GAP,(09)TEXT-001 NO-GAP, "Pers.no.
'|' NO-GAP,(26)TEXT-002 NO-GAP, "Name and Surname
'|' NO-GAP,(11)TEXT-003 NO-GAP, "Giris Tarihi
'|' NO-GAP,(11)TEXT-026 NO-GAP, "Çikis Tarihi
'|' NO-GAP,(10)TEXT-004 NO-GAP, "Bölüm Kodu
'|' NO-GAP,(41)TEXT-005 NO-GAP, "Bölüm Adi
* '|' no-gap,(26)text-006 no-gap, "Pozisyon
* '|' no-gap,(07)text-007 no-gap, "Çalisan Altgrup
* '|' no-gap,(21)text-008 no-gap, "Çalisan Altgrup Text
'|' NO-GAP,(08)TEXT-009 NO-GAP, "Istihdam Kosullari
'|' NO-GAP,(07)TEXT-020 NO-GAP, "Tarih Türü
'|' NO-GAP,(20)TEXT-021 NO-GAP, "Tarih Türü Izleme Metni
'|' NO-GAP,(13)TEXT-022 NO-GAP, "Sözlesme Sonu
'|' NO-GAP,(12)TEXT-023 NO-GAP, "Ihbar Tarihi
'|' .
ULINE AT (C01).
ENDFORM. " FORMAT
*&---------------------------------------------------------------------*
*& Form BODY
*&---------------------------------------------------------------------*
FORM BODY.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
SORT P BY PERNR HIRE.
CLEAR : MYTOPLAM .
LOOP AT P.
CHECK P-MC_SHORT IN SHORT.
CHECK P-ANSVH IN ANSVH.
* check p-persk in persk.
WRITE: /01 SY-VLINE NO-GAP,
(08) P-PERNR NO-ZERO UNDER TEXT-001, " pers.no
SY-VLINE NO-GAP,
(25) P-ENAME UNDER TEXT-002, " Name and Surname
SY-VLINE NO-GAP,
(10) P-HIRE UNDER TEXT-003, " Giris tarihi
SY-VLINE NO-GAP,
(10) P-FIRE UNDER TEXT-026, " Çikis Tarihi
SY-VLINE NO-GAP ,
(09) P-MC_SHORT UNDER TEXT-004, " Bölüm kodu
SY-VLINE NO-GAP ,
(40) P-MC_STEXT UNDER TEXT-005, " Bölüm adi
SY-VLINE NO-GAP ,
* (25) p-plstx under text-006, " Pozisyon
* sy-vline no-gap ,
* (06) p-persk under text-007, " Çalisan Altgrup
* sy-vline no-gap ,
* (20) p-ptext under text-008, " Çalisan Altgrup Text
* sy-vline no-gap ,
(07) P-ANSVH UNDER TEXT-009, " Istihdam Kosullari
SY-VLINE NO-GAP ,
(06) P-TMART UNDER TEXT-020, " Tarih Türü
SY-VLINE NO-GAP ,
(19) P-TMTXT UNDER TEXT-021, " Tarih Türü Izleme Metni
SY-VLINE NO-GAP ,
(12) P-TERMN UNDER TEXT-022, " Sözlesme Sonu
SY-VLINE NO-GAP ,
(11) P-MNDAT UNDER TEXT-023, " Ihbar Tarihi
SY-VLINE NO-GAP .
ADD: 1 TO MYTOPLAM .
ENDLOOP.
ULINE AT (C01).
ENDFORM. " BODY
*---------------------------------------------------------------------*
* FORM TOTAL *
*---------------------------------------------------------------------*
FORM TOTAL.
SKIP.
WRITE :/ TEXT-017,
MYTOPLAM NO-ZERO COLOR COL_NEGATIVE .
ENDFORM. " TOTAL
*&---------------------------------------------------------------------*
*& Form WRITE_TOP_OF_HEADER
*&---------------------------------------------------------------------*
FORM WRITE_TOP_OF_HEADER.
WRITE : /35 TEXT-013 COLOR COL_BACKGROUND INVERSE.
SKIP.
ENDFORM. " WRITE_TOP_OF_HEADER
*&---------------------------------------------------------------------*
*& Form CALC_HIRE
*&---------------------------------------------------------------------*
FORM CALC_HIRE.
* check h_hire between hi_fi-low and hi_fi-high.
CHECK HIREDATE BETWEEN HI_FI-LOW AND HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0001 SPACE HI_FI-HIGH HI_FI-HIGH.
PROVIDE * FROM P0019 BETWEEN PN-BEGDA AND PN-ENDDA.
* write:/1 pn/begda,' ',pn/endda.
*-- Çalisan Altgroup
READ TABLE XT503T WITH KEY PERSK = P0001-PERSK .
* check sy-subrc eq 0 .
*-- Istenilen Departman
* read table dep with key p0001-orgeh . " TL. 25.10.2000
* check sy-subrc eq 0 . " TL. 25.10.2000
LOOP AT DEP WHERE OBJID = P0001-ORGEH AND " TL. 25.10.2000
ENDDA = '99991231' . " TL. 25.10.2000
ENDLOOP. " TL. 25.10.2000
CHECK SY-SUBRC EQ 0 . " TL. 25.10.2000
*-- Istenilen Pozisyon
READ TABLE XT528T WITH KEY PLANS = P0001-PLANS .
* check sy-subrc eq 0 .
*-- Tarih izleme metni texti bulunuyor
READ TABLE XT531S WITH KEY TMART = P0019-TMART .
PERFORM FILL_P.
ENDPROVIDE.
ENDFORM. " CALC_HIRE
*&---------------------------------------------------------------------*
*& Form FILL_P
*&---------------------------------------------------------------------*
FORM FILL_P.
*-- Istenilen tarih araliginda bilginin bulunmasi
CHECK FIREDATE GE HI_FI-HIGH .
MOVE: PERNR-PERNR TO P-PERNR,
P0001-ENAME TO P-ENAME,
HIREDATE TO P-HIRE,
FIREDATE TO P-FIRE,
DEP-SHORT TO P-MC_SHORT,
DEP-STEXT TO P-MC_STEXT,
* xt528t-plstx to p-plstx,
* p0001-persk to p-persk,
* xt503t-ptext to p-ptext,
P0001-ANSVH TO P-ANSVH,
P0019-TMART TO P-TMART,
XT531S-TMTXT TO P-TMTXT,
P0019-TERMN TO P-TERMN,
P0019-MNDAT TO P-MNDAT.
APPEND P.
*-- Clear
CLEAR : P0002, P0019, XT528T, XT503T, XT531S, DEP.
ENDFORM. " FILL_P
*&---------------------------------------------------------------------*
*& Form SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
FORM SET_INITIAL_VALUES.
*-- Departman Listesi
SELECT OBJID MC_SHORT MC_STEXT BEGDA ENDDA FROM HRP1000 INTO TABLE DEP
WHERE OTYPE EQ 'O' AND
PLVAR EQ '01' AND
LANGU EQ SY-LANGU
ORDER BY OBJID .
*-- Pozisyon Text Listesi
SELECT * FROM T528T INTO TABLE XT528T WHERE SPRSL EQ SY-LANGU
AND OTYPE EQ 'S'.
*-- Çalisan AltGroup Listesi
SELECT * FROM T503T INTO TABLE XT503T WHERE SPRSL EQ SY-LANGU .
*-- Tarih Izleme Textleri (P0019 için)
SELECT * FROM T531S INTO TABLE XT531S WHERE SPRSL EQ SY-LANGU .
ENDFORM. " SET_INITIAL_VALUES
Hiç yorum yok:
Yorum Gönder