Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

wage types??

Former Member
0 Likes
848

hi

can any one tell me where the valuse for overtime value, sick value stored ( i mean wage types) after the py is run

thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
804

> hi

> can any one tell me where the valuse for overtime

> value, sick value stored ( i mean wage types) after

> the py is run

>

> thanks

HI AMIT,

thanx for ur reply

i am using FM cd_read_last so that i can get all the details from the cluster table.....

i need which wage types holds these information(overtime value,sick value, holiday value)

thanx

6 REPLIES 6
Read only

Former Member
0 Likes
804

Hi sandeep,

1. U want some wage types,

after the payroll is run.

( the remuneration statement)

2. U won't get it DIRECTLY from any table.

(Its stored in cluster format)

3. Use this logic and FM.

DATA: myseqnr LIKE hrpy_rgdir-seqnr.

DATA : mypy TYPE payin_result.

DATA : myrt LIKE TABLE OF pc207 WITH HEADER LINE.

SELECT SINGLE seqnr FROM hrpy_rgdir

INTO myseqnr

WHERE pernr = mypernr

AND fpper = '200409'

AND srtza = 'A'.

IF sy-subrc = 0.

CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'

EXPORTING

clusterid = 'IN'

employeenumber = mypernr

sequencenumber = myseqnr

CHANGING

payroll_result = mypy

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.

myrt[] = mypy-inter-rt.

READ TABLE myrt WITH KEY lgart = '1899'.

4. the internal table myrt

will contain what u require.

regards,

amit m.

Read only

Former Member
0 Likes
805

> hi

> can any one tell me where the valuse for overtime

> value, sick value stored ( i mean wage types) after

> the py is run

>

> thanks

HI AMIT,

thanx for ur reply

i am using FM cd_read_last so that i can get all the details from the cluster table.....

i need which wage types holds these information(overtime value,sick value, holiday value)

thanx

Read only

0 Likes
804

You can check it in T512T table. It contains the list of wage types and their description. Hope this helps.

Sandeep

Read only

0 Likes
804

Sandeep,

Check this program. Its just a sample of how to do.

&----


*& Report Z_TEST2

*&

&----


*&

*&

&----


REPORT Z_TEST2.

TABLES : pernr,

pcl1,

pcl2,PA0015.

INFOTYPES: 0001,0007,0015.

TYPE-POOLS: SLIS.

DATA: num TYPE pc261-seqnr.

  • dat1 TYPE pc261-paydt,

  • dat2 TYPE pc261-paydt.

DATA:

GT_FIELDCAT TYPE

SLIS_T_FIELDCAT_ALV,

gt_layout TYPE slis_layout_alv.

INCLUDE rpclst00.

INCLUDE rpc2rx09.

INCLUDE rpc2rxx0.

INCLUDE rpc2rgg0.

INCLUDE rpcfdcg0.

INCLUDE rpcdatg0.

INCLUDE rpc2cd00.

INCLUDE rpc2ps00.

INCLUDE rpc2pt00.

INCLUDE rpcfdc10.

INCLUDE rpcfdc00.

INCLUDE rpppxd00.

INCLUDE rpppxd10.

INCLUDE rpcfvp09.

INCLUDE rpcfvpg0.

INCLUDE rpppxm00.

Data: begin of itab occurs 0,

pernr like pa0001-pernr,

bukrs like pernr-bukrs,

basic_hrs type pa0015-betrg,

basic_value type pa0015-betrg,

overtime_hours type pa0015-betrg,

overtime_value type pa0015-betrg,

holiday_value type pa0015-betrg,

sick_value type pa0015-betrg,

other_value type pa0015-betrg,

ni_value type pa0015-betrg,

total type pa0015-betrg,

end of itab.

START-OF-SELECTION.

GET pernr.

CLEAR ITAB.

rp-provide-from-last p0001 space pn-begda pn-endda.

if sy-subrc = 0.

if p0001-bukrs not in pnpbukrs.

reject.

endif.

endif.

itab-pernr = pernr-pernr.

itab-bukrs = pernr-bukrs.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = pernr-pernr

  • BUFFER =

  • NO_AUTHORITY_CHECK = ' '

  • IMPORTING

  • MOLGA =

TABLES

in_rgdir = rgdir

  • EXCEPTIONS

  • NO_RECORD_FOUND = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'CD_READ_LAST'

EXPORTING

begin_date = pn-begda

end_date = pn-endda

IMPORTING

out_seqnr = num

TABLES

rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

rx-key-pernr = pernr-pernr.

rx-key-seqno = num.

rp-imp-c2-rg.

LOOP AT rt where lgart = '/5UT'. "Base hrs

itab-basic_hrs = rt-anzhl.

  • WRITE: / wa_rt-lgart,

  • t512t-lgtxt,

  • wa_rt-betrg CURRENCY payroll-inter-versc-waers.

ENDLOOP.

LOOP AT rt where lgart = '1002'. "Regular Salary

itab-basic_value = rt-betrg.

itab-total = rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/852'. "Overtime hours

itab-overtime_hours = rt-anzhl.

ENDLOOP.

LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times

itab-overtime_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'M850'. "Holiday Value

itab-holiday_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/842'. "Sick value

itab-sick_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'MJ40'. "Other

itab-other_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa

itab-ni_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

  • READ TABLE rgdir WITH KEY seqnr = num.

    • IF sy-subrc = 0.

*

  • LOOP AT rt WHERE lgart = '1027'.

  • WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.

*

  • ENDLOOP.

  • LOOP AT rt WHERE lgart = '/852'.

  • WRITE: rt-anzhl.

  • ENDLOOP.

*

  • LOOP AT rt WHERE lgart = '/301'.

  • WRITE: rt-betrg.

  • ENDLOOP.

    • LOOP AT crt where lgart = '1500'.

    • WRITE: CRT-BETRG.

    • ENDLOOP.

*

  • LOOP AT rt where lgart = '/101'.

  • write: rt-betrg.

*

  • ENDLOOP.

*ENDIF.

  • IF num NE 0.

  • WRITE :/'record exists'.

  • ENDIF.

append itab.

End-of-selection.

perform build_layout.

perform fieldcat_init using GT_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = sy-repid

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = gt_layout

IT_FIELDCAT = gt_fieldcat[]

TABLES

T_OUTTAB = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

*FORM user_command USING r_ucomm LIKE sy-ucomm

  • rs_selfield TYPE slis_selfield.

  • .

  • IF rs_selfield-fieldname = 'EBELN'.

  • SET PARAMETER ID 'BES' FIELD rs_selfield-value.

  • CALL TRANSACTION 'ME23N'.

  • ENDIF.

*ENDFORM. "user_command

&----


*& Form FIELDCAT_INIT

&----


  • text

----


  • -->RT_FIELDCATtext

----


FORM FIELDCAT_INIT

USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: POS TYPE I VALUE 1.

clear ls_fieldcat.

POS = POS + 1.

LS_FIELDCAT-COL_POS = POS.

LS_FIELDCAT-FIELDNAME = 'PERNR'.

ls_fieldcat-seltext_m = 'PERNR'.

ls_fieldcat-inttype = 'c'.

ls_fieldcat-outputlen = '8'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BUKRS'.

ls_fieldcat-seltext_m = 'Company Code'.

ls_fieldcat-inttype = 'c'.

ls_fieldcat-outputlen = '4'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_HRS'.

ls_fieldcat-seltext_m = 'Basic Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_VALUE'.

ls_fieldcat-seltext_m = 'Basic Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OVERTIME_HOURS'.

ls_fieldcat-seltext_m = 'Overtime Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OVERTIME_VALUE'.

ls_fieldcat-seltext_m = 'Overtime Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-do_sum = 'X'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.

ls_fieldcat-seltext_m = 'Holiday Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'SICK_VALUE'.

ls_fieldcat-seltext_m = 'Sick Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OTHER_VALUE'.

ls_fieldcat-seltext_m = 'Other Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'TOTAL_VALUE'.

ls_fieldcat-seltext_m = 'TOTAL'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

ENDFORM. "fieldcat_init

&----


*& Form bulid_layout

&----


  • text

----


FORM build_layout .

gt_layout-no_input = 'X'.

gt_layout-colwidth_optimize = 'X'.

ENDFORM. " bulid_layout

Read only

0 Likes
804

&----


*& Report Z_TEST2

*&

&----


*&

*&

&----


REPORT Z_TEST2.

TABLES : pernr,

pcl1,

pcl2,PA0015.

INFOTYPES: 0001,0007,0015.

TYPE-POOLS: SLIS.

DATA: num TYPE pc261-seqnr.

  • dat1 TYPE pc261-paydt,

  • dat2 TYPE pc261-paydt.

DATA:

GT_FIELDCAT TYPE

SLIS_T_FIELDCAT_ALV,

gt_layout TYPE slis_layout_alv.

Data: gt_t_sort TYPE slis_t_sortinfo_alv.

INCLUDE rpclst00.

INCLUDE rpc2rx09.

INCLUDE rpc2rxx0.

INCLUDE rpc2rgg0.

INCLUDE rpcfdcg0.

INCLUDE rpcdatg0.

INCLUDE rpc2cd00.

INCLUDE rpc2ps00.

INCLUDE rpc2pt00.

INCLUDE rpcfdc10.

INCLUDE rpcfdc00.

INCLUDE rpppxd00.

INCLUDE rpppxd10.

INCLUDE rpcfvp09.

INCLUDE rpcfvpg0.

INCLUDE rpppxm00.

Data: begin of itab occurs 0,

pernr like pa0001-pernr,

bukrs like pernr-bukrs,

basic_hrs type pa0015-betrg,

basic_value type pa0015-betrg,

overtime_hours type pa0015-betrg,

overtime_value type pa0015-betrg,

holiday_value type pa0015-betrg,

sick_value type pa0015-betrg,

other_value type pa0015-betrg,

ni_value type pa0015-betrg,

total type pa0015-betrg,

end of itab.

START-OF-SELECTION.

GET pernr.

CLEAR ITAB.

rp-provide-from-last p0001 space pn-begda pn-endda.

if sy-subrc = 0.

if p0001-bukrs not in pnpbukrs.

reject.

endif.

endif.

itab-pernr = pernr-pernr.

itab-bukrs = pernr-bukrs.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = pernr-pernr

  • BUFFER =

  • NO_AUTHORITY_CHECK = ' '

  • IMPORTING

  • MOLGA =

TABLES

in_rgdir = rgdir

  • EXCEPTIONS

  • NO_RECORD_FOUND = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'CD_READ_LAST'

EXPORTING

begin_date = pn-begda

end_date = pn-endda

IMPORTING

out_seqnr = num

TABLES

rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

rx-key-pernr = pernr-pernr.

rx-key-seqno = num.

rp-imp-c2-rg.

LOOP AT rt where lgart = '/5UT'. "Base hrs

itab-basic_hrs = rt-anzhl.

  • WRITE: / wa_rt-lgart,

  • t512t-lgtxt,

  • wa_rt-betrg CURRENCY payroll-inter-versc-waers.

ENDLOOP.

LOOP AT rt where lgart = '1002'. "Regular Salary

itab-basic_value = rt-betrg.

itab-total = rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/852'. "Overtime hours

itab-overtime_hours = rt-anzhl.

ENDLOOP.

LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times

itab-overtime_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'M850'. "Holiday Value

itab-holiday_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/842'. "Sick value

itab-sick_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'MJ40'. "Other

itab-other_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa

itab-ni_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

  • READ TABLE rgdir WITH KEY seqnr = num.

    • IF sy-subrc = 0.

*

  • LOOP AT rt WHERE lgart = '1027'.

  • WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.

*

  • ENDLOOP.

  • LOOP AT rt WHERE lgart = '/852'.

  • WRITE: rt-anzhl.

  • ENDLOOP.

*

  • LOOP AT rt WHERE lgart = '/301'.

  • WRITE: rt-betrg.

  • ENDLOOP.

    • LOOP AT crt where lgart = '1500'.

    • WRITE: CRT-BETRG.

    • ENDLOOP.

*

  • LOOP AT rt where lgart = '/101'.

  • write: rt-betrg.

*

  • ENDLOOP.

*ENDIF.

  • IF num NE 0.

  • WRITE :/'record exists'.

  • ENDIF.

append itab.

End-of-selection.

perform build_layout.

perform sub_build_sort_catalogue using gt_t_sort.

perform fieldcat_init using GT_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = sy-repid

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_SORT = gt_t_sort

IS_LAYOUT = gt_layout

IT_FIELDCAT = gt_fieldcat[]

TABLES

T_OUTTAB = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

*FORM user_command USING r_ucomm LIKE sy-ucomm

  • rs_selfield TYPE slis_selfield.

  • .

  • IF rs_selfield-fieldname = 'EBELN'.

  • SET PARAMETER ID 'BES' FIELD rs_selfield-value.

  • CALL TRANSACTION 'ME23N'.

  • ENDIF.

*ENDFORM. "user_command

&----


*& Form sub_Build_sort_catalogue

&----


  • Building Sort Catalog

----


  • <-- L_T_SORT : Internal table for sort catalog

----


FORM sub_build_sort_catalogue CHANGING l_t_sort TYPE slis_t_sortinfo_alv.

DATA: l_v_sortcat TYPE slis_sortinfo_alv.

CLEAR l_v_sortcat.

  • Sort the fields with Planned Incoming Payment in alv

l_v_sortcat-spos = '1'.

l_v_sortcat-fieldname = 'BUKRS'.

*l_v_sortcat-subtot = 'X'.

l_v_sortcat-up = 'X'.

APPEND l_v_sortcat TO l_t_sort.

CLEAR l_v_sortcat.

ENDFORM. " sub_Build_sort_catalogue

&----


*& Form FIELDCAT_INIT

&----


  • text

----


  • -->RT_FIELDCATtext

----


FORM FIELDCAT_INIT

USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: POS TYPE I VALUE 1.

clear ls_fieldcat.

POS = POS + 1.

LS_FIELDCAT-COL_POS = POS.

LS_FIELDCAT-FIELDNAME = 'PERNR'.

ls_fieldcat-seltext_m = 'PERNR'.

ls_fieldcat-inttype = 'c'.

ls_fieldcat-outputlen = '8'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BUKRS'.

ls_fieldcat-seltext_m = 'Company Code'.

ls_fieldcat-inttype = 'c'.

ls_fieldcat-outputlen = '4'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_HRS'.

ls_fieldcat-seltext_m = 'Basic Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_VALUE'.

ls_fieldcat-seltext_m = 'Basic Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OVERTIME_HOURS'.

ls_fieldcat-seltext_m = 'Overtime Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OVERTIME_VALUE'.

ls_fieldcat-seltext_m = 'Overtime Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-do_sum = 'X'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.

ls_fieldcat-seltext_m = 'Holiday Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'SICK_VALUE'.

ls_fieldcat-seltext_m = 'Sick Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OTHER_VALUE'.

ls_fieldcat-seltext_m = 'Other Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'TOTAL_VALUE'.

ls_fieldcat-seltext_m = 'TOTAL'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

ENDFORM. "fieldcat_init

&----


*& Form bulid_layout

&----


  • text

----


FORM build_layout .

  • gt_layout-no_input = 'X'.

gt_layout-colwidth_optimize = 'X'.

gt_LAYOUT-TOTALS_TEXT = 'TOTAL'.

gt_LAYOUT-ZEBRA = 'X'.

ENDFORM. " bulid_layout

Read only

0 Likes
804

&----


*& Report Z_TEST2

*&

&----


*&

*&

&----


REPORT Z_TEST2.

TABLES : pernr,

pcl1,

pcl2,PA0015.

INFOTYPES: 0001,0007,0015.

TYPE-POOLS: SLIS.

INCLUDE rpclst00.

INCLUDE rpc2rx09.

INCLUDE rpc2rxx0.

INCLUDE rpc2rgg0.

INCLUDE rpcfdcg0.

INCLUDE rpcdatg0.

INCLUDE rpc2cd00.

INCLUDE rpc2ps00.

INCLUDE rpc2pt00.

INCLUDE rpcfdc10.

INCLUDE rpcfdc00.

INCLUDE rpppxd00.

INCLUDE rpppxd10.

INCLUDE rpcfvp09.

INCLUDE rpcfvpg0.

INCLUDE rpppxm00.

select-options: s_kostl for p0001-kostl.

DATA: num TYPE pc261-seqnr.

DATA:

GT_FIELDCAT TYPE

SLIS_T_FIELDCAT_ALV,

gt_layout TYPE slis_layout_alv.

Data: gt_t_sort TYPE slis_t_sortinfo_alv.

Data: begin of itab occurs 0,

pernr like pa0001-pernr,

kostl like pernr-kostl,

basic_hrs type pa0015-betrg,

basic_value type pa0015-betrg,

overtime_hours type pa0015-betrg,

overtime_value(8) type p decimals 2,

holiday_value type pa0015-betrg,

sick_value type pa0015-betrg,

other_value type pa0015-betrg,

ni_value type pa0015-betrg,

total(8) type p decimals 2,

end of itab.

START-OF-SELECTION.

GET pernr.

CLEAR ITAB.

rp-provide-from-last p0001 space pn-begda pn-endda.

if sy-subrc = 0.

if p0001-kostl not in s_kostl.

reject.

endif.

endif.

itab-pernr = pernr-pernr.

itab-kostl = p0001-kostl.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = pernr-pernr

  • BUFFER =

  • NO_AUTHORITY_CHECK = ' '

  • IMPORTING

  • MOLGA =

TABLES

in_rgdir = rgdir

  • EXCEPTIONS

  • NO_RECORD_FOUND = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'CD_READ_LAST'

EXPORTING

begin_date = pn-begda

end_date = pn-endda

IMPORTING

out_seqnr = num

TABLES

rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

rx-key-pernr = pernr-pernr.

rx-key-seqno = num.

rp-imp-c2-rg.

LOOP AT rt where lgart = '/5UT'. "Base hrs

itab-basic_hrs = rt-anzhl.

  • WRITE: / wa_rt-lgart,

  • t512t-lgtxt,

  • wa_rt-betrg CURRENCY payroll-inter-versc-waers.

ENDLOOP.

LOOP AT rt where lgart = '1002'. "Regular Salary

itab-basic_value = rt-betrg.

itab-total = rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/852'. "Overtime hours

itab-overtime_hours = rt-anzhl.

ENDLOOP.

LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times

itab-overtime_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'M850'. "Holiday Value

itab-holiday_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '/842'. "Sick value

itab-sick_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = 'MJ40'. "Other

itab-other_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa

itab-ni_value = rt-betrg.

itab-total = itab-total + rt-betrg.

ENDLOOP.

  • READ TABLE rgdir WITH KEY seqnr = num.

    • IF sy-subrc = 0.

*

  • LOOP AT rt WHERE lgart = '1027'.

  • WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.

*

  • ENDLOOP.

  • LOOP AT rt WHERE lgart = '/852'.

  • WRITE: rt-anzhl.

  • ENDLOOP.

*

  • LOOP AT rt WHERE lgart = '/301'.

  • WRITE: rt-betrg.

  • ENDLOOP.

    • LOOP AT crt where lgart = '1500'.

    • WRITE: CRT-BETRG.

    • ENDLOOP.

*

  • LOOP AT rt where lgart = '/101'.

  • write: rt-betrg.

*

  • ENDLOOP.

*ENDIF.

  • IF num NE 0.

  • WRITE :/'record exists'.

  • ENDIF.

append itab.

End-of-selection.

perform build_layout.

perform sub_build_sort_catalogue using gt_t_sort.

perform fieldcat_init using GT_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = sy-repid

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • i_structure_name = 'ITAB'

IT_SORT = gt_t_sort[]

IS_LAYOUT = gt_layout

IT_FIELDCAT = gt_fieldcat[]

TABLES

T_OUTTAB = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

*FORM user_command USING r_ucomm LIKE sy-ucomm

  • rs_selfield TYPE slis_selfield.

  • .

  • IF rs_selfield-fieldname = 'EBELN'.

  • SET PARAMETER ID 'BES' FIELD rs_selfield-value.

  • CALL TRANSACTION 'ME23N'.

  • ENDIF.

*ENDFORM. "user_command

&----


*& Form sub_Build_sort_catalogue

&----


  • Building Sort Catalog

----


  • <-- L_T_SORT : Internal table for sort catalog

----


FORM sub_build_sort_catalogue CHANGING l_t_sort TYPE slis_t_sortinfo_alv.

DATA: l_v_sortcat TYPE slis_sortinfo_alv.

CLEAR l_v_sortcat.

  • Sort the fields with Planned Incoming Payment in alv

l_v_sortcat-spos = '1'.

l_v_sortcat-fieldname = 'KOSTL'.

l_v_sortcat-subtot = 'X'.

l_v_sortcat-up = 'X'.

APPEND l_v_sortcat TO l_t_sort.

CLEAR l_v_sortcat.

ENDFORM. " sub_Build_sort_catalogue

&----


*& Form FIELDCAT_INIT

&----


  • text

----


  • -->RT_FIELDCATtext

----


FORM FIELDCAT_INIT

USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: POS TYPE I VALUE 1.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

  • ls_fieldcat-fieldname = 'kostl'.

  • ls_fieldcat-seltext_m = 'Company Code'.

  • ls_fieldcat-key = ' '. "SUBTOTAL KEY

  • ls_fieldcat-inttype = 'c'.

  • ls_fieldcat-outputlen = '4'.

  • append ls_fieldcat to rt_fieldcat.

*

ls_fieldcat-fieldname = 'KOSTL'.

ls_fieldcat-tabname = 'ITAB'.

*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT

ls_fieldcat-key = ' '. "SUBTOTAL KEY

ls_fieldcat-no_out = ' '.

ls_fieldcat-seltext_l = 'Cost Centre'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

LS_FIELDCAT-COL_POS = POS.

LS_FIELDCAT-FIELDNAME = 'PERNR'.

ls_fieldcat-seltext_m = 'PERNR'.

ls_fieldcat-inttype = 'c'.

ls_fieldcat-outputlen = '8'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_HRS'.

ls_fieldcat-seltext_m = 'Basic Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'BASIC_VALUE'.

ls_fieldcat-seltext_m = 'Basic Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OVERTIME_HOURS'.

ls_fieldcat-seltext_m = 'Overtime Hours'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

*

*

*

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

  • ls_fieldcat-fieldname = 'OVERTIME_VALUE'.

  • ls_fieldcat-seltext_m = 'Overtime Value'.

ls_fieldcat-inttype = 'CURR'.

*ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY

*ls_fieldcat-no_out = ' '.

ls_fieldcat-outputlen = '15'.

  • append ls_fieldcat to rt_fieldcat.

*clear fieldcat_in.

ls_fieldcat-fieldname = 'OVERTIME_VALUE'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-ref_fieldname = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY

ls_fieldcat-ref_tabname = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY

ls_fieldcat-no_out = ' '.

ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY

ls_fieldcat-seltext_s = 'Overtime Value'.

append ls_fieldcat to rt_fieldcat.

*

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.

ls_fieldcat-seltext_m = 'Holiday Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'SICK_VALUE'.

ls_fieldcat-seltext_m = 'Sick Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'OTHER_VALUE'.

ls_fieldcat-seltext_m = 'Other Value'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

append ls_fieldcat to rt_fieldcat.

*

clear ls_fieldcat.

POS = POS + 1.

ls_fieldcat-col_pos = POS.

ls_fieldcat-fieldname = 'TOTAL'.

ls_fieldcat-seltext_m = 'TOTAL'.

ls_fieldcat-inttype = 'CURR'.

ls_fieldcat-outputlen = '15'.

ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY

append ls_fieldcat to rt_fieldcat.

*ls_fieldcat-tabname = 'ITAB'.

*ls_fieldcat-ref_fieldname = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY

*ls_fieldcat-ref_tabname = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY

*ls_fieldcat-no_out = ' '.

*append ls_fieldcat to rt_fieldcat.

ENDFORM. "fieldcat_init

&----


*& Form bulid_layout

&----


  • text

----


FORM build_layout .

  • gt_layout-no_input = 'X'.

gt_layout-colwidth_optimize = 'X'.

gt_LAYOUT-TOTALS_TEXT = 'TOTAL'.

gt_LAYOUT-ZEBRA = 'X'.

ENDFORM. " bulid_layout