Você está na página 1de 4

*&---------------------------------------------------------------------*

*& Report ZHR_ABS


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zhr_abs.

NODES : pernr, peras.


INFOTYPES : 0001, 0002, 2001.
TYPE-POOLS : slis.

TYPES: BEGIN OF ty_pa0001,


pernr TYPE pa0001-pernr,
subty TYPE pa0001-subty,
objps TYPE pa0001-objps,
sprps TYPE pa0001-sprps,
endda TYPE pa0001-endda,
begda TYPE pa0001-begda,
seqnr TYPE pa0001-seqnr,
abkrs TYPE pa0001-abkrs,
END OF ty_pa0001.
DATA: it_pa0001 TYPE TABLE OF ty_pa0001,
wa_pa0001 TYPE ty_pa0001.

TYPES: BEGIN OF ty_pa0002,


pernr TYPE pa0002-pernr,
subty TYPE pa0002-subty,
objps TYPE pa0002-objps,
sprps TYPE pa0002-sprps,
endda TYPE pa0002-endda,
begda TYPE pa0002-begda,
seqnr TYPE pa0002-seqnr,
nachn TYPE pa0002-nachn,
vorna TYPE pa0002-vorna,
END OF ty_pa0002.
DATA: it_pa0002 TYPE TABLE OF ty_pa0002,
wa_pa0002 TYPE ty_pa0002.

TYPES: BEGIN OF ty_pa2001,


pernr TYPE pa2001-pernr,
subty TYPE pa2001-subty,
objps TYPE pa2001-objps,
sprps TYPE pa2001-sprps,
endda TYPE pa2001-endda,
begda TYPE pa2001-begda,
seqnr TYPE pa2001-seqnr,
awart TYPE pa2001-awart,
kaltg TYPE pa2001-kaltg,
END OF ty_pa2001.
DATA: it_pa2001 TYPE TABLE OF ty_pa2001,
wa_pa2001 TYPE ty_pa2001.
DATA: name47 TYPE string.
TYPES: BEGIN OF ty_final,
pernr TYPE pa2001-pernr,
name TYPE string,
awart TYPE pa2001-awart,
endda TYPE pa2001-endda,
begda TYPE pa2001-begda,
kaltg TYPE pa2001-kaltg,
END OF ty_final.
DATA: it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,


wa_fieldcat TYPE slis_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
pos TYPE i.

AT SELECTION-SCREEN ON pnpabkrs.
IF pnpabkrs IS INITIAL.
MESSAGE 'Pay Roll Area is Mandetory' TYPE 'E'.
ENDIF.

START-OF-SELECTION.

GET peras. "" Fetches Single record

SELECT pernr subty objps sprps


endda begda seqnr abkrs
FROM pa0001
INTO TABLE it_pa0001
* WHERE abkrs BETWEEN pnpabkrs-low AND pnpabkrs-high.
WHERE pernr IN pnppernr
AND abkrs IN pnpabkrs.
IF it_pa0001[] IS NOT INITIAL.
SELECT pernr subty objps
sprps endda begda
seqnr nachn vorna
FROM pa0002 INTO TABLE
it_pa0002 FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr.
SELECT pernr subty objps
sprps endda begda
seqnr awart kaltg
FROM pa2001 INTO TABLE
it_pa2001 FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr.
ENDIF.

SORT it_pa0002 BY pernr.


SORT it_pa2001 BY pernr.
LOOP AT it_pa0001 INTO wa_pa0001.
wa_final-pernr = wa_pa0001-pernr.
READ TABLE it_pa0002 INTO wa_pa0002 WITH KEY pernr = wa_pa0001-
pernr BINARY SEARCH.
IF sy-subrc = 0.
CONCATENATE wa_pa0002-vorna wa_pa0002-
nachn INTO name47 SEPARATED BY space.
wa_final-name = name47.
ENDIF.
READ TABLE it_pa2001 INTO wa_pa2001 WITH KEY pernr = wa_pa0001-
pernr BINARY SEARCH.
IF sy-subrc = 0.
** CONCATENATE wa_pa0002-vorna wa_pa0002-
nachn INTO name47 SEPARATED BY space.
wa_final-awart = wa_pa2001-awart.
wa_final-begda = wa_pa2001-begda.
wa_final-endda = wa_pa2001-endda.
wa_final-kaltg = wa_pa2001-kaltg.
ENDIF.
APPEND wa_final TO it_final.
CLEAR: wa_pa0001, wa_pa0002, wa_pa2001.
ENDLOOP.

END-OF-SELECTION.

CLEAR: it_fieldcat[] , pos.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'PERNR'.
wa_fieldcat-seltext_l = 'Personnel No.'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'NAME'.
wa_fieldcat-seltext_l = 'Name'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'AWART'.
wa_fieldcat-seltext_l = 'Absence Type'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'BEGDA'.
wa_fieldcat-seltext_l = 'Start Date'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'ENDDA'.
wa_fieldcat-seltext_l = 'End Date'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
pos = pos + 1.
wa_fieldcat-col_pos = pos.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'KALTG'.
wa_fieldcat-seltext_l = 'Days'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.

wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout
it_fieldcat = it_fieldcat
i_save = 'A'
TABLES
t_outtab = it_final.

Você também pode gostar