ABAP - Sample Program With Logical Database PNP
ABAP - Sample Program With Logical Database PNP
report.
tables:pernr,t528t.
infotypes:0001,0008.
data : begin of itab occurs 0,
pernr like p0001-pernr,
sname like p0001-sname,
plans like p0001-plans,
begda like p0001-begda,
endda like p0001-endda,
ptext like t528t-plstx,
ANSAL like p0008-ANSAL,
end of itab.
start-of-selection.
get pernr.
itab-pernr = pernr-pernr.
end-of-selection.
clear itab.
loop at itab.
write:/ itab-pernr,
itab-sname,
itab-plans,
itab-begda,
itab-endda,
itab-ansal.
endloop.
REPORT ZHR_TERMINATION_REPORT.
* Get the employees who takes unauthorised leave for more than 10 days or having
* more than 21 days leave
tables: pa2001,
pa0001,
pa0000.
type-pools: slis.
at selection-screen output.
loop at screen.
if screen-name = 'S_DATE-LOW' or screen-name = 'S_DATE-HIGH'.
screen-required = '1'.
modify screen.
endif.
endloop.
start-of-selection.
select pernr
begda
endda
stat2 from pa0000
into table it_pa0000
where pernr in s_pernr
and stat2 in s_stat2.
if sy-subrc = 0.
select pernr
begda
endda
werks
persg
persk
btrtl
from pa0001
into table it_pa0001
for all entries in it_pa0000
where pernr = it_pa0000-pernr
and werks in s_werks
and persg in s_persg
and persk in s_persk
and btrtl in s_btrtl.
if sy-subrc = 0.
select pernr
subty
begda
endda
kaltg
from pa2001
into table it_pa2001
for all entries in it_pa0001
where pernr = it_pa0001-pernr
and begda le s_date-high
and endda ge s_date-low
and subty = '5110'.
if sy-subrc = 0.
select pernr
vorna
nachn
from pa0002
into table it_pa0002
for all entries in it_pa2001
where pernr = it_pa2001-pernr
and sprsl = 'EN'.
endif.
endif.
endif.
it_tmp_pa2001[] = it_pa2001[].
end-of-selection.
perform process_data.
perform build_fieldcat.
perform get_events.
perform top_of_page.
perform display_alv.
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT
*----------------------------------------------------------------------*
form build_fieldcat .
wa_fieldcat-fieldname = 'PERNR'.
wa_fieldcat-seltext_l = 'Personnel Number'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'VORNA'.
wa_fieldcat-seltext_l = 'First Name'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NACHN'.
wa_fieldcat-seltext_l = 'Last Name'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BEGDA'.
wa_fieldcat-seltext_l = 'Start Date'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ENDDA'.
wa_fieldcat-seltext_l = 'End Date'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_l = 'Personnel Area'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BTRTL'.
wa_fieldcat-seltext_l = 'Personnel Subarea'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PERSG'.
wa_fieldcat-seltext_l = 'Employee Group'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'PERSK'.
wa_fieldcat-seltext_l = 'Employee Subgroup'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'STAT'.
wa_fieldcat-seltext_l = 'Employment Status'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KALTG'.
wa_fieldcat-seltext_l = 'Continious Unauthorised Leave'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'TDAYS'.
wa_fieldcat-seltext_l = 'Total No of Absence Days in the Year'.
wa_fieldcat-just = 'C'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
it_layout-zebra = 'X'.
it_layout-colwidth_optimize = 'X'.
loop at it_pa2001.
it_final-kaltg = it_pa2001-kaltg.
it_final-tdays = total_days .
append it_final.
endif.
clear : it_final,
total_days.
endloop.
endform. " PROCESS_DATA
*&---------------------------------------------------------------------*
*& Form get_events
*----------------------------------------------------------------------*
form get_events .
*---top of page for the first block
wa_events-name = 'TOP_OF_PAGE'.
wa_events-form = 'TOP_OF_PAGE'.
append wa_events to it_events.
clear wa_events.
perform write_header.
refresh it_list.
clear it_list.
clear it_list.
it_list-typ = 'H'.
it_list-key = space.
it_list-info = 'Termination Report'.
append it_list to it_list.
it_list-typ = 'S'.
it_list-key = space.
concatenate 'Run Period:' s_date-low+4(2) '.' s_date-low+6(2) '.' s_date-low+0(4) ' ' '-' ' '
s_date-high+4(2) '.' s_date-high+6(2) '.' s_date-high+0(4) into it_list-info.
append it_list to it_list.