*-- Table(s)
TABLES : PERNR,
HRP1000,
HRP1001,
PA0001.
*--- Internal Table(s)
DATA:BEGIN OF P OCCURS 10,
OBJID LIKE HRP1001-OBJID, "Pers.No
ENAME LIKE PA0001-ENAME , "Katilimcinin Adi
OTYPE LIKE HRP1000-OTYPE, "Tip
DOBJID LIKE HRP1000-OBJID, "Kod
BEGDA LIKE HRP1000-BEGDA, "Baslangiç Tarihi
ENDDA LIKE HRP1000-ENDDA, "Son Tarihi
LANGU LIKE HRP1000-LANGU, "Egitim Dili
SHORT LIKE HRP1000-MC_SHORT, "Nesne Kodu
STEXT LIKE HRP1000-MC_STEXT, "Tanim
USTEXT LIKE HRP1000-MC_STEXT. "Sirket Text Bilgisi
DATA: END OF P.
*-- HRP1001 (P -> E Iliskisi)
DATA : BEGIN OF PHRP1001 OCCURS 0,
OTYPE LIKE HRP1001-OTYPE,
OBJID LIKE HRP1001-OBJID,
BEGDA LIKE HRP1001-BEGDA,
ENDDA LIKE HRP1001-ENDDA,
SCLAS LIKE HRP1001-SCLAS,
SOBID LIKE HRP1001-SOBID,
END OF PHRP1001.
*-- Egitim ve Toplanti (E)
DATA : BEGIN OF EHRP1000 OCCURS 0,
OTYPE LIKE HRP1000-OTYPE,
OBJID LIKE HRP1000-OBJID,
BEGDA LIKE HRP1000-BEGDA,
ENDDA LIKE HRP1000-ENDDA,
LANGU LIKE HRP1000-LANGU,
SHORT LIKE HRP1000-MC_SHORT,
STEXT LIKE HRP1000-MC_STEXT,
END OF EHRP1000.
*-- HRP1001 (Sirket Kodlari - U -> E Iliskisi)
DATA : BEGIN OF UHRP1001 OCCURS 0,
OTYPE LIKE HRP1001-OTYPE,
OBJID LIKE HRP1001-OBJID,
BEGDA LIKE HRP1001-BEGDA,
ENDDA LIKE HRP1001-ENDDA,
SCLAS LIKE HRP1001-SCLAS,
SOBID LIKE HRP1001-SOBID,
END OF UHRP1001.
*-- HRP1000 (Sirket Text Bilgisi)
DATA : BEGIN OF UHRP1000 OCCURS 0,
OTYPE LIKE HRP1000-OTYPE,
OBJID LIKE HRP1000-OBJID,
SHORT LIKE HRP1000-MC_SHORT,
STEXT LIKE HRP1000-MC_STEXT,
END OF UHRP1000.
*-- Variables
DATA: MYTOPLAM(4) TYPE N,
C01 LIKE SY-COLNO VALUE 115,
CHANGES ,
COUNT1 TYPE N,
COUNT2 TYPE N.
*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECTION-SCREEN END OF BLOCK BLOCK1.
*------- PROGRAM BASLIYOR
START-OF-SELECTION.
PERFORM SET_INITIAL_VALUES.
PERFORM FILL_P.
*-- 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 53 PLACES.
WHEN 'P003'.
SCROLL LIST LEFT BY 53 PLACES.
* when 'S000'.
* perform body.
* perform total.
* when 'S001'.
* perform name.
* perform total.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM FORMAT.
*&---------------------------------------------------------------------*
*& Form FORMAT
*&---------------------------------------------------------------------*
FORM FORMAT.
WRITE : /50 TEXT-013 COLOR COL_BACKGROUND INVERSE.
SKIP.
ULINE AT (C01).
FORMAT INTENSIFIED ON COLOR 1.
WRITE : /1 '|' NO-GAP,(09)TEXT-001 NO-GAP, "Pers.No
'|' NO-GAP,(26)TEXT-002 NO-GAP. "Adi Soyadi
SET LEFT SCROLL-BOUNDARY.
WRITE: '|' NO-GAP,(04)TEXT-003 NO-GAP, "Tip
'|' NO-GAP,(09)TEXT-004 NO-GAP, "Kod
'|' NO-GAP,(11)TEXT-005 NO-GAP, "Bas.Tarihi
'|' NO-GAP,(11)TEXT-006 NO-GAP, "Bit.Tarihi
'|' NO-GAP,(04)TEXT-007 NO-GAP, "Dil
'|' NO-GAP,(15)TEXT-008 NO-GAP, "Text
'|' NO-GAP,(16)TEXT-009 NO-GAP, "Sirket
'|'.
ULINE AT (C01).
ENDFORM. " FORMAT
*&---------------------------------------------------------------------*
*& Form BODY
*&---------------------------------------------------------------------*
FORM BODY.
* sort p by objid .
FORMAT INTENSIFIED OFF COLOR 2.
CLEAR : MYTOPLAM.
*
LOOP AT P.
FORMAT RESET. "24.01.2000 Horacio example
FORMAT COLOR COL_HEADING.
IF CHANGES = ' '.
FORMAT INTENSIFIED OFF.
CHANGES = 'X'.
ELSE.
FORMAT INTENSIFIED ON .
CHANGES = ' '.
ENDIF.
WRITE: / '|' NO-GAP,(08)P-OBJID UNDER TEXT-001,
"pers.no
'|' NO-GAP,(25)P-ENAME UNDER TEXT-002. "pers adi
SET LEFT SCROLL-BOUNDARY.
WRITE: '|' NO-GAP,(03)P-OTYPE UNDER TEXT-003,
'|' NO-GAP,(08)P-DOBJID UNDER TEXT-004,
'|' NO-GAP,(10)P-BEGDA UNDER TEXT-005,
'|' NO-GAP,(10)P-ENDDA UNDER TEXT-006,
'|' NO-GAP,(03)P-LANGU UNDER TEXT-007,
'|' NO-GAP,(14)P-SHORT UNDER TEXT-008,
'|' NO-GAP,(15)P-USTEXT UNDER TEXT-009,
'|'.
ADD 1 TO MYTOPLAM.
ENDLOOP.
ULINE AT (C01).
ENDFORM. " BODY
*---------------------------------------------------------------------*
* FORM TOTAL *
*---------------------------------------------------------------------*
FORM TOTAL.
SKIP.
WRITE :/ TEXT-017,MYTOPLAM NO-ZERO INTENSIFIED ON COLOR COL_HEADING.
ENDFORM. " TOTAL
*&---------------------------------------------------------------------*
*& Form SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
FORM SET_INITIAL_VALUES.
*-- HRP1001 Table (Egitime katilan Personel ve Egitim Toplanti Iliskisi)
*-- P -> E Iliskisi
SELECT OTYPE OBJID BEGDA ENDDA SCLAS SOBID FROM HRP1001
INTO TABLE PHRP1001
WHERE OTYPE EQ 'P' AND
PLVAR EQ '01' AND
SCLAS EQ 'E'
ORDER BY OBJID.
* break-point.
*-- Egitim ve Toplanti' nin Text Bilgisinin Bulunmasi
SELECT OTYPE OBJID BEGDA ENDDA LANGU MC_SHORT MC_STEXT FROM HRP1000
INTO TABLE EHRP1000
WHERE OTYPE EQ 'E' AND
PLVAR EQ '01'
ORDER BY OBJID.
* break-point.
*-- HRP1001 Table (Egitime ve Sirket Arasindaki Baglanti)
*-- U -> E Iliskisi
SELECT OTYPE OBJID BEGDA ENDDA SCLAS SOBID FROM HRP1001
INTO TABLE UHRP1001
WHERE OTYPE EQ 'U' AND
PLVAR EQ '01' AND
SCLAS EQ 'E'
ORDER BY OBJID.
* break-point.
*-- HRP1000 Table (Sirket Text Bilgisi)
SELECT OTYPE OBJID MC_SHORT MC_STEXT FROM HRP1000
INTO TABLE UHRP1000
WHERE OTYPE EQ 'U' AND
PLVAR EQ '01'
* langu eq sy-langu
ORDER BY OBJID.
* break-point.
ENDFORM. " SET_INITIAL_VALUES
*
*&---------------------------------------------------------------------*
*& Form FILL_P
*&---------------------------------------------------------------------*
FORM FILL_P.
LOOP AT PHRP1001 WHERE OBJID IN PNPPERNR.
SELECT SINGLE * FROM PA0001 WHERE PERNR EQ PHRP1001-OBJID.
READ TABLE EHRP1000 WITH KEY OBJID = PHRP1001-SOBID.
MOVE : PHRP1001-OBJID TO P-OBJID,
PA0001-ENAME TO P-ENAME,
EHRP1000-OTYPE TO P-OTYPE,
EHRP1000-OBJID TO P-DOBJID,
EHRP1000-BEGDA TO P-BEGDA,
EHRP1000-ENDDA TO P-ENDDA,
EHRP1000-LANGU TO P-LANGU,
EHRP1000-SHORT TO P-SHORT.
* write :/1 phrp1001-sobid,' ',phrp1001-objid,' ',ehrp1000-begda,' ',
* ehrp1000-endda,' ',ehrp1000-short.
*-- Katilimcinin Sirket Bilgisinin Bulunmasi
READ TABLE UHRP1001 WITH KEY SOBID = EHRP1000-OBJID.
READ TABLE UHRP1000 WITH KEY OBJID = UHRP1001-OBJID.
MOVE UHRP1000-STEXT TO P-USTEXT."Sirket Text
* write :/1 uhrp1000-objid.
*reak-point.
APPEND P.
*-- clear
CLEAR : UHRP1000, UHRP1001, EHRP1000, PHRP1001 .
ENDLOOP.
ENDFORM. " FILL_P
Hiç yorum yok:
Yorum Gönder