*&---------------------------------------------------------------------*
*& Medeni Durum Bilgileri Raporu *
*& *
*&---------------------------------------------------------------------*
REPORT ZHRRMD02 LINE-SIZE 121 NO STANDARD PAGE HEADING.
TABLES : HRP1000,
T502T,
T528T,
T522T,
PERNR.
INFOTYPES: 0000,
0001,
0002.
DATA: X LIKE HRP1000-MC_SHORT,
Y LIKE HRP1000-MC_SHORT.
DATA: MYTOPLAM(4) TYPE N,
MALE-TOPLAM(4) TYPE N,
FEMALE-TOPLAM(4) TYPE N,
ERKEK-TOPLAM(4) TYPE N,
KADIN-TOPLAM(4) TYPE N,
MARRI-TOPLAM(4) TYPE N,
SINGLE-TOPLAM(4) TYPE N,
WIDOW-TOPLAM(4) TYPE N,
DIVORCE-TOPLAM(4) TYPE N,
EVLI-TOPLAM(4) TYPE N,
BEKAR-TOPLAM(4) TYPE N,
DUL-TOPLAM(4) TYPE N,
BOS-TOPLAM(4) TYPE N.
DATA:BEGIN OF INTTAB OCCURS 100,
PERNR LIKE PERNR-PERNR,
ENAME LIKE PERNR-ENAME,
BEGDA LIKE P0000-BEGDA,
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 T528T-PLSTX,
PTEXT LIKE T503T-PTEXT,
ATEXT LIKE T522T-ATEXT,
FTEXT LIKE T502T-FTEXT,
ANZKD LIKE P0002-ANZKD.
DATA: END OF INTTAB.
*-- Dep bazinda kontrol
DATA: INDEX LIKE SY-INDEX.
*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECT-OPTIONS: MYDEPT FOR HRP1000-MC_SHORT.
SELECTION-SCREEN END OF BLOCK BLOCK1.
*------- PROGRAM BASLIYOR
START-OF-SELECTION.
*-- Istenilen Departman için
LOOP AT MYDEPT.
X = MYDEPT-LOW.
MODIFY MYDEPT.
Y = MYDEPT-HIGH.
MODIFY MYDEPT.
ENDLOOP.
*-- Pernr table' indan bilgilerin alinmasi
GET PERNR.
PROVIDE PLANS ORGEH ANSVH PERSK FROM P0001
STAT2 BEGDA ENDDA FROM P0000
BETWEEN PN/BEGDA AND PN/ENDDA.
IF P0000_VALID EQ 'X'.
MOVE PERNR-PERNR TO INTTAB-PERNR.
MOVE PERNR-ENAME TO INTTAB-ENAME.
MOVE P0000-BEGDA TO INTTAB-BEGDA.
IF P0001-PLANS NE SPACE AND
P0000-STAT2 EQ '3'.
PERFORM RE528.
ENDIF.
ENDIF.
ENDPROVIDE.
*---------------------------------------------------------------------*
* FORM RE528 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM RE528.
*-- Pozisyon Text Bilgileri
SELECT * FROM T528T
WHERE
SPRSL EQ SY-LANGU
AND PLANS EQ P0001-PLANS
AND ENDDA EQ P0000-ENDDA.
IF SY-SUBRC EQ 0.
*-- Organizasyon Text Bilgileri
DESCRIBE TABLE MYDEPT LINES INDEX. "Dep Kontrolü için yapildi.
IF NOT INDEX IS INITIAL .
SELECT SINGLE * FROM HRP1000
WHERE
OTYPE EQ 'O' AND
OBJID EQ P0001-ORGEH AND
MC_SHORT IN MYDEPT AND
LANGU EQ SY-LANGU.
CHECK SY-SUBRC EQ 0 .
ELSE.
CLEAR HRP1000 .
SELECT SINGLE * FROM HRP1000
WHERE
OTYPE EQ 'O' AND
OBJID EQ P0001-ORGEH AND
MC_SHORT IN MYDEPT AND
LANGU EQ SY-LANGU.
ENDIF .
*- Cinsiyet text Bilgileri
SELECT SINGLE * FROM T522T
WHERE
ANRED EQ P0002-GESCH AND
SPRSL EQ SY-LANGU.
*-- Medeni Durum Text Bilgileri
SELECT SINGLE * FROM T502T
WHERE
FAMST EQ P0002-FAMST AND
SPRSL EQ SY-LANGU.
*-- Erkek Kadin sayisinin bulunmasi
IF SY-LANGU = 'E'. "Dil = E
IF P0002-GESCH = '1'. "Cinsiyet = E
ADD 1 TO MALE-TOPLAM.
ELSE.
ADD 1 TO FEMALE-TOPLAM.
ENDIF.
ELSEIF P0002-GESCH = '1'.
ADD 1 TO ERKEK-TOPLAM.
ELSE.
ADD 1 TO KADIN-TOPLAM.
ENDIF.
*-- Evli, Bekar, Dul ve Bosanmis Eleman Sayisinin Bulunmasi
IF SY-LANGU = 'E'.
if t502t-ftext = 'Marri.'.
ADD 1 TO MARRI-TOPLAM.
elseif t502t-ftext = 'Single'.
ADD 1 TO SINGLE-TOPLAM.
elseif t502t-ftext = 'Widow'.
ADD 1 TO WIDOW-TOPLAM.
ELSE.
ADD 1 TO DIVORCE-TOPLAM.
ENDIF.
ENDIF.
IF SY-LANGU = 'T'.
if t502t-ftext = 'Evli'.
ADD 1 TO EVLI-TOPLAM.
elseif t502t-ftext = 'Bekar'.
ADD 1 TO BEKAR-TOPLAM.
elseif t502t-ftext = 'Dul'.
ADD 1 TO DUL-TOPLAM.
ELSE.
ADD 1 TO BOS-TOPLAM.
ENDIF.
ENDIF.
*-- Clear Islemleri
* if sy-subrc ne 0.
* clear t503t-ptext.
* endif.
* if p0032-pernr ne pernr-pernr.
* clear p0032.
* endif.
* if p9004-pernr ne pernr-pernr.
* clear p9004.
* endif.
*-- Internal Table Atama Islemleri
MOVE P0001-PLANS TO INTTAB-PLANS.
MOVE T528T-PLSTX TO INTTAB-PLSTX.
MOVE P0001-ANSVH TO INTTAB-ANSVH.
* move t503t-ptext to inttab-ptext.
MOVE P0001-PERSK TO INTTAB-PERSK.
MOVE HRP1000-MC_SHORT TO INTTAB-MC_SHORT.
MOVE HRP1000-MC_STEXT TO INTTAB-MC_STEXT.
MOVE T522T-ATEXT TO INTTAB-ATEXT.
MOVE T502T-FTEXT TO INTTAB-FTEXT.
MOVE P0002-ANZKD TO INTTAB-ANZKD.
APPEND INTTAB.
ENDIF.
EXIT.
ENDSELECT.
ENDFORM.
*------------- PROGRAM SONU
END-OF-SELECTION.
*-- GUI Status Bilgisi
SET PF-STATUS 'LIST'.
PERFORM BODY.
PERFORM TOTAL.
TOP-OF-PAGE.
PERFORM FORMAT. "Baslik Bilgisi
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'P000'.
SCROLL LIST RIGHT BY 22 PLACES.
WHEN 'P001'.
SCROLL LIST LEFT BY 22 PLACES.
WHEN 'P002'.
SCROLL LIST RIGHT BY 100 PLACES.
WHEN 'P003'.
SCROLL LIST LEFT BY 100 PLACES.
WHEN 'S000'.
PERFORM BODY.
PERFORM TOTAL.
WHEN 'S001'.
PERFORM NAME.
PERFORM TOTAL.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM FORMAT.
*&---------------------------------------------------------------------*
*& Form FORMAT
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FORMAT.
WRITE : /55 TEXT-020 COLOR COL_BACKGROUND INVERSE.
SKIP.
ULINE (121).
FORMAT INTENSIFIED OFF COLOR 6.
WRITE : /1 '|' NO-GAP, (9)TEXT-001 NO-GAP, "pers.no.
'|' NO-GAP,(26)TEXT-002 NO-GAP. "Name and Surname
SET LEFT SCROLL-BOUNDARY.
* write: '|' no-gap,(11)text-003 no-gap, "Entry Date
WRITE: '|' NO-GAP,(09)TEXT-004 NO-GAP, "Dep.Code
'|' NO-GAP,(41)TEXT-005 NO-GAP, "Dept Name
'|' NO-GAP,(08)TEXT-006 NO-GAP, "Marital Status
'|' NO-GAP,(08)TEXT-007 NO-GAP, "Sex
'|' NO-GAP,(12)TEXT-008 NO-GAP, "Child No
'|'.
ULINE (121).
ENDFORM. " FORMAT
*&---------------------------------------------------------------------*
*& Form BODY
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
FORM BODY.
SORT INTTAB BY PERNR.
FORMAT INTENSIFIED OFF COLOR 3.
CLEAR MYTOPLAM.
LOOP AT INTTAB.
WRITE: / '|' NO-GAP,(08)INTTAB-PERNR NO-ZERO UNDER TEXT-001,
"pers.no.
'|' NO-GAP,(25)INTTAB-ENAME UNDER TEXT-002,
SY-VLINE NO-GAP. " Name and Surname
SET LEFT SCROLL-BOUNDARY.
* write: sy-vline no-gap, (10)inttab-begda under text-003,
* "Entry Date
WRITE: SY-VLINE NO-GAP, (08)INTTAB-MC_SHORT UNDER TEXT-004,
"Dep.Code
'|' NO-GAP,(40)INTTAB-MC_STEXT UNDER TEXT-005, "Dept Name
'|' NO-GAP,(07)INTTAB-FTEXT UNDER TEXT-006, "Mar. Sta
'|' NO-GAP,(07)INTTAB-ATEXT UNDER TEXT-007, "Sex
'|' NO-GAP,(11)INTTAB-ANZKD UNDER TEXT-008, "Child no
'|'.
ADD 1 TO MYTOPLAM.
ENDLOOP.
ULINE (121).
ENDFORM. " BODY
*&--------------------------------------------------------------------*
*& Isme gore sirali *
*&--------------------------------------------------------------------*
FORM NAME.
SORT INTTAB BY ENAME.
FORMAT INTENSIFIED OFF COLOR 3.
CLEAR MYTOPLAM.
LOOP AT INTTAB.
WRITE: / '|' NO-GAP,(08)INTTAB-PERNR NO-ZERO UNDER TEXT-001,
"pers.no.
'|' NO-GAP,(25)INTTAB-ENAME UNDER TEXT-002,
SY-VLINE NO-GAP. " Name and Surname
SET LEFT SCROLL-BOUNDARY.
WRITE: SY-VLINE NO-GAP, (08)INTTAB-MC_SHORT UNDER TEXT-004,
"Dep.Code
'|' NO-GAP,(40)INTTAB-MC_STEXT UNDER TEXT-005, "Dept Name
'|' NO-GAP,(07)INTTAB-FTEXT UNDER TEXT-006, "Mar. Sta
'|' NO-GAP,(07)INTTAB-ATEXT UNDER TEXT-007, "Sex
'|' NO-GAP,(11)INTTAB-ANZKD UNDER TEXT-008, "Child no
'|'.
ADD 1 TO MYTOPLAM.
ENDLOOP.
ULINE (182).
ENDFORM. "BODY
*---------------------------------------------------------------------*
* FORM TOTAL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOTAL.
IF SY-LANGU = 'E'.
WRITE :/ TEXT-013, FEMALE-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-014, MALE-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-015, MARRI-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-016, SINGLE-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-017, WIDOW-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-018, DIVORCE-TOPLAM NO-ZERO COLOR COL_NEGATIVE,
/ TEXT-019, MYTOPLAM NO-ZERO COLOR COL_POSITIVE INTENSIFIED.
ELSE.
WRITE :/ 'Toplam Kadin Sayisi = ',KADIN-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Erkek Sayisi = ',ERKEK-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Evli Sayisi = ',EVLI-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Bekar Sayisi = ',BEKAR-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Dul Sayisi = ',DUL-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Bosanmis Sayisi = ',BOS-TOPLAM NO-ZERO
COLOR COL_NEGATIVE.
WRITE :/ 'Toplam Personel Sayisi = ',MYTOPLAM NO-ZERO
COLOR COL_POSITIVE INTENSIFIED.
ENDIF.
ENDFORM. " TOTAL
Hiç yorum yok:
Yorum Gönder