TABLES: pa0000,
pa0001,
pa0009,
t569v,
t549a,
t549q.
TYPES: BEGIN OF ty_final,
pernr TYPE pa0001-pernr,
ename TYPE pa0001-ename,
jdate TYPE pa0041-dat01,
amount1 TYPE pa0008-bet01, " basic
amount2 TYPE pa0008-bet01, " HRA
amount3 TYPE pa0008-bet01, " Transport
amount4 TYPE pa0008-bet01, "Total Gross
days TYPE i, " Total Working days
days1 TYPE i, " Worked days
days2 TYPE i, " absence days
amount5 TYPE pa0008-bet01, " Basic Salary actual
amount6 TYPE pa0008-bet01, "HRA actual
amount7 TYPE pa0008-bet01, "Transport actual
hrs TYPE pa2010-stdaz,
amount8 TYPE pa0008-bet01, "Over Time 150%
hrs1 TYPE pa2010-stdaz,
amount9 TYPE pa0008-bet01, "Over Time 200%
amount10 TYPE pa0008-bet01, " Telephone
amount11 TYPE pa0008-bet01, "Total Gross Due
amount12 TYPE pa0008-bet01, " Deductions HRA repayment
amount13 TYPE pa0008-bet01, " Deductions HRA balance
amount14 TYPE pa0008-bet01, " Deductions Advance repayment
amount15 TYPE pa0008-bet01, " Deductions Advance balance
amount16 TYPE pa0008-bet01, " Deductions Loan repayment
amount17 TYPE pa0008-bet01, " Deductions Loan balance
amount18 TYPE pa0008-bet01, " Deductions Gosi repayment
amount19 TYPE pa0008-bet01, " Total Deductions
amount20 TYPE pa0008-bet01, " Net Payment
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_pa0008.
INCLUDE STRUCTURE p0008.
TYPES: END OF ty_pa0008.
TYPES: BEGIN OF ty_pa2010,
pernr TYPE pa2010-pernr,
begda TYPE pa2010-begda,
endda TYPE pa2010-endda,
lgart TYPE pa2010-lgart,
anzhl TYPE pa2010-anzhl,
END OF ty_pa2010.
TYPES: BEGIN OF ty_pa2001.
INCLUDE STRUCTURE p2001.
TYPES: END OF ty_pa2001.
TYPES: BEGIN OF ty_pa2006.
INCLUDE STRUCTURE p2006.
TYPES: END OF ty_pa2006.
TYPES: BEGIN OF ty_pa0045.
INCLUDE STRUCTURE p0045.
TYPES: END OF ty_pa0045.
DATA: BEGIN OF wagetypes,
lga LIKE p0008-lga01,
bet LIKE p0008-bet01,
END OF wagetypes.
TYPES: BEGIN OF ty_pa0041.
INCLUDE STRUCTURE p0041.
TYPES: END OF ty_pa0041.
TYPES: BEGIN OF ty_pa0014.
INCLUDE STRUCTURE p0014.
TYPES: END OF ty_pa0014.
DATA: lfs_0008 LIKE p0008.
DATA: BEGIN OF dates,
dar LIKE p0041-dar01,
dat LIKE p0041-dat01,
END OF dates.
DATA: 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_pa0008 TYPE TABLE OF ty_pa0008 WITH HEADER LINE,
it_pa0041 TYPE TABLE OF ty_pa0041 WITH HEADER LINE,
it_pa0014 TYPE TABLE OF ty_pa0014 WITH HEADER LINE,
it_pa0045 TYPE TABLE OF ty_pa0045 WITH HEADER LINE,
it_pa2001 TYPE TABLE OF ty_pa2001 WITH HEADER LINE,
it_pa2006 TYPE TABLE OF ty_pa2006 WITH HEADER LINE,
it_pa2010 TYPE TABLE OF ty_pa2010 WITH HEADER LINE,
it_final TYPE TABLE OF ty_final WITH HEADER LINE,
it_rgdir TYPE TABLE OF pc261 WITH HEADER LINE,
it_result TYPE pay99_result ,
wa_itrgdir TYPE pc261,
wa_rt TYPE pc207,
w_molga TYPE t500l-molga,
w_seqnr TYPE cdseq,
w_relid TYPE relid_pcl2,
wagetype TYPE char15,
v_permo TYPE t549a-permo,
v_total TYPE pa0008-bet01,
v_pernr TYPE pa0001-pernr,
v_werks TYPE pa0001-werks,
v_btrtl TYPE pa0001-btrtl,
v_persg TYPE pa0001-persg,
v_persk TYPE pa0001-persk,
v_abkrs TYPE pa0001-abkrs.
*************************************************************************
** SELECTION-SCREEN *
*************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-002.
PARAMETERS:p_abkrs TYPE pa0001-abkrs .
PARAMETERS: p_pabrp TYPE t569v-pabrp,
p_pabrj TYPE t569v-pabrj,
p_begda TYPE pa0001-begda,
p_endda TYPE pa0001-endda.
PARAMETERS: r1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND aaa,
r2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b3 .
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_pernr FOR pa0001-pernr,
s_werks FOR pa0001-werks, "Personnel Area
s_btrtl FOR pa0001-btrtl, "Personnel Subarea
s_persg FOR pa0001-persg, "Employee Group
s_persk FOR pa0001-persk. "Employee Subgroup
SELECTION-SCREEN END OF BLOCK b2 .
SELECTION-SCREEN END OF BLOCK b1 .
************************************************************************
* AT SELECTION SCREEN *
************************************************************************
AT SELECTION-SCREEN.
IF NOT s_pernr[] IS INITIAL.
SELECT pernr
FROM pa0001
INTO v_pernr
WHERE pernr IN s_pernr.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Personnel Number'.
ENDIF.
ENDSELECT.
ENDIF.
IF NOT s_werks[] IS INITIAL.
SELECT werks
FROM pa0001
INTO v_werks
WHERE pernr IN s_werks.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Personnel Area'.
ENDIF.
ENDSELECT.
ENDIF.
IF NOT s_btrtl[] IS INITIAL.
SELECT btrtl
FROM pa0001
INTO v_btrtl
WHERE pernr IN s_btrtl.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Personnel Subarea'.
ENDIF.
ENDSELECT.
ENDIF.
IF NOT s_persg[] IS INITIAL.
SELECT persg
FROM pa0001
INTO v_persg
WHERE pernr IN s_persg.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Employee Group'.
ENDIF.
ENDSELECT.
ENDIF.
IF NOT s_persk[] IS INITIAL.
SELECT persk
FROM pa0001
INTO v_persk
WHERE pernr IN s_persk.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Employee Subgroup'.
ENDIF.
ENDSELECT.
ENDIF.
IF NOT p_abkrs IS INITIAL.
SELECT abkrs
FROM pa0001
INTO v_abkrs
WHERE pernr = p_abkrs.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Enter a valid Payroll Area'.
ENDIF.
ENDSELECT.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
IF r1 = 'X'.
PERFORM get_data_from_current_period.
LOOP AT SCREEN.
IF screen-name = 'P_PABRP'
OR screen-name = 'P_PABRJ'
OR screen-name = 'P_BEGDA'
OR screen-name = 'P_ENDDA'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ELSEIF r2 = 'X'.
PERFORM get_data_from_period.
LOOP AT SCREEN.
IF screen-name = 'P_BEGDA'
OR screen-name = 'P_ENDDA'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
PERFORM get_pa0000_data.
IF NOT it_pa0000[] IS INITIAL.
PERFORM get_pa0001_data.
PERFORM get_pa0002_data.
PERFORM get_pa0008_data.
PERFORM get_pa0014_data.
PERFORM get_pa0045_data.
PERFORM get_pa2001_data. " absenses
PERFORM get_pa2006_data. " absenses Quotas
PERFORM get_pa2010_data. " Remuniration
ENDIF.
END-OF-SELECTION.
PERFORM process_data.
PERFORM header .
PERFORM display_data.
*&---------------------------------------------------------------------*
*& 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'
AND begda LE p_endda
AND endda GE p_begda.
IF sy-subrc = 0.
DELETE ADJACENT DUPLICATES FROM it_pa0000 COMPARING pernr.
ENDIF.
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
AND begda LE p_endda
AND endda GE p_begda.
IF sy-subrc = 0.
SELECT *
FROM pa0041
INTO CORRESPONDING FIELDS OF TABLE it_pa0041
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
ENDIF.
ENDFORM. " get_pa0001_data
*&---------------------------------------------------------------------*
*& 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
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa0002_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
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa0008_data
*&---------------------------------------------------------------------*
*& Form get_pa0014_data
*------------------------}---------------------------------------------*
FORM get_pa0014_data .
SELECT * FROM pa0014
INTO CORRESPONDING FIELDS OF TABLE it_pa0014
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa0014_data
*&---------------------------------------------------------------------*
*& Form get_pa0045_data
*----------------------------------------------------------------------*
FORM get_pa0045_data .
SELECT * FROM pa0045
INTO CORRESPONDING FIELDS OF TABLE it_pa0045
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa0045_data
*&---------------------------------------------------------------------*
*& Form get_pa2001_data
*----------------------------------------------------------------------*
FORM get_pa2001_data .
SELECT * FROM pa2001
INTO CORRESPONDING FIELDS OF TABLE it_pa2001
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa2001_data
*&---------------------------------------------------------------------*
*& Form get_pa2006_dat
*----------------------------------------------------------------------*
FORM get_pa2006_data .
SELECT * FROM pa2006
INTO CORRESPONDING FIELDS OF TABLE it_pa2006
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
ENDFORM. " get_pa2006_data
*&---------------------------------------------------------------------*
*& Form GET_PA2010_DATA
*----------------------------------------------------------------------*
FORM get_pa2010_data .
SELECT pernr
begda
endda
lgart
anzhl
FROM pa2010
INTO TABLE it_pa2010
FOR ALL ENTRIES IN it_pa0001
WHERE pernr = it_pa0001-pernr
AND begda LE p_endda
AND endda GE p_begda.
IF sy-subrc = 0.
SORT it_pa2010 BY pernr.
ENDIF.
ENDFORM. " GET_PA2010_DATA
*&---------------------------------------------------------------------*
*& Form process_data
*----------------------------------------------------------------------*
FORM process_data .
LOOP AT it_pa0000.
it_final-pernr = it_pa0000-pernr.
READ TABLE it_pa0002 WITH KEY pernr = it_pa0000-pernr.
IF sy-subrc = 0.
CONCATENATE it_pa0002-vorna it_pa0002-nachn INTO it_final-ename.
ENDIF.
READ TABLE it_pa0041 WITH KEY pernr = it_pa0000-pernr..
IF sy-subrc = 0.
DO 12 TIMES VARYING dates-dar FROM it_pa0041-dar01 NEXT it_pa0041-dar02
VARYING dates-dat FROM it_pa0041-dat01 NEXT it_pa0041-dat02.
CHECK dates-dar IS NOT INITIAL.
IF dates-dar = '01'.
it_final-jdate = dates-dat.
ENDIF.
ENDDO.
ENDIF.
READ TABLE it_pa0008 WITH KEY pernr = it_pa0000-pernr.
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 '1000'.
it_final-amount1 = wagetypes-bet . " Basic
WHEN '1010'.
it_final-amount2 = wagetypes-bet . " HRA
WHEN '1020'.
it_final-amount3 = wagetypes-bet . " Transport
WHEN '1030'.
it_final-amount10 = wagetypes-bet . " Telephone
ENDCASE.
ENDDO.
ENDIF.
it_final-amount4 = it_final-amount1 + it_final-amount2 +
it_final-amount3 + it_final-amount10. " Total Gross
PERFORM actual_amounts.
READ TABLE it_pa0001 INDEX 1.
LOOP AT it_pa2010 WHERE pernr = it_pa0001-pernr.
CASE: it_pa2010-lgart.
WHEN '5000'.
it_final-hrs = it_final-hrs + it_pa2010-anzhl.
WHEN '5010'.
it_final-hrs1 = it_final-hrs1 + it_pa2010-anzhl.
ENDCASE.
ENDLOOP.
READ TABLE it_pa2006 WITH KEY pernr = it_pa0000-pernr.
IF sy-subrc = 0.
ENDIF.
DATA: v_days TYPE i.
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
EXPORTING
begda = p_begda
endda = p_endda
IMPORTING
days = v_days.
.
it_final-days = v_days.
LOOP AT it_pa2001 WHERE pernr = it_pa0000-pernr.
it_final-days2 = it_final-days2 + it_pa2001-abwtg.
ENDLOOP.
it_final-days1 = it_final-days - it_final-days2 .
it_final-amount19 = it_final-amount12 + it_final-amount14
+ it_final-amount16 + it_final-amount18.
it_final-amount20 = it_final-amount4 + it_final-amount19.
it_final-amount11 = it_final-amount4 - it_final-amount5 - it_final-amount6 - it_final-amount7.
APPEND it_final .
CLEAR it_final .
ENDLOOP.
ENDFORM. " process_data
*&---------------------------------------------------------------------*
*& Form GET_DATA_FROM_CURRENT_PERIOD
*----------------------------------------------------------------------*
FORM get_data_from_current_period .
SELECT SINGLE * FROM t569v
WHERE abkrs = p_abkrs
AND vwsaz = '01'.
IF sy-subrc = 0.
p_pabrp = t569v-pabrp.
p_pabrj = t569v-pabrj.
ENDIF.
SELECT SINGLE * FROM t549a
WHERE abkrs = p_abkrs.
IF sy-subrc = 0.
v_permo = t549a-permo.
ELSE.
IF r2 = 'X'.
MESSAGE e000 WITH 'Enter a valid Payroll Period'.
ENDIF.
ENDIF.
SELECT SINGLE * FROM t549q WHERE permo = v_permo
AND pabrj = t569v-pabrj
AND pabrp = t569v-pabrp.
IF sy-subrc = 0.
p_begda = t549q-begda.
p_endda = t549q-endda.
ENDIF.
ENDFORM. " GET_DATA_ROM_CURRENT_PERIOD
*&---------------------------------------------------------------------*
*& Form GET_DATA_FROM_PERIOD
*-------------------------------------------- ------------------------*
FORM get_data_from_period .
SELECT SINGLE * FROM t549a WHERE abkrs = p_abkrs.
v_permo = t549a-permo.
SELECT SINGLE * FROM t549q WHERE permo = v_permo
AND pabrj = p_pabrj
AND pabrp = p_pabrp.
IF sy-subrc = 0.
p_begda = t549q-begda.
p_endda = t549q-endda.
ENDIF.
ENDFORM. " GET_DATA_FROM_PERIOD
*&---------------------------------------------------------------------*
*& Form ACTUAL_AMOUNTS
*----------------------------------------------------------------------*
FORM actual_amounts .
DATA: l_pernr LIKE pa0001-pernr.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = it_final-pernr
IMPORTING
molga = w_molga
TABLES
in_rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF r1 = 'X'.
IF NOT w_molga IS INITIAL.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = p_begda
end_date = p_endda
IMPORTING
out_seqnr = w_seqnr
TABLES
rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
ENDIF.
SORT it_rgdir BY fpend DESCENDING.
READ TABLE it_rgdir INTO wa_itrgdir WITH KEY fpbeg = p_begda
fpend = p_endda.
IF sy-subrc = 0.
w_seqnr = wa_itrgdir-seqnr.
ENDIF.
SELECT SINGLE
relid
FROM t500l
INTO w_relid
WHERE molga = w_molga.
l_pernr = it_final-pernr .
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = w_relid
employeenumber = l_pernr " it_final-pernr
sequencenumber = w_seqnr
read_only_international = 'X'
CHANGING
payroll_result = it_result
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.
ELSEIF r2 = 'X'.
IF NOT w_molga IS INITIAL.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = p_begda
end_date = p_endda
IMPORTING
out_seqnr = w_seqnr
TABLES
rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
ENDIF.
SORT it_rgdir BY fpend DESCENDING.
* For Offcycle Payyroll
READ TABLE it_rgdir INTO wa_itrgdir WITH KEY fpbeg = p_begda
fpend = p_endda.
IF sy-subrc = 0.
w_seqnr = wa_itrgdir-seqnr.
ENDIF.
SELECT SINGLE relid FROM t500l INTO w_relid WHERE molga = w_molga.
l_pernr = it_final-pernr .
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = w_relid
employeenumber = l_pernr
sequencenumber = w_seqnr
read_only_international = 'X'
CHANGING
payroll_result = it_result
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.
ENDIF.
LOOP AT it_result-inter-rt INTO wa_rt.
wagetype = wa_rt-lgart.
CASE wagetype.
WHEN '1000'.
it_final-amount5 = wa_rt-betrg.
WHEN '1010'.
it_final-amount6 = wa_rt-betrg .
WHEN '1020'.
it_final-amount7 = wa_rt-betrg .
WHEN '5000'.
it_final-amount8 = wa_rt-betrg .
WHEN '5010'.
it_final-amount9 = wa_rt-betrg .
WHEN '9100'. " HRA repayment
it_final-amount12 = wa_rt-betrg .
WHEN '910B'. " HRA balance
it_final-amount13 = wa_rt-betrg .
WHEN '9200'. " Staff Advance repayment
it_final-amount14 = wa_rt-betrg .
WHEN '920B'. " Staff Advance Balance
it_final-amount15 = wa_rt-betrg .
WHEN '9300'. " Staff Loan repayment
it_final-amount16 = wa_rt-betrg .
WHEN '930B'. " Staff Loan repayment
it_final-amount17 = wa_rt-betrg .
WHEN '2000'. " Gosi
it_final-amount18 = wa_rt-betrg .
WHEN '2020'. " Gosi
IF it_final-amount18 IS INITIAL.
it_final-amount18 = wa_rt-betrg .
ENDIF.
ENDCASE.
ENDLOOP.
ENDFORM. " ACTUAL_AMOUNTS
*&---------------------------------------------------------------------*
*& Form HEADER
*----------------------------------------------------------------------*
FORM header .
WRITE: / sy-uline(255).
WRITE: / sy-vline,
(11) '' ,
sy-vline,
(30) '' ,
sy-vline,
(12) '',
sy-vline,
(61) 'Wage Amounts without considering absences' CENTERED,
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(45) 'Wage Amounts by considering absences' CENTERED ,
sy-vline,
(20) '' ,
sy-vline,
(20) '',
sy-vline,
(13) '',
sy-vline,
(20) '',
sy-vline,
(100) 'Deductions' CENTERED,
sy-vline,
(20) '' CENTERED,
sy-vline,
(20) '' CENTERED,
sy-vline.
* Under lines
WRITE: / sy-vline,
(11) '' ,
sy-vline,
(30) '' ,
sy-vline,
(12) '' CENTERED,
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(20) '' ,
sy-vline,
(20) '',
sy-vline,
(13) '',
sy-vline,
(20) '',
sy-vline,
(100) '' ,
sy-vline,
(20) '',
sy-vline,
(20) '' ,
sy-vline.
ULINE AT 63(64).
ULINE AT 170(47).
ULINE AT 303(103).
*-To display the headers for main list
WRITE: / sy-vline,
(11) 'Emp N0' CENTERED,
sy-vline,
(30) 'Employee Name' CENTERED,
sy-vline,
(12) 'Join Date'(015) CENTERED,
sy-vline,
(13) 'Basic Salary' CENTERED,
sy-vline,
(13) 'HRA' CENTERED,
sy-vline,
(13) 'Transport' CENTERED,
sy-vline,
(13) 'Total Gross' CENTERED,
sy-vline,
(11) 'Working Days' CENTERED,
sy-vline,
(11) 'Days Worked' CENTERED,
sy-vline,
(11) 'Absences ' CENTERED,
sy-vline,
(13) 'Basic Salary' CENTERED,
sy-vline,
(13) 'HRA' CENTERED,
sy-vline,
(13) 'Transport' CENTERED,
sy-vline,
(20) 'Over Time 150%' CENTERED,
sy-vline,
(20) 'Over Time 200%' CENTERED,
sy-vline,
(13) 'Telephone' CENTERED,
sy-vline,
(20) 'Total Gross' CENTERED,
sy-vline,
(23) 'HRA' CENTERED,
sy-vline,
(23) 'Advance' CENTERED,
sy-vline,
(23) 'Loan' CENTERED,
sy-vline,
(22) 'Gosi' CENTERED,
sy-vline,
(20) 'Total' CENTERED,
sy-vline,
(20) 'Net' CENTERED,
sy-vline.
* Under lines
WRITE: / sy-vline,
(11) '' ,
sy-vline,
(30) '' ,
sy-vline,
(12) '' ,
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(13) '',
sy-vline,
(20) '' ,
sy-vline,
(20) '',
sy-vline,
(13) '',
sy-vline,
(20) '',
sy-vline,
(100) '' ,
sy-vline,
(20) '',
sy-vline,
(20) '' ,
sy-vline.
ULINE AT 63(64).
ULINE AT 170(110).
ULINE AT 303(103).
*----Second line
WRITE: / sy-vline,
(11) '' ,
sy-vline,
(30) '' ,
sy-vline,
(12) '' ,
sy-vline,
(13) 'SR ' CENTERED,
sy-vline,
(13) 'SR ' CENTERED,
sy-vline,
(13) 'SR ' CENTERED,
sy-vline,
(13) 'SR ' CENTERED,
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(11) '',
sy-vline,
(13) 'SR' CENTERED,
sy-vline,
(13) 'SR' CENTERED,
sy-vline,
(13) 'SR' CENTERED,
sy-vline,
(6) 'Hours' CENTERED,
sy-vline,
(11) 'Pay' CENTERED,
sy-vline,
(6) 'Hours' CENTERED,
sy-vline,
(11) 'Pay' CENTERED,
sy-vline,
(13) 'SR' CENTERED,
sy-vline,
(20) 'Due SR' CENTERED,
sy-vline,
(10) 'Repayment' CENTERED ,
sy-vline,
(10) 'Balance' CENTERED,
sy-vline,
(10) 'Repayment' CENTERED,
sy-vline,
(10) 'Balance' CENTERED,
sy-vline,
(10) 'Repayment' CENTERED,
sy-vline,
(10) 'Balance' CENTERED,
sy-vline,
(22) 'SR ' CENTERED ,
sy-vline,
(20) 'Deductions' CENTERED,
sy-vline,
(20) 'Payment' CENTERED,
sy-vline.
WRITE: / sy-uline(255).
ENDFORM. " HEADER
*&------------ -------------------------------------------------------*
*& Form DISPLAY_DATA
*----------------------------------------------------------------------*
FORM display_data .
LOOP AT it_final.
WRITE: / sy-vline,
(11) it_final-pernr ,
sy-vline,
(30) it_final-ename ,
sy-vline,
(12) it_final-jdate ,
sy-vline,
(13) it_final-amount1 ,
sy-vline,
(13) it_final-amount2 ,
sy-vline,
(13) it_final-amount3 ,
sy-vline,
(13) it_final-amount4 ,
sy-vline,
(11) it_final-days CENTERED,
sy-vline,
(11) it_final-days1 CENTERED,
sy-vline,
(11) it_final-days2 CENTERED,
sy-vline,
(13) it_final-amount5 ,
sy-vline,
(13) it_final-amount6 ,
sy-vline,
(13) it_final-amount7,
sy-vline,
(6) it_final-hrs ,
sy-vline,
(11) it_final-amount8 ,
sy-vline,
(6) it_final-hrs1 ,
sy-vline,
(11) it_final-amount9 ,
sy-vline,
(13) it_final-amount10 ,
sy-vline,
(20) it_final-amount11 ,
sy-vline,
(10) it_final-amount12 ,
sy-vline,
(10) it_final-amount13,
sy-vline,
(10) it_final-amount14 ,
sy-vline,
(10) it_final-amount15,
sy-vline,
(10) it_final-amount16,
sy-vline,
(10) it_final-amount17 ,
sy-vline,
(22) it_final-amount18 ,
sy-vline,
(20) it_final-amount19 ,
sy-vline,
(20) it_final-amount20 ,
sy-vline.
ENDLOOP.
WRITE: / sy-uline(255).
ENDFORM. " DISPLAY_DATA
ALSO READ:
- Employee Existence Check Report.
- Send Employee Payslip As An E-Mail Attachment.
- Time Quota For An Employee In HR ABAP.
- Employee Deduction Report In HR ABAP.
- Comparison Report For The Employee Salaries In HR ABAP.
.....Back To Sub-Index On HR ABAP.
.....Back To MAIN INDEX.
No comments:
Post a Comment