23 Ocak 2012 Pazartesi

Eğitim Bilgileri Raporu - Örnek ABAP Uygulaması 7

REPORT ZHRTMP22 LINE-SIZE 120 NO STANDARD PAGE HEADING.

*-- 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