*&---------------------------------------------------------------------*
*& Devamsizlik Bilgileri Listesi *
*& *
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZHRY2001 LINE-SIZE 116 NO STANDARD PAGE HEADING.
*-- Table(s)
TABLES : PERNR,
HRP1000,
PA0005,
PA2001.
*-- Infotype(s)
INFOTYPES: 0000, 0001, 0002, 0008 .
*--- Internal Table(s)
DATA:BEGIN OF INTTAB OCCURS 10,
PERNR LIKE PERNR-PERNR,
ENAME LIKE PERNR-ENAME,
HIRE LIKE P0000-BEGDA,
FIRE LIKE P0000-ENDDA,
ANSVH LIKE P0001-ANSVH,
PERSK LIKE P0001-PERSK,
MC_SHORT LIKE HRP1000-MC_SHORT,
MC_STEXT LIKE HRP1000-MC_STEXT,
PLANS LIKE P0001-PLANS,
PLSTX LIKE HRP1000-STEXT.
DATA: END OF INTTAB.
DATA: XPA2001 LIKE PA2001 OCCURS 0 WITH HEADER LINE ,
XPA0005 LIKE PA0005 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.
*-- Variables
DATA: MYTOPLAM(4) TYPE N,
TOP-UAN01 LIKE P0005-UAN01,
TOP-ABRTG LIKE P2001-ABRTG,
TOP-KALAN LIKE P2001-ABRTG,
MYMAAS(15) TYPE P.
*-- 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.
*-- 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.
SELECTION-SCREEN END OF BLOCK BLOCK1.
*------- PROGRAM BASLIYOR
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
*--
PERFORM CALC_HIRE.
*--
*-- end-of-selection
END-OF-SELECTION.
*-- GUI Status Bilgisi
SET PF-STATUS 'LIST'.
PERFORM BODY.
PERFORM TOTAL.
TOP-OF-PAGE.
PERFORM WRITE_TOP_OF_HADER . "Baslik Bilgisi
*&---------------------------------------------------------------------*
*& Form FORMAT
*&---------------------------------------------------------------------*
FORM FORMAT.
ULINE (81).
FORMAT INTENSIFIED OFF COLOR 6.
WRITE : /1 '|' NO-GAP,(09)TEXT-001 NO-GAP, "pers.no.
'|' NO-GAP,(09)TEXT-004 NO-GAP, "Dep.Code
'|' NO-GAP,(26)TEXT-002 NO-GAP. "Name and Surname
SET LEFT SCROLL-BOUNDARY.
WRITE: '|' NO-GAP,(11)TEXT-003 NO-GAP, "Giris Tarihi
'|' NO-GAP,(11)TEXT-014 NO-GAP, "Çikis Tarihi
'|' NO-GAP,(08)TEXT-009 NO-GAP, "Istihdam Kosullari
'|'.
ULINE (81).
FORMAT INTENSIFIED OFF COLOR 2.
ENDFORM. " FORMAT
*&---------------------------------------------------------------------*
*& Form BODY
*&---------------------------------------------------------------------*
FORM BODY.
SORT INTTAB BY PERNR.
CLEAR : MYTOPLAM.
LOOP AT INTTAB.
CHECK INTTAB-MC_SHORT IN SHORT.
CHECK INTTAB-ANSVH IN ANSVH.
PERFORM FORMAT .
WRITE: / '|' NO-GAP,(08)INTTAB-PERNR NO-ZERO UNDER TEXT-001,
"pers.no.
'|' NO-GAP,(08)INTTAB-MC_SHORT UNDER TEXT-004,
"Dep.Code
'|' NO-GAP,(25)INTTAB-ENAME UNDER TEXT-002,
SY-VLINE NO-GAP. " Name and Surname
SET LEFT SCROLL-BOUNDARY.
WRITE: '|' NO-GAP, (10)INTTAB-HIRE UNDER TEXT-003, "begda
'|' NO-GAP, (10)INTTAB-FIRE UNDER TEXT-014, "endda
'|' NO-GAP, (07)INTTAB-ANSVH UNDER TEXT-009, "istihdam ks
'|'.
ULINE (81).
SKIP .
ADD 1 TO MYTOPLAM.
PERFORM WRITE_HEADER_GENEL_BAKIS.
PERFORM WRITE_LIST_GENEL_BAKIS .
ENDLOOP.
ENDFORM. " BODY
*---------------------------------------------------------------------*
* FORM TOTAL *
*---------------------------------------------------------------------*
FORM TOTAL.
SKIP.
WRITE :/ TEXT-017,MYTOPLAM NO-ZERO COLOR COL_NEGATIVE.
ENDFORM. " TOTAL
*&---------------------------------------------------------------------*
*& 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
MC_SHORT IN SHORT AND
LANGU EQ SY-LANGU
ORDER BY OBJID.
*-- Devamsizlik Bilgileri
SELECT * FROM PA2001 INTO TABLE XPA2001 .
*-- Izine Hak kazanma
SELECT * FROM PA0005 INTO TABLE XPA0005 .
ENDFORM. " SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
*& Form WRITE_HEADER_GENEL_BAKIS
*&---------------------------------------------------------------------*
FORM WRITE_HEADER_GENEL_BAKIS.
WRITE : /1 'GENEL BAKIS' COLOR 1 INTENSIFIED .
ULINE .
FORMAT INTENSIFIED OFF COLOR 1.
WRITE :/1 '|' NO-GAP, (11)TEXT-G01 NO-GAP, "Ba.Tarih
'|' NO-GAP, (11)TEXT-G02 NO-GAP, "Bi.Tarihi
'|' NO-GAP, (06)TEXT-G03 NO-GAP, "Dv.Türü
'|' NO-GAP, (09)TEXT-G04 NO-GAP, "Ba.Saati
'|' NO-GAP, (09)TEXT-G05 NO-GAP, "Bi.Saati
* '|' no-gap, (11)text-g06 no-gap, "Dvms.Saatleri
'|' NO-GAP, (11)TEXT-G07 NO-GAP, "Dv.Günü
'|' NO-GAP, (11)TEXT-G08 NO-GAP, "Talep Edilen
'|' NO-GAP, (11)TEXT-G09 NO-GAP, "Toplam Izin
'|' NO-GAP, (15)TEXT-G10 NO-GAP, "T.Talep Edilen
'|' NO-GAP, (11)TEXT-G11 NO-GAP, "Kalan Izin
'|'.
ULINE .
ENDFORM. " WRITE_HEADER_GENEL_BAKIS
*&---------------------------------------------------------------------*
*& Form WRITE_LIST_GENEL_BAKIS
*&---------------------------------------------------------------------*
FORM WRITE_LIST_GENEL_BAKIS.
CLEAR : TOP-ABRTG.
*--
SORT XPA2001 BY BEGDA.
*--
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
LOOP AT XPA2001 WHERE AWART EQ '0280'.
IF XPA2001-PERNR EQ INTTAB-PERNR.
LOOP AT XPA0005 WHERE PERNR EQ XPA2001-PERNR.
TOP-UAN01 = TOP-UAN01 + XPA0005-UAN01.
ENDLOOP.
TOP-ABRTG = TOP-ABRTG + XPA2001-ABRTG.
TOP-KALAN = TOP-UAN01 - TOP-ABRTG.
WRITE:/1 '|', (10)XPA2001-BEGDA UNDER TEXT-G01 , "Ba.Tarih
'|', (10)XPA2001-ENDDA UNDER TEXT-G02 , "Bi.Tarih
'|', (05)XPA2001-AWART UNDER TEXT-G03 , "Devamsz.Türü
'|', (08)XPA2001-BEGUZ UNDER TEXT-G04 , "Ba.Saati
'|', (08)XPA2001-ENDUZ UNDER TEXT-G05 , "Bi.Saati
* '|', (10)xpa2001-stdaz under text-g06 , "Dv.Saatleri
'|', (10)XPA2001-ABWTG UNDER TEXT-G07 , "Dv.Günü
'|', (10)XPA2001-ABRTG UNDER TEXT-G08 , "Talep Edilen
'|', (10)TOP-UAN01 UNDER TEXT-G09 , "Toplam Izin
'|', (14)TOP-ABRTG UNDER TEXT-G10 , "T.Talep edile
'|', (10)TOP-KALAN UNDER TEXT-G11 , "Kalan Izin
'|'.
ENDIF.
CLEAR : TOP-UAN01, XPA0005.
ENDLOOP.
ULINE .
SKIP.
ENDFORM. " WRITE_LIST_GENEL_BAKIS
*&---------------------------------------------------------------------*
*& Form WRITE_TOP_OF_HADER
*&---------------------------------------------------------------------*
FORM WRITE_TOP_OF_HADER.
WRITE : /35 TEXT-013 COLOR COL_BACKGROUND INVERSE.
SKIP.
ENDFORM. " WRITE_TOP_OF_HADER
*&---------------------------------------------------------------------*
*& Form CALC_HIRE
*&---------------------------------------------------------------------*
FORM CALC_HIRE.
CHECK HIREDATE BETWEEN HI_FI-LOW AND HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0001 SPACE HI_FI-HIGH HI_FI-HIGH.
*-- Istenilen Departman
READ TABLE DEP WITH KEY P0001-ORGEH.
CHECK SY-SUBRC EQ 0.
* write :/1 p0001-pernr,dep-short.
PERFORM FILL_INTTAB.
ENDFORM. " CALC_HIRE
*&---------------------------------------------------------------------*
*& Form FILL_INTTAB
*&---------------------------------------------------------------------*
FORM FILL_INTTAB.
*-- Istenilen tarih araliginda bilginin bulunmasi
CHECK FIREDATE GE HI_FI-HIGH.
*-- Internal Table Atama Islemleri
MOVE : PERNR-PERNR TO INTTAB-PERNR,
PERNR-ENAME TO INTTAB-ENAME,
HIREDATE TO INTTAB-HIRE,
FIREDATE TO INTTAB-FIRE,
P0001-PLANS TO INTTAB-PLANS,
PERNR-ANSVH TO INTTAB-ANSVH,
P0001-PERSK TO INTTAB-PERSK,
DEP-SHORT TO INTTAB-MC_SHORT,
DEP-STEXT TO INTTAB-MC_STEXT.
APPEND INTTAB.
*-- Clear
CLEAR : INTTAB, XPA2001, DEP .
ENDFORM. " FILL_INTTAB
Hiç yorum yok:
Yorum Gönder