SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Read out IT0001 organizational assignment



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> HR
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Sun Nov 04, 2007 5:38 pm    Post subject: Read out IT0001 organizational assignment Reply with quote

Read out IT0001 organizational assignment! Translate code digits into text!

Code:
REPORT ZHR0001.
*
**********************         HEADER                    **************
*
* Copyright (c) 2001 by xxxx xxx, 44318 Anywhere, http://xxxxx
* or: Copyright (c) 2001 by X.X. from X.
*
*     You can use or modify this report for your own work as long
*               as you don't try to sell or republish it.
*      In no event will the author be liable for indirect, special,
*        Incidental, or consequental damages (if any) arising out of
*                       the use of this report.
*//////////////////////////////////////////////////////////////////////*
* Append your coding here ...
TABLES: PERNR, T500P, T001P, PA0001, PA0003, PA0006, CSKT, T513S,
        PA0002, T503T, PA0008.

INFOTYPES: 0000, 0001, 0002, 0006, 0016, 0008, 0007.

DATA:  BEGIN OF TAB OCCURS 50,
         BUKRS LIKE P0001-BUKRS,
         KOSTL LIKE P0001-KOSTL,
         TXT3(25),
         PERNR LIKE P0001-PERNR,
         NAME(50),
         TXT1(25),
         TXT2(25),
         PK(25),
         TXT4(25),
         GEBTG(10),
         STRAS LIKE P0006-STRAS,
         PSTLZ LIKE P0006-PSTLZ,
         ORT01 LIKE P0006-ORT01,
         EINDT(10),
         SACHA LIKE P0001-SACHA,
         SCHKZ LIKE P0007-SCHKZ,
         BSGRD(6),
         TRFGB LIKE P0008-TRFGB,
         TRFGR LIKE P0008-TRFGR,
*        sumbb like q0008-sumbb,
*        anzahl(2) type p value 1,     " Anzahl der selektierten MA
       END OF TAB.

DATA:  BEGIN OF TAB2 OCCURS 50,
         BUKRS LIKE P0001-BUKRS,       "Buchungskreis
         KOSTL LIKE P0001-KOSTL,       "Kostenstelle
         TXT3(25),                     "Text Kostenstelle
         PERNR LIKE P0001-PERNR,       "Personalnummer
         NAME(50),                     "Name
         TXT1(25),                     "Text Personalbereich
         TXT2(25),                     "Text Personalteilbereich
         PK(25),                       "Vertragsart
         TXT4(25),                     "Text Stelle
         GEBTG(10),                    "Geburtsdatum
         STRAS LIKE P0006-STRAS,       "Strasse
         PSTLZ LIKE P0006-PSTLZ,       "Postleitzahl
         ORT01 LIKE P0006-ORT01,       "Wohnort
         EINDT(10),                    "Eintrittsdatum IT 0016
         SACHA LIKE P0001-SACHA,       "Sachbearbeiter Abrechnung
         SCHKZ LIKE P0007-SCHKZ,       "Arbeitszeitplan
         BSGRD(6),                     "Beschäftigungsgrad
         TRFGB LIKE P0008-TRFGB,       "Tarifgebiet
         TRFGR LIKE P0008-TRFGR,       "Tarifgruppe
*        sumbb like q0008-sumbb,            "Summe Basisbezüge
*        anzahl(3),
       END OF TAB2.

DATA: BEGIN OF FIELDNAMES OCCURS 20,   " Für Excel-Tabelle, 20 Spalten
        TEXT(60), TABNAME(10), FIELDNAME(10), TYP,
      END OF FIELDNAMES.

DATA: COMPANYCODE LIKE HRCA_COMPANY-COMP_CODE,
      COMPANYTEXT LIKE HRCA_COMPANY-COMP_NAME,
      PK(25).

* parameter ------------------------------------------------------
PARAMETERS:
      P_LISTE(1) TYPE C DEFAULT 'J',   "Ausgabe Excel/Word
      P_GESCH(1) TYPE C DEFAULT '*',   "Geschlecht
      P_SORT(1) TYPE C DEFAULT 'J'.    "Sort nach Kostst

* initialization -------------------------------------------------
INITIALIZATION.
  RP-SEL-EIN-AUS-INIT.                 "Status Austritt
  PNPPERNR-LOW = '1'.                  "Feld Persnr vorbesetzen mit 1
  APPEND PNPPERNR.
  PNPTIMED = 'D'.                      "Stichtag heute

GET PERNR.
* Selektion des letzten gueltigen Arbeitsplatzsatzes ===================
  RP_PROVIDE_FROM_LAST P0001
    SPACE PN-BEGDA PN-ENDDA.
  MOVE-CORRESPONDING P0001 TO TAB.
* endprovide.

* Ceck des Geschlechts =================================================
  IF P_GESCH EQ '*'.
    CHECK P0002-GESCH EQ '1' OR P0002-GESCH EQ '2'.
  ENDIF.
  IF P_GESCH EQ 'M'.
    CHECK P0002-GESCH EQ '1'.
  ENDIF.
  IF P_GESCH EQ 'W'.
    CHECK P0002-GESCH EQ '2'.
  ENDIF.

* Selektieren der Personalnummer =======================================
  SELECT * FROM PA0001
  WHERE PERNR EQ PERNR-PERNR.
  ENDSELECT.

* Selektieren der MA mit Abrechnung ====================================
  SELECT * FROM PA0003
  WHERE PERNR EQ PERNR-PERNR.
  ENDSELECT.
  CHECK PA0003-ABRSP NE 'X'.           " Abrechnung gesperrt

* Selektieren des Textes des Personalbereiches =========================
  SELECT * FROM T500P
  WHERE PERSA EQ PA0001-WERKS.         " Personalbereich
  ENDSELECT.
  TAB-TXT1 = T500P-NAME1.

* Selektieren des Textes des Personalteilbereiches =====================
  SELECT * FROM T001P
  WHERE BTRTL EQ PA0001-BTRTL.         " Personalteilbereich
  ENDSELECT.
  TAB-TXT2 = T001P-BTEXT.

* Selektieren des Textes der Kostenstelle ==============================
  SELECT * FROM CSKT
  WHERE KOSTL EQ PA0001-KOSTL.         " Kostenstelle
  ENDSELECT.
  TAB-TXT3 = CSKT-KTEXT.

* Selektieren der Stelle ===============================================
  SELECT * FROM T513S
  WHERE STELL EQ PA0001-STELL.         " Stellenbezeichnung
  ENDSELECT.
  TAB-TXT4 = T513S-STLTX.

* Selektieren der Vertragsart ==========================================
  SELECT * FROM T503T
  WHERE PERSK EQ PA0001-PERSK.         " Vertragsart
  ENDSELECT.
  TAB-PK = T503T-PTEXT.

* Selektieren des Namens ===============================================
  MOVE P0002-NACHN TO TAB-NAME.        " Name
  MOVE P0002-VORNA TO TAB-NAME+25.
  CONDENSE TAB-NAME.

* Selektieren des Geburtsdatum =========================================
  WRITE P0002-GBPAS TO TAB-GEBTG.      " Geburtsdatum

* Selektieren der Strasse ==============================================
  WRITE P0006-STRAS TO TAB-STRAS.      " Strasse

* Selektieren der PLZ ==================================================
  WRITE P0006-PSTLZ TO TAB-PSTLZ.      " Postleitzahl

* Selektieren des Ortes ================================================
  WRITE P0006-ORT01 TO TAB-ORT01.      " Wohnort

* Selektieren des Eintrittsdatums ======================================
  WRITE P0016-EINDT TO TAB-EINDT.      " Eintrittsdatum IT 0016

* Selektieren des Sachbearbeiters ======================================
  WRITE P0001-SACHA TO TAB-SACHA.      " Sachbearbeiter Abrechnung

* Selektieren des Arbeitszeitplanes ====================================
  WRITE P0007-SCHKZ TO TAB-SCHKZ.      " Arbeitszeitplan

* Selektieren des Beschäftigungsgrades =================================
  SELECT * FROM PA0002 WHERE PERNR EQ PERNR-PERNR.
  ENDSELECT.
  SELECT * FROM PA0008 WHERE PERNR EQ PERNR-PERNR.
  ENDSELECT.
  WRITE P0008-BSGRD TO TAB-BSGRD.      " Beschäftigungsgrad

* Selektieren des Tarifgebiets =========================================
  WRITE P0008-TRFGB TO TAB-TRFGB.      " Tarifgebiet

* Selektieren der Tarifgruppe ==========================================
  WRITE P0008-TRFGR TO TAB-TRFGR.      " Tarifgruppe

* Selektieren der Kostenstelle =========================================
  WRITE P0001-KOSTL TO TAB-KOSTL.      " Kostenstelle

* Selektieren der Summe Basisbezüge ====================================
* write q0008-sumbb to tab-sumbb.      " Summe Basisbezüge

  COLLECT TAB.

* Verarbeitung am Ende der Datenselektion
END-OF-SELECTION.
  SORT TAB.                            " sortieren von Tab
  LOOP AT TAB.
    AT NEW BUKRS.
      COMPANYCODE = TAB-BUKRS.
      CALL FUNCTION 'HRCA_COMPANYCODE_GETDETAIL'
           EXPORTING
                COMPANYCODE       = COMPANYCODE
                LANGUAGE          = SY-LANGU
           IMPORTING
                COMP_NAME         = COMPANYTEXT
*               CITY              =
*               COUNTRY           =
*               CURRENCY          =
*               LANGU             =
*               CHRT_ACCTS        =
*               FY_VARIANT        =
*               FI_MANAGEMENTAREA =
*               JURISDICTION      =
*               RATE_DEVIATION    =
*               ADDRESS           =
           EXCEPTIONS
                NOT_FOUND         = 1
                OTHERS            = 2.

      IF SY-SUBRC <> 0.
        CLEAR COMPANYTEXT.
        WRITE: / 'Text konnte nicht bestimmt werden'(001).
      ENDIF.

    ENDAT.

  ENDLOOP.

* Druckoption ==========================================================
  IF P_LISTE EQ 'J'.
    PERFORM BASIC_LIST.
  ELSE.
    PERFORM TAB-ZEILE.
  ENDIF.

*-----------------------------------------------------------------
* Drucken der Zeile
FORM TAB-ZEILE.
  IF P_SORT EQ 'J'.
    SORT TAB BY KOSTL.
  ELSE.
    SORT TAB BY PERNR.
  ENDIF.
  LOOP AT TAB.

    WRITE: /20 TAB-BUKRS,'*', TAB-KOSTL,'*', TAB-TXT3,'*',
               TAB-PERNR,'*', TAB-NAME,'*',
               TAB-TXT1,'*', TAB-TXT2,'*', TAB-PK,'*', TAB-TXT4,'*',
               TAB-GEBTG DD/MM/YYYY,'*', TAB-STRAS,'*', TAB-PSTLZ,'*',
               TAB-ORT01,'*', TAB-EINDT DD/MM/YYYY, '*', TAB-SACHA,'*',
               TAB-SCHKZ,'*', TAB-BSGRD,'*', TAB-TRFGB,'*', TAB-TRFGR.
    ULINE.
  ENDLOOP.
ENDFORM.

*---------------------------------------------------------------------*
*       FORM BASIC_LIST                                               *
*---------------------------------------------------------------------*
FORM BASIC_LIST.
  IF P_SORT EQ 'J'.
    SORT TAB BY KOSTL.
  ELSE.
    SORT TAB BY PERNR.
  ENDIF.
  LOOP AT TAB.
    MOVE-CORRESPONDING TAB TO TAB2.

    APPEND TAB2.
  ENDLOOP.
  PERFORM SPALTEN_UEB.                 "Spaltenueberschrift
  CALL FUNCTION 'HR_DISPLAY_BASIC_LIST'
       EXPORTING
          BASIC_LIST_TITLE     = SY-TITLE
          FILE_NAME            = 'ZP270002'
          HEAD_LINE1           = 'Organisatorische Zuordnung'
*         HEAD_LINE2           = ' '
*         FOOT_NOTE1           = ' '
*         FOOT_NOTE2           = ' '
*         FOOT_NOTE3           = ' '
*         lay_out              = 0
*         DYN_PUSHBUTTON_TEXT1 =
*         DYN_PUSHBUTTON_TEXT2 =
*         DYN_PUSHBUTTON_TEXT3 =
*         DYN_PUSHBUTTON_TEXT4 =
*         DYN_PUSHBUTTON_TEXT5 =
*         DYN_PUSHBUTTON_TEXT6 =
*         DATA_STRUCTURE       = ' '
*         HEAD_LINE3           = ' '
*         HEAD_LINE4           = ' '
*         CURRENT_REPORT       =
*         LIST_LEVEL           = ' '
*         ADDITIONAL_OPTIONS   = ' '
*         WORD_DOCUMENT        =
*    IMPORTING
*         RETURN_CODE          =
       TABLES
          DATA_TAB             = TAB2
          FIELDNAME_TAB        = FIELDNAMES
*         SELECT_TAB           =
*         ERROR_TAB            =
       EXCEPTIONS
            DOWNLOAD_PROBLEM     = 1
            NO_DATA_TAB_ENTRIES  = 2
            TABLE_MISMATCH       = 3
            PRINT_PROBLEMS       = 4
            OTHERS               = 5.
ENDFORM.

*---------------------------------------------------------------------*
* Spaltenueberschriften fuer EXCEL-Tabelle
*---------------------------------------------------------------------*
FORM SPALTEN_UEB.
  PERFORM INIT_FIELDNAMES USING 'Bukr     '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Kostst   '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Kosttext '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Persnr   '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Name     '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'PB       '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'PTB      '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Vertragsart'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Stelle   '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Geburtsdatum'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Strasse  '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'PLZ      '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Ort      '    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Eintrittsdatum'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Sachbearbeiter'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Arbeitszeitplan'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Beschäftigungsgrad'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Tarifgebiet'    ' '  ' ' SPACE.
  PERFORM INIT_FIELDNAMES USING 'Tarifgruppe'    ' '  ' ' SPACE.
* perform init_fieldnames using 'Summe Basisbez.'    ' '  ' ' space.
  PERFORM INIT_FIELDNAMES USING '         '    ' '  ' ' SPACE.
ENDFORM.

*&---------------------------------------------------------------------*
*       Fuellen der Strukturtabelle fieldnames.                        *
*----------------------------------------------------------------------*
*  -->  field1, field2, field3, field4.
*----------------------------------------------------------------------*
FORM INIT_FIELDNAMES USING FIELD1 FIELD2 FIELD3 FIELD4.
  FIELDNAMES-TEXT = FIELD1.
  FIELDNAMES-TABNAME = FIELD2.
  FIELDNAMES-FIELDNAME = FIELD3.
  FIELDNAMES-TYP = FIELD4.
  APPEND FIELDNAMES. CLEAR FIELDNAMES.
ENDFORM.                               " INIT_FIELDNAMES
   
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> HR All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.