Complate Personnel Administration Report

*  This is the report where you can get most of the texts and most needed information for an employee

*  in the Personnel Administration in HR

REPORT  zhr_pers_dev.

TABLES: pa0000.

TYPE-POOLS: slis.

DATA : t_fieldcat TYPE slis_t_fieldcat_alv,
       w_fieldcat TYPE slis_fieldcat_alv,
       w_layout   TYPE slis_layout_alv,
       is_keyinfo TYPE slis_keyinfo_alv,
       it_events TYPE slis_t_event,
       wa_events TYPE slis_alv_event.

DATA: v_col        TYPE  i.

TYPES: BEGIN OF ty_final,
       pernr    TYPE pa0001-pernr,
       begda    TYPE pa0001-begda,
       endda    TYPE pa0001-endda,
       vorna    TYPE pa0002-vorna,
       nachn    TYPE pa0002-nachn,
       massn    TYPE pa0000-massn,
       mntxt    TYPE t529t-mntxt,
       massg    TYPE pa0000-massg,
       mgtxt    TYPE t530t-mgtxt,
       stat2    TYPE pa0000-stat2,
       text1    TYPE t529u-text1,
       bukrs    TYPE pa0001-bukrs,
       butxt    TYPE t001-butxt,
       werks    TYPE pa0001-werks,
       name1    TYPE t500p-name1,
       persg    TYPE pa0001-persg,
       ptext    TYPE t501t-ptext,
       persk    TYPE pa0001-persk,
       ptext1   TYPE t503t-ptext,
       btrtl    TYPE pa0001-btrtl,
       btext    TYPE t001p-btext,
       abkrs    TYPE pa0001-abkrs,
        atext   TYPE t549t-atext,
        kostl   TYPE pa0001-kostl,
        ktext   TYPE cskt-ktext ,
        orgeh   TYPE pa0001-orgeh,
        orgtx   TYPE t527x-orgtx,
        plans   TYPE pa0001-plans,
        plstx   TYPE t528t-plstx,
        stell   TYPE pa0001-stell,
        stltx   TYPE t513s-stltx,
        subty   TYPE pa0006-subty,
        stext   TYPE t591s-stext,
        name2   TYPE pa0006-name2,
        stras   TYPE pa0006-stras,
        ort01   TYPE pa0006-ort01,
        ort02   TYPE pa0006-ort02,
        pstlz   TYPE pa0006-pstlz,
        land1   TYPE pa0006-land1,
        telnr   TYPE pa0006-telnr,
        subty_1 TYPE pa0006-subty,
        stext_1 TYPE t591s-stext,
        name2_1 TYPE pa0006-name2,
        stras_1 TYPE pa0006-stras,
        ort01_1 TYPE pa0006-ort01,
        ort02_1 TYPE pa0006-ort02,
        pstlz_1 TYPE pa0006-pstlz,
        land1_1 TYPE pa0006-land1,
        telnr_1 TYPE pa0006-telnr,
        wage1   TYPE pa0008-lga01,
        lgtxt1  TYPE t512t-lgtxt,
        amount1 TYPE pa0008-bet01,
        wage2   TYPE pa0008-lga01,
        lgtxt2  TYPE t512t-lgtxt,
        amount2 TYPE pa0008-bet01,
        wage3   TYPE pa0008-lga01,
        lgtxt3  TYPE t512t-lgtxt,
        amount3 TYPE pa0008-bet01,
        wage4   TYPE pa0008-lga01,
        lgtxt4  TYPE t512t-lgtxt,
        amount4 TYPE pa0008-bet01,
        subty_2 TYPE pa0105-subty,
        stext_2 TYPE t591s-stext,
        usrty   TYPE pa0105-usrty,
        usrid   TYPE pa0105-usrid,
        usrid_long TYPE pa0105-usrid_long,
       END  OF ty_final.

TYPES: BEGIN OF ty_pa0000,
       pernr TYPE pa0001-pernr,
       begda TYPE pa0001-begda,
       endda TYPE pa0001-endda,
       massn TYPE pa0000-massn,
       massg TYPE pa0000-massg,
       stat2 TYPE pa0000-stat2,
       END   OF ty_pa0000.

TYPES: BEGIN OF ty_pa0002,
      pernr TYPE pa0001-pernr,
      vorna TYPE pa0002-vorna,
      nachn TYPE pa0002-nachn,
      END   OF ty_pa0002.

TYPES: BEGIN OF ty_pa0001,
      pernr TYPE pa0001-pernr,
      bukrs TYPE pa0001-bukrs,
      werks TYPE pa0001-werks,
      persg TYPE pa0001-persg,
      persk TYPE pa0001-persk,
      btrtl TYPE pa0001-btrtl,
      abkrs TYPE pa0001-abkrs,
      kostl TYPE pa0001-kostl,
      orgeh TYPE pa0001-orgeh,
      plans TYPE pa0001-plans,
      stell TYPE pa0001-stell,
    END OF ty_pa0001.

TYPES:  BEGIN  OF ty_t529u,
        statv TYPE t529u-statv,
        text1 TYPE t529u-text1,
        END    OF ty_t529u.

TYPES: BEGIN OF ty_t530t,
        massg TYPE t530t-massg,
        mgtxt TYPE t530t-mgtxt,
      END OF ty_t530t.

TYPES: BEGIN OF ty_t001,
        bukrs TYPE t001-bukrs,
        butxt TYPE t001-butxt,
      END OF ty_t001.

TYPES: BEGIN OF ty_t529t,
        massn TYPE t529t-massn,
        mntxt TYPE t529t-mntxt,
      END OF ty_t529t.

TYPES: BEGIN OF ty_t500p,
        persa TYPE t500p-persa,
        name1 TYPE t500p-name1,
      END OF ty_t500p.

TYPES: BEGIN OF ty_t501t,
        persg TYPE t501t-persg,
        ptext TYPE t501t-ptext,
      END OF ty_t501t.

TYPES: BEGIN OF ty_t503t,
        persk TYPE t503t-persk,
        ptext TYPE t503t-ptext,
      END OF ty_t503t.

TYPES: BEGIN OF ty_t001p,
        btrtl TYPE t001p-btrtl,
        btext TYPE t001p-btext,
      END OF ty_t001p.

TYPES: BEGIN OF ty_t549t,
        abkrs TYPE t549t-abkrs,
        atext TYPE t549t-atext,
      END OF ty_t549t.

TYPES: BEGIN OF ty_cskt,
        kostl TYPE cskt-kostl,
        ktext TYPE cskt-ktext,
      END OF ty_cskt.

TYPES: BEGIN OF ty_t527x,
        orgeh TYPE t527x-orgeh,
        orgtx TYPE t527x-orgtx,
      END OF ty_t527x.

TYPES: BEGIN OF ty_t528t,
        plans TYPE t528t-plans,
        plstx TYPE t528t-plstx,
      END OF ty_t528t.

TYPES: BEGIN OF ty_t513s,
        stell TYPE t513s-stell,
        stltx TYPE t513s-stltx,
      END OF ty_t513s.

TYPES: BEGIN OF ty_pa0008.
        INCLUDE STRUCTURE p0008.
TYPES: END   OF ty_pa0008.

DATA: BEGIN OF wagetypes,
      lga LIKE p0008-lga01,
      bet LIKE p0008-bet01,
      END OF wagetypes.

TYPES: BEGIN OF ty_pa0006,
        pernr TYPE pa0006-pernr,
        subty TYPE pa0006-subty,
        name2 TYPE pa0006-name2,
        stras TYPE pa0006-stras,
        ort01 TYPE pa0006-ort01,
        ort02 TYPE pa0006-ort02,
        pstlz TYPE pa0006-pstlz,
        land1 TYPE pa0006-land1,
        telnr TYPE pa0006-telnr,
      END OF ty_pa0006.

TYPES: BEGIN OF ty_t591s,
        infty TYPE t591s-infty,
        subty TYPE t591s-subty,
        stext TYPE t591s-stext,
      END OF ty_t591s.

TYPES: BEGIN OF ty_t512t,
        lgart TYPE t512t-lgart,
        lgtxt TYPE t512t-lgtxt,
      END OF ty_t512t.

types: BEGIN OF ty_pa0105,
        pernr TYPE pa0105-pernr,
        subty TYPE pa0105-subty,
        usrty TYPE pa0105-usrty,
        usrid TYPE pa0105-usrid,
        usrid_long TYPE pa0105-usrid_long,
      END OF ty_pa0105.

DATA: lfs_0008       LIKE p0008.

DATA: it_t529u  TYPE TABLE OF ty_t529u  WITH HEADER LINE,
      it_t530t  TYPE TABLE OF ty_t530t  WITH HEADER LINE,
      it_t001   TYPE TABLE OF ty_t001   WITH HEADER LINE,
      it_t529t  TYPE TABLE OF ty_t529t  WITH HEADER LINE,
      it_t500p  TYPE TABLE OF ty_t500p  WITH HEADER LINE,
      it_t501t  TYPE TABLE OF ty_t501t  WITH HEADER LINE,
      it_t503t  TYPE TABLE OF ty_t503t  WITH HEADER LINE,
      it_t001p  TYPE TABLE OF ty_t001p  WITH HEADER LINE,
      it_t549t  TYPE TABLE OF ty_t549t  WITH HEADER LINE,
      it_cskt   TYPE TABLE OF ty_cskt   WITH HEADER LINE,
      it_t527x  TYPE TABLE OF ty_t527x  WITH HEADER LINE,
      it_t528t  TYPE TABLE OF ty_t528t  WITH HEADER LINE,
      it_t513s  TYPE TABLE OF ty_t513s  WITH HEADER LINE,
      it_t591s  TYPE TABLE OF ty_t591s  WITH HEADER LINE,
      it_t591s_1 TYPE TABLE OF ty_t591s WITH HEADER LINE,
      it_t512t  TYPE TABLE OF ty_t512t  WITH HEADER LINE,
      it_pa0000 TYPE TABLE OF ty_pa0000 WITH HEADER LINE,
      it_pa0001 TYPE TABLE OF ty_pa0001 WITH HEADER LINE,
      it_pa0002 TYPE TABLE OF ty_pa0002 WITH HEADER LINE,
      it_pa0006 TYPE TABLE OF ty_pa0006 WITH HEADER LINE,
      it_pa0008 TYPE TABLE OF ty_pa0008 WITH HEADER LINE,
      it_pa0105 TYPE TABLE OF ty_pa0105 WITH HEADER LINE,
      it_final  TYPE TABLE OF ty_final  WITH HEADER LINE.

SELECT-OPTIONS: s_pernr FOR pa0000-pernr.

START-OF-SELECTION.

  PERFORM get_pa0000_data.

  IF NOT it_pa0000[] IS INITIAL.

    PERFORM get_pa0001_data.

    IF NOT it_pa0001[] IS INITIAL.

      PERFORM get_texts.

    ENDIF.

    PERFORM get_pa0002_data.

    PERFORM get_pa0006_data.

    PERFORM get_pa0008_data.

    perform get_pa0105_data.
  ENDIF.

END-OF-SELECTION.

  PERFORM process_data.

  PERFORM build_fieldcatalog.

  PERFORM display_alv.

*&---------------------------------------------------------------------*
*&      Form  FILL_CAT
*----------------------------------------------------------------------*
FORM fill_cat  USING    value(p_1259)
                        value(p_1260).

  v_col  = v_col + 1.
  w_fieldcat-col_pos   =  v_col.
  w_fieldcat-fieldname = p_1259.
  w_fieldcat-tabname   = 'IT_FINAL'.
  w_fieldcat-reptext_ddic  = p_1260.

  APPEND w_fieldcat TO t_fieldcat.
  CLEAR w_fieldcat.

ENDFORM.                    " FILL_CAT
*&---------------------------------------------------------------------*
*&      Form  get_pa0000_data
*----------------------------------------------------------------------*
FORM get_pa0000_data .

  SELECT pernr
         begda
         endda
         massn
         massg
         stat2
         FROM pa0000
         INTO  TABLE it_pa0000
         WHERE pernr IN s_pernr
         AND  stat2 = '3'.

ENDFORM.                    " get_pa0000_data
*&---------------------------------------------------------------------*
*&      Form  get_pa0001_data
*----------------------------------------------------------------------*
FORM get_pa0001_data .

  SELECT      pernr
              bukrs
              werks
              persg
              persk
              btrtl
              abkrs
              kostl
              orgeh
              plans
              stell
              FROM pa0001
              INTO TABLE it_pa0001
              FOR ALL ENTRIES IN it_pa0000
              WHERE pernr = it_pa0000-pernr.

ENDFORM.                    " get_pa0001_data
*&---------------------------------------------------------------------*
*&      Form  get_texts
*----------------------------------------------------------------------*
FORM get_texts .

  SELECT statv
         text1
         FROM t529u
         INTO TABLE it_t529u
         FOR ALL ENTRIES IN it_pa0000
         WHERE statv = it_pa0000-stat2
         AND   statn = '2'
         AND   sprsl = 'E'.

  SELECT massg
         mgtxt
         FROM  t530t
         INTO TABLE it_t530t
         FOR ALL ENTRIES IN it_pa0000
         WHERE massg = it_pa0000-massg
         AND   sprsl = 'E'.

  SELECT massn
         mntxt
         FROM t529t
         INTO TABLE it_t529t
         FOR ALL ENTRIES IN it_pa0000
         WHERE massn  = it_pa0000-massn
         AND   sprsl  = 'E'.

  SELECT bukrs
         butxt
         FROM t001
         INTO TABLE it_t001
         FOR ALL ENTRIES IN it_pa0001
         WHERE bukrs = it_pa0001-bukrs
         AND   spras = 'E'.

  SELECT persa
         name1
         FROM t500p
         INTO TABLE it_t500p
         FOR ALL ENTRIES IN it_pa0001
         WHERE persa = it_pa0001-werks.

  SELECT persg
         ptext
         FROM t501t
         INTO TABLE it_t501t
         FOR ALL ENTRIES IN it_pa0001
         WHERE persg = it_pa0001-persg
         AND   sprsl = 'E'.

  SELECT    persk
            ptext
            FROM t503t
            INTO TABLE it_t503t
            FOR ALL ENTRIES IN it_pa0001
            WHERE persk = it_pa0001-persk
            AND   sprsl = 'E'.

  SELECT btrtl
          btext
          FROM t001p
          INTO TABLE it_t001p
          FOR ALL ENTRIES IN it_pa0001
          WHERE btrtl = it_pa0001-btrtl.

  SELECT abkrs
         atext
         FROM t549t
         INTO TABLE it_t549t
         FOR ALL ENTRIES IN it_pa0001
         WHERE abkrs = it_pa0001-abkrs
          AND  sprsl = 'E'.

  SELECT  kostl
          ktext
          FROM cskt
          INTO TABLE it_cskt
          FOR ALL ENTRIES IN it_pa0001
          WHERE  kostl = it_pa0001-kostl
          AND  spras = 'E'.

  SELECT orgeh
         orgtx
         FROM t527x
         INTO TABLE it_t527x
         FOR ALL ENTRIES IN it_pa0001
         WHERE orgeh = it_pa0001-orgeh
          AND  sprsl = 'E'.

  SELECT plans
         plstx
         FROM t528t
         INTO TABLE it_t528t
         FOR ALL ENTRIES IN it_pa0001
         WHERE plans = it_pa0001-plans
         AND   sprsl = 'E'.

  SELECT stell
         stltx
         FROM t513s
         INTO TABLE it_t513s
         FOR ALL ENTRIES IN it_pa0001
         WHERE stell = it_pa0001-stell
         AND   sprsl = 'E'.

ENDFORM.                    " get_texts
*&---------------------------------------------------------------------*
*&      Form  get_pa0002_data
*----------------------------------------------------------------------*
FORM get_pa0002_data .

  SELECT pernr
         vorna
         nachn
         FROM pa0002
         INTO  TABLE it_pa0002
         FOR ALL ENTRIES IN it_pa0000
         WHERE pernr = it_pa0000-pernr.

ENDFORM.                    " get_pa0002_data
*&---------------------------------------------------------------------*
*&      Form  get_pa0006_data
*----------------------------------------------------------------------*
FORM get_pa0006_data .

  SELECT  pernr
          subty
          name2
          stras
          ort01
          ort02
          pstlz
          land1
          telnr
          FROM pa0006
          INTO TABLE it_pa0006
          FOR ALL ENTRIES IN it_pa0000
          WHERE pernr = it_pa0000-pernr.

  IF NOT it_pa0006[] IS INITIAL.

    SELECT infty
           subty
           stext
           FROM t591s
           INTO TABLE it_t591s
           FOR ALL ENTRIES IN it_pa0006
           WHERE infty = '0006'
           AND   subty = it_pa0006-subty
           AND   sprsl = 'E'.
  ENDIF.

ENDFORM.                    " get_pa0006_data
*&---------------------------------------------------------------------*
*&      Form  get_pa0008_data
*----------------------------------------------------------------------*
FORM get_pa0008_data .

  SELECT *
         FROM pa0008
         INTO CORRESPONDING FIELDS OF TABLE it_pa0008
         FOR ALL ENTRIES IN it_pa0000
         WHERE pernr = it_pa0000-pernr.

  IF NOT it_pa0008[] IS INITIAL.

    SELECT lgart
           lgtxt
           FROM t512t
           INTO TABLE it_t512t.

  ENDIF.

ENDFORM.                    " get_pa0008_data
*&---------------------------------------------------------------------*
*&      Form  process_data
*----------------------------------------------------------------------*
FORM process_data .

  LOOP AT it_pa0000.

    it_final-pernr = it_pa0000-pernr.
    it_final-begda = it_pa0000-begda.
    it_final-endda = it_pa0000-endda.

    it_final-massn = it_pa0000-massn.
    READ TABLE it_t529t WITH KEY massn = it_pa0000-massn.
    IF sy-subrc = 0.
      it_final-mntxt = it_t529t-mntxt.
    ENDIF.

    it_final-massg = it_pa0000-massg.
    READ TABLE it_t530t WITH KEY massg = it_pa0000-massg.
    IF sy-subrc = 0.
      it_final-mgtxt = it_t530t-mgtxt.
    ENDIF.

    it_final-stat2 = it_pa0000-stat2.
    READ TABLE it_t529u WITH KEY statv = it_pa0000-stat2.
    IF sy-subrc = 0.
      it_final-text1 = it_t529u-text1.
    ENDIF.

    READ TABLE it_pa0001 WITH KEY  pernr = it_pa0000-pernr.
    IF sy-subrc = 0.

      it_final-bukrs   =  it_pa0001-bukrs.
      READ TABLE it_t001 WITH KEY  bukrs = it_pa0001-bukrs.
      IF sy-subrc = 0.
        it_final-butxt  = it_t001-butxt.
      ENDIF.

      it_final-werks   =  it_pa0001-werks.
      READ TABLE it_t500p WITH KEY  persa = it_pa0001-werks.
      IF sy-subrc = 0.
        it_final-name1  = it_t500p-name1.
      ENDIF.

      it_final-persg   =  it_pa0001-persg.
      READ TABLE it_t501t WITH KEY  persg = it_pa0001-persg.
      IF sy-subrc = 0.
        it_final-ptext = it_t501t-ptext.
      ENDIF.

      it_final-persk   =  it_pa0001-persk.
      READ TABLE it_t503t WITH KEY  persk = it_pa0001-persk.
      IF sy-subrc = 0.
        it_final-ptext1 = it_t503t-ptext.
      ENDIF.

      it_final-btrtl   =  it_pa0001-btrtl.
      READ TABLE it_t001p WITH KEY  btrtl = it_pa0001-btrtl.
      IF sy-subrc = 0.
        it_final-btext = it_t001p-btext.
      ENDIF.

      it_final-abkrs   =  it_pa0001-abkrs.
      READ TABLE it_t549t WITH KEY  abkrs = it_pa0001-abkrs.
      IF sy-subrc = 0.
        it_final-atext = it_t549t-atext.
      ENDIF.

      it_final-kostl   =  it_pa0001-kostl.
      READ TABLE it_cskt WITH KEY  kostl = it_pa0001-kostl.
      IF sy-subrc = 0.
        it_final-ktext = it_cskt-ktext.
      ENDIF.

      it_final-orgeh   =  it_pa0001-orgeh.
      READ TABLE it_t527x WITH KEY  orgeh = it_pa0001-orgeh.
      IF sy-subrc = 0.
        it_final-orgtx = it_t527x-orgtx.
      ENDIF.

      it_final-plans   =  it_pa0001-plans.
      READ TABLE it_t528t WITH KEY  plans = it_pa0001-plans.
      IF sy-subrc = 0.
        it_final-plstx = it_t528t-plstx.
      ENDIF.

      it_final-stell   =  it_pa0001-stell.
      READ TABLE it_t513s WITH KEY  stell = it_pa0001-stell.
      IF sy-subrc = 0.
        it_final-stltx = it_t513s-stltx.
      ENDIF.
    ENDIF.

    READ TABLE it_pa0002 WITH KEY  pernr = it_pa0000-pernr.
    IF sy-subrc = 0.
      it_final-vorna = it_pa0002-vorna.
      it_final-nachn = it_pa0002-nachn.
    ENDIF.

    READ TABLE it_pa0006 WITH KEY pernr = it_pa0000-pernr
                                  subty = '1'.

    IF sy-subrc = 0.
      it_final-subty = it_pa0006-subty.
      READ TABLE it_t591s WITH KEY infty = '0006'
                                    subty = '1'.
      IF sy-subrc = 0.
        it_final-stext = it_t591s-stext.
      ENDIF.
      it_final-name2 = it_pa0006-name2.
      it_final-stras = it_pa0006-stras.
      it_final-ort01 = it_pa0006-ort01.
      it_final-ort02 = it_pa0006-ort02.
      it_final-pstlz = it_pa0006-pstlz.
      it_final-land1 = it_pa0006-land1.
      it_final-telnr = it_pa0006-telnr.
    ENDIF.

    READ TABLE it_pa0006 WITH KEY pernr = it_pa0000-pernr
                                  subty = '2'.
    IF sy-subrc = 0.
      it_final-subty_1 = it_pa0006-subty.
      READ TABLE it_t591s WITH KEY infty = '0006'
                                    subty = '2'.
      IF sy-subrc = 0.
        it_final-stext_1 = it_t591s-stext.
      ENDIF.
      it_final-name2_1 = it_pa0006-name2.
      it_final-stras_1 = it_pa0006-stras.
      it_final-ort01_1 = it_pa0006-ort01.
      it_final-ort02_1 = it_pa0006-ort02.
      it_final-pstlz_1 = it_pa0006-pstlz.
      it_final-land1_1 = it_pa0006-land1.
      it_final-telnr_1 = it_pa0006-telnr.
    ENDIF.

    READ TABLE it_pa0008 WITH KEY pernr = it_pa0000-pernr
                                      lga01 = '1000'.
    IF sy-subrc = 0.
      CLEAR : lfs_0008.

      MOVE-CORRESPONDING it_pa0008 TO lfs_0008.

      DO 40 TIMES VARYING wagetypes-lga FROM lfs_0008-lga01 NEXT lfs_0008-lga02
                  VARYING wagetypes-bet FROM lfs_0008-bet01 NEXT lfs_0008-bet02.

        CHECK wagetypes-lga IS NOT INITIAL.

        CASE wagetypes-lga.

          WHEN '0001'.
            it_final-wage1 = wagetypes-lga .
            it_final-amount1 = wagetypes-bet .
            READ TABLE it_t512t WITH KEY lgart = wagetypes-lga.
            IF sy-subrc = 0.
              it_final-lgtxt1 = it_t512t-lgtxt.
            ENDIF.

          WHEN '0002'.
            it_final-wage2 = wagetypes-lga .
            it_final-amount2 = wagetypes-bet .
            READ TABLE it_t512t WITH KEY lgart = wagetypes-lga.
            IF sy-subrc = 0.
              it_final-lgtxt2 = it_t512t-lgtxt.
            ENDIF.

          WHEN '0003'.
            it_final-wage3 = wagetypes-lga .
            it_final-amount3 = wagetypes-bet .
            READ TABLE it_t512t WITH KEY lgart = wagetypes-lga.
            IF sy-subrc = 0.
              it_final-lgtxt3 = it_t512t-lgtxt.
            ENDIF.

          WHEN '0004'.
            it_final-wage4 = wagetypes-lga .
            it_final-amount4 = wagetypes-bet .
            READ TABLE it_t512t WITH KEY lgart = wagetypes-lga.
            IF sy-subrc = 0.
              it_final-lgtxt4 = it_t512t-lgtxt.
            ENDIF.

        ENDCASE.
      ENDDO.
    ENDIF.

     read table it_pa0105 with key pernr = it_pa0000-pernr
                                   SUBTY = '0010'.
     if sy-subrc = 0.
        it_final-subty_2       = it_pa0105-subty.
      READ TABLE it_t591s WITH KEY infty = '0105'
                                    subty = '0010'.
      IF sy-subrc = 0.
        it_final-stext_2 = it_t591s-stext.
      ENDIF.
        it_final-usrty       = it_pa0105-usrty.
        it_final-usrid       = it_pa0105-usrid.
        it_final-usrid_long    = it_pa0105-usrid_long.
     endif.

    APPEND it_final .
    CLEAR  it_final .

  ENDLOOP.
ENDFORM.                    " process_data
*&---------------------------------------------------------------------*
*&      Form  build_fieldcatalog
*----------------------------------------------------------------------*
FORM build_fieldcatalog .

  PERFORM  fill_cat USING  'PERNR'         'Personnel No'.
  PERFORM  fill_cat USING  'BEGDA'         'Start Date'.
  PERFORM  fill_cat USING  'ENDDA'         'End Date'.
  PERFORM  fill_cat USING  'VORNA'         'First Name'.
  PERFORM  fill_cat USING  'NACHN'         'Last  Name'.
  PERFORM  fill_cat USING  'MASSN'         'Action Type'.
  PERFORM  fill_cat USING  'MNTXT'         'Action Text'.
  PERFORM  fill_cat USING  'MASSG'         'Reason for Action'.
  PERFORM  fill_cat USING  'MGTXT'         'Reason for Action Text'.
  PERFORM  fill_cat USING  'STAT2'         'Employment Status'.
  PERFORM  fill_cat USING  'TEXT1 '        'Employment Status Text'.
  PERFORM  fill_cat USING  'BUKRS'         'Company Code'.
  PERFORM  fill_cat USING  'BUTX'         'Company Code Text'.
  PERFORM  fill_cat USING  'WERKS'         'Personnel Area'.
  PERFORM  fill_cat USING  'NAME1'         'Personnel Area Text'.
  PERFORM  fill_cat USING  'PERSG'         'Employee Group'.
  PERFORM  fill_cat USING  'PTEXT'         'Employee Group Text'.
  PERFORM  fill_cat USING  'PERSK'         'Employee Subgroup'.
  PERFORM  fill_cat USING  'PTEXT1'        'Employee Subgroup Text'.
  PERFORM  fill_cat USING  'BTRTL'         'Personnel Subarea'.
  PERFORM  fill_cat USING  'BTEXT'         'Personnel Subarea Text'.
  PERFORM  fill_cat USING  'ABKRS'         'Payroll Area'.
  PERFORM  fill_cat USING  'ATEXT'         'Payroll Area Text'.
  PERFORM  fill_cat USING  'KOSTL'         'Cost Center'.
  PERFORM  fill_cat USING  'KTEXT'         'Cost Center Text'.
  PERFORM  fill_cat USING  'ORGEH'         'Organizational Unit'.
  PERFORM  fill_cat USING  'ORGTX'         'Organizational Unit Text'.
  PERFORM  fill_cat USING  'PLANS'         'Position'.
  PERFORM  fill_cat USING  'PLSTX'         'Position Text'.
  PERFORM  fill_cat USING  'STELL'         'Job'.
  PERFORM  fill_cat USING  'STLTX'         'Job title'.
  PERFORM  fill_cat USING  'SUBTY'         'Address Subtype '.
  PERFORM  fill_cat USING  'STEXT'         'Subtype Text'.
  PERFORM  fill_cat USING  'NAME2'         'C/O name'.
  PERFORM  fill_cat USING  'STRAS'         'Street and House Number'.
  PERFORM  fill_cat USING  'ORT01'         'City'.
  PERFORM  fill_cat USING  'ORT02'         'District'.
  PERFORM  fill_cat USING  'PSTLZ'         'Postal Code'.
  PERFORM  fill_cat USING  'LAND1'         'Country Key'.
  PERFORM  fill_cat USING  'TELNR'         'Telephone number'.
  PERFORM  fill_cat USING  'SUBTY_1'       'Address Subtype '.
  PERFORM  fill_cat USING  'STEXT_1'       'Subtype Text'.
  PERFORM  fill_cat USING  'NAME2_1'       'C/O name'.
  PERFORM  fill_cat USING  'STRAS_1'       'Street and House Number'.
  PERFORM  fill_cat USING  'ORT01_1'       'City'.
  PERFORM  fill_cat USING  'ORT02_1'       'District'.
  PERFORM  fill_cat USING  'PSTLZ_1'       'Postal Code'.
  PERFORM  fill_cat USING  'LAND1_1'       'Country Key'.
  PERFORM  fill_cat USING  'TELNR_1'       'Telephone number'.
  PERFORM  fill_cat USING  'WAGE1'         'Wage Type'.
  PERFORM  fill_cat USING  'LGTXT1'        'Wage Text'.
  PERFORM  fill_cat USING  'AMOUNT1'       'Amount'.
  PERFORM  fill_cat USING  'WAGE2'         'Wage Type'.
  PERFORM  fill_cat USING  'LGTXT2'        'Wage Text'.
  PERFORM  fill_cat USING  'AMOUNT2'       'Amount'.
  PERFORM  fill_cat USING  'WAGE3'         'Wage Type'.
  PERFORM  fill_cat USING  'LGTXT3'        'Wage Text'.
  PERFORM  fill_cat USING  'AMOUNT3'       'Amount'.
  PERFORM  fill_cat USING  'WAGE4'         'Wage Type'.
  PERFORM  fill_cat USING  'LGTXT4'        'Wage Text'.
  PERFORM  fill_cat USING  'AMOUNT4'       'Amount'.
  PERFORM  fill_cat USING  'SUBTY_2'       'Sub type'.
  PERFORM  fill_cat USING  'STEXT_2'       'Subtype Text'.
  PERFORM  fill_cat USING  'USRID'         'User ID'.
  PERFORM  fill_cat USING  'USRID_LONG'    'Email'.

ENDFORM.                    " build_fieldcatalog
*&---------------------------------------------------------------------*
*&      Form  display_alv
*----------------------------------------------------------------------*
FORM display_alv .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      is_layout          = w_layout
      it_fieldcat        = t_fieldcat
      it_events          = it_events
    TABLES
      t_outtab           = it_final
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

ENDFORM.                    " display_alv
*&---------------------------------------------------------------------*
*&      Form  get_pa0105_data
*----------------------------------------------------------------------*
form get_pa0105_data .

select
        pernr
        subty
        usrty
        usrid
        usrid_long
        from pa0105
        into table it_pa0105
        for all entries in it_pa0000
        where pernr = it_pa0000-pernr.

if sy-subrc = 0.

    SELECT infty
           subty
           stext
           FROM t591s
           INTO TABLE it_t591s
           FOR ALL ENTRIES IN it_pa0105
           WHERE infty = '0105'
           AND   subty = it_pa0105-subty
           AND   sprsl = 'E'.

endif.
endform.                    " get_pa0105_data

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.