Application Development 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: 

Reading payroll results for an employee from ABAP-HR?

Former Member
0 Kudos

Hi,

I dont know whether i must post this question in this category ? but i had a problem in reading of the payroll data for employees.

I used the function of PYXX_READ_PAYROLL_RESULT and passed the PERNR(employee number), SEQNR, RELID(clusterid) for a given period of say PN-BEGDA AND PN-ENDDA. And i took the payroll structure of germany (its PAYDE_RESULT). program is showing the exceptions since between the selected periods i had many different country employees other than germany DE. how can i solve that problem ? if i use PAY99_RESULT then i cant read the National wage types? how to solve this problem?

which function i must use so that i must get all the payroll data of the employees between the given period with inter/national payroll details and also which structure(like PAYDE_RESULT) i must use for holding the payroll data that is unique?

please help me.

***Ratings are must for a possible answer.

8 REPLIES 8

Former Member
0 Kudos

Hi kk,

1. Just make sure u are passing the correct clusterid

in the FM.

(It should be for Germany)

regards,

amit m.

0 Kudos

Actually while referencing the payroll holding data structure (like payde_result/payus_result/payin_result) then we declare with only one country grouping but i want to get the payroll of different country people then what we use for the structure.for international we have pay99_result but for identifying national structure how we identify it ?

0 Kudos

Hi again,

1. For national, the strucutre would be like this.

payin_result -


> PAYIN_NATIONAL

PAYJP_RESULT -


>PAYJP_NATIONAL

regards,

amit m.

Former Member
0 Kudos

Hi KK,

i can sugegst you some other way round which you can do,

see first get the RGDIR results using FM CU_READ_RGDIR by passing PERNR.

now in this rgdir itab that you get using this FM, you

<b>loop at it_rgdir</b> wehre period = your seelction period...

and in this you can <b>read RT or CRT</b> table as you want using...

<b>IMPORT CRT</b>....statement...

thjsi will get you all the records irrespective of person's country specification.

<b>Reward points if helpful,</b>

Regards,

Tejas

0 Kudos

hi Tejas Jani,

how can we use the IMPORT CRT....statement... and how to loop the it_rgdir . can you please tell me. can i also read the other wage types of RT/BT/wpbp/ also national wage types in the way you specified,if so can you tell me how it is read ?

0 Kudos

Hi again,

1. sample code. just copy paste.

(To read wage types from payroll result)

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'.

2. the internal table myrt

will contain what u require.

regards,

amit m.

0 Kudos

Hi KK,

In this sample code...you will find the use of the method i meantioned.

*********************************************************************************

REPORT zgratuity_ipcl MESSAGE-ID zh.

TABLES : pernr , pa0001, pa0008 , pa0000 , t569v.

TYPE-POOLS: slis.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

INFOTYPES: 0008 ,0001,0002,0000.

DATA : period(6),

pay_period(6),

c_period(6).

DATA: number LIKE pc261-seqnr.

DATA : refdt LIKE p0000-begda.

DATA: ason_yr LIKE p0347-scryy,

ason_mon LIKE p0347-scrmm.

DATA : BEGIN OF it_0000 OCCURS 100,

pernr LIKE pa0000-pernr,

stat2 LIKE pa0000-stat2,

massn LIKE pa0000-massn,

begda LIKE pa0000-begda,

endda LIKE pa0000-endda,

END OF it_0000.

DATA : g_molga LIKE t512t-molga.

DATA: BEGIN OF package,

lga LIKE p0008-lga01,

bet LIKE p0008-bet01,

END OF package.

DATA : BEGIN OF rgdir OCCURS 0.

INCLUDE STRUCTURE pc261.

DATA : END OF rgdir.

DATA : BEGIN OF rx-key OCCURS 0.

INCLUDE STRUCTURE pc200.

DATA : END OF rx-key.

DATA : BEGIN OF crt OCCURS 0. "result table

INCLUDE STRUCTURE pc208.

DATA : END OF crt.

DATA : b_date LIKE sy-datum,

e_date LIKE sy-datum.

DATA : darate LIKE t539j-gwcht.

DATA : gamt TYPE p.

DATA : BEGIN OF it_0001 OCCURS 100,

pernr LIKE pa0000-pernr,

ename LIKE pa0001-ename,

bukrs LIKE pa0001-bukrs,

persk LIKE pa0001-persk,

persg LIKE pa0001-persg,

werks LIKE pa0001-werks,

END OF it_0001.

**start of mod by tejas on 31.05.06

DATA : BEGIN OF it_final_sup OCCURS 100,

pernr LIKE pa0001-pernr, "PL No

ename LIKE pa0001-ename, "NAME

persg LIKE pa0001-persg, "EMP GROUP

persk LIKE pa0001-persk, "ESG

zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS

orgeh LIKE pa0001-orgeh, "ORG UNIT

orgtx LIKE t527x-orgtx, "ORG UNIT TEXT

gbdat LIKE pa0002-gbdat, "DOB

termn LIKE pa0019-termn, "DOJ

zzrtdt LIKE pa0002-zzrtdt,"DOR

sepdt LIKE pa0000-begda,

no_years TYPE i, "SERVICE YEARS

stat2 LIKE pa0000-stat2, "STATUS

s_text(15), "STATUS TEXT

basic LIKE pa0008-bet01, "BASIC

da LIKE pa0008-bet01, "DA

total LIKE pa0008-bet01, "TOTAL

crt LIKE pc207-betrg, "GRTUITY

massn LIKE pa0000-massn,

begda LIKE pa0000-begda,

ason(6) ,

  • dates LIKE pa0002-zzrtdt,

END OF it_final_sup.

DATA : BEGIN OF it_final_nonsup OCCURS 100,

pernr LIKE pa0001-pernr, "PL No

ename LIKE pa0001-ename, "NAME

persg LIKE pa0001-persg, "EMP GROUP

persk LIKE pa0001-persk, "ESG

zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS

orgeh LIKE pa0001-orgeh, "ORG UNIT

orgtx LIKE t527x-orgtx, "ORG UNIT TEXT

gbdat LIKE pa0002-gbdat, "DOB

termn LIKE pa0019-termn, "DOJ

zzrtdt LIKE pa0002-zzrtdt,"DOR

sepdt LIKE pa0000-begda,

no_years TYPE i, "SERVICE YEARS

stat2 LIKE pa0000-stat2, "STATUS

s_text(15), "STATUS TEXT

basic LIKE pa0008-bet01, "BASIC

da LIKE pa0008-bet01, "DA

total LIKE pa0008-bet01, "TOTAL

crt LIKE pc207-betrg, "GRTUITY

massn LIKE pa0000-massn,

begda LIKE pa0000-begda,

ason(6) ,

  • dates LIKE pa0002-zzrtdt,

END OF it_final_nonsup.

DATA : BEGIN OF it_final OCCURS 100,

pernr LIKE pa0001-pernr, "PL No

ename LIKE pa0001-ename, "NAME

persg LIKE pa0001-persg, "EMP GROUP

persk LIKE pa0001-persk, "ESG

zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS

orgeh LIKE pa0001-orgeh, "ORG UNIT

orgtx LIKE t527x-orgtx, "ORG UNIT TEXT

gbdat LIKE pa0002-gbdat, "DOB

termn LIKE pa0019-termn, "DOJ

zzrtdt LIKE pa0002-zzrtdt,"DOR

sepdt LIKE pa0000-begda,

no_years TYPE i, "SERVICE YEARS

stat2 LIKE pa0000-stat2, "STATUS

s_text(15), "STATUS TEXT

basic LIKE pa0008-bet01, "BASIC

da LIKE pa0008-bet01, "DA

total LIKE pa0008-bet01, "TOTAL

crt LIKE pc207-betrg, "GRTUITY

massn LIKE pa0000-massn,

begda LIKE pa0000-begda,

ason(6) ,

  • dates LIKE pa0002-zzrtdt,

END OF it_final.

**end of mod by tejas on 31.05.06

DATA : f_pabrj LIKE t549s-pabrj,

f_pabrp LIKE t549s-pabrp.

  • DECLARATIONS FOR ALV DISPLAY

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

gs_layout TYPE slis_layout_alv ,

gs_print TYPE slis_print_alv,

gt_filter TYPE slis_t_filter_alv,

gt_sp_group TYPE slis_t_sp_group_alv,

gt_alv_graphics TYPE dtc_t_tc,

gt_excluding TYPE slis_t_extab ,

gt_events TYPE slis_t_event,

gt_print TYPE slis_print_alv.

DATA: gt_list_top_of_page TYPE slis_t_listheader.

DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',

p_f2code LIKE sy-ucomm VALUE '&ETA',

p_lignam TYPE slis_fieldname VALUE 'LIGHTS',

g_save(1) TYPE c VALUE 'X',

g_default(1) TYPE c VALUE 'X',

g_exit(1) TYPE c,

gx_variant LIKE disvariant,

g_variant LIKE disvariant,

g_repid LIKE sy-repid.

DATA : result TYPE pay99_result.

DATA : crt_header TYPE LINE OF hrpay99_crt.

INITIALIZATION.

SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.

SELECT-OPTIONS : sstat2 FOR pa0000-stat2.

SELECTION-SCREEN: END OF BLOCK b2.

*SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*SELECTION-SCREEN : SKIP.

*PARAMETERS : P_STAT2 LIKE PA0000-STAT2.

*SELECTION-SCREEN : SKIP.

*SELECTION-SCREEN : END OF BLOCK B1.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-name = 'PNPABKRS-LOW'.

screen-required = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN." on pnppabrj.

IF pnptimr9 = 'X'.

CONCATENATE pnpdispj pnpdispp INTO period.

CONCATENATE pnpdispp pnpdispj INTO pay_period.

ELSE.

CONCATENATE pnppabrj pnppabrp INTO period.

CONCATENATE pnppabrp pnppabrj INTO pay_period.

ENDIF.

IF period < '200505'.

MESSAGE e001 WITH

'Gratuity report is for period after month Auguest 2005' .

STOP.

ENDIF.

SELECT SINGLE * FROM t569v

WHERE abkrs = pnpxabkr.

CONCATENATE t569v-pabrj t569v-pabrp INTO c_period.

IF period > c_period.

MESSAGE e001 WITH 'Payroll for this period is not yet processed' .

STOP.

ENDIF.

  • CONCATENATE pnppabrj pnppabrp INTO period.

  • CONCATENATE pnppabrp pnppabrj INTO pay_period.

*

  • IF period =< '200505'.

  • MESSAGE e001 WITH 'Program is not valid for this period' pnppabrj

*pnppabrp.

  • ENDIF.

START-OF-SELECTION.

GET pernr.

PERFORM fill_data.

END-OF-SELECTION.

PERFORM final_data.

PERFORM display_data.

&----


*& Form FILL_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_data.

SORT p0000 BY pernr.

SORT p0001 BY pernr.

SORT p0002 BY pernr.

SORT p0008 BY pernr.

  • start mod made by kinjal for payroll dates

IF pnptimr9 = 'X'.

CALL FUNCTION 'HR_GB_PERIOD_DATES'

EXPORTING

abkrs = pnpxabkr

  • PERMO =

pabrj = pnpdispj

pabrp = pnpdispp

IMPORTING

begda = b_date

endda = e_date .

  • EXCEPTIONS

  • PERIOD_NOT_FOUND = 1

  • OTHERS = 2

ELSE.

CALL FUNCTION 'HR_GB_PERIOD_DATES'

EXPORTING

abkrs = pnpxabkr

  • PERMO =

pabrj = pnppabrj

pabrp = pnppabrp

IMPORTING

begda = b_date

endda = e_date

  • EXCEPTIONS

  • PERIOD_NOT_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.

ENDIF.

*

  • CONCATENATE pnppabrj pnppabrp '01' INTO b_date.

*

*

  • CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'

  • EXPORTING

  • iv_date = b_date

  • IMPORTING

    • EV_MONTH_BEGIN_DATE =

  • ev_month_end_date = e_date.

  • .

  • end of modification

************************************************************************

*DATA FETCHING FOR SUPERVISOR EMPLOYEES

************************************************************************

LOOP AT p0001 WHERE begda <= e_date AND

endda >= e_date AND

(

persg = 'R' OR

persg = 'P'

)

AND

(

( persk >= '11' AND

persk <= '17'

)

OR

( persk >= 'IA' AND

persk <= 'IJ'

)

) .

MOVE-CORRESPONDING p0001 TO it_final_sup.

READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.

IF sy-subrc = 0.

MOVE-CORRESPONDING p0002 TO it_final_sup.

ENDIF.

LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda

>= e_date AND stat2 IN sstat2.

SELECT SINGLE orgtx INTO it_final_sup-orgtx FROM t527x

WHERE sprsl = 'EN'

AND orgeh = p0001-orgeh.

SELECT SINGLE text1 INTO it_final_sup-s_text FROM t529u

WHERE sprsl = 'EN'

AND statn = '2'

AND statv = p0000-stat2.

MOVE-CORRESPONDING p0000 TO it_final_sup.

IF p0000-massn = 'A6'.

MOVE p0000-begda TO it_final_sup-zzrtdt.

ELSE.

it_final_sup-zzrtdt = ' '.

ENDIF.

ENDLOOP.

IF sy-subrc <> 0.

CONTINUE.

ENDIF.

SELECT SINGLE termn INTO it_final_sup-termn FROM pa0019

WHERE pernr = p0001-pernr

AND tmart = '06'.

IF sy-subrc = 0.

CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'

EXPORTING

date1 = sy-datum

date2 = it_final_sup-termn

output_format = '05'

IMPORTING

years = ason_yr

months = ason_mon

  • DAYS =

EXCEPTIONS

invalid_dates_specified = 1

OTHERS = 2

.

IF ason_mon > 6.

ason_yr = ason_yr + 1.

ENDIF.

MOVE ason_yr TO it_final_sup-no_years.

ENDIF.

IF sy-subrc <> 0.

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

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

ENDIF.

LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND pernr =

p0001-pernr.

DO 20 TIMES VARYING package-lga FROM p0008-lga01 NEXT p0008-lga02

VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.

CASE package-lga.

WHEN '0010'.

it_final_sup-basic = package-bet + it_final_sup-basic.

WHEN '0I10'.

it_final_sup-da = package-bet + it_final_sup-da.

ENDCASE.

ENDDO.

it_final_sup-total = it_final_sup-basic + it_final_sup-da.

ENDLOOP.

  • BREAK-POINT.

  • start mod made by kinjal

it_final_sup-zzrtdt = it_final_sup-zzrtdt - 1.

CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'

EXPORTING

get_begda = it_final_sup-zzrtdt

  • GET_ENDDA =

get_permo = '67'

IMPORTING

get_pabrj = f_pabrj

get_pabrp = f_pabrp

  • TABLES

  • GET_PERIODS =

EXCEPTIONS

no_period_found = 1

no_valid_permo = 2

OTHERS = 3

.

IF sy-subrc <> 0.

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

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

ENDIF.

IF it_final_sup-stat2 <> '3'.

  • CONCATENATE it_final-dates+4(2) INTO period.

CONCATENATE f_pabrj f_pabrp INTO period.

it_final_sup-ason = period.

ENDIF.

  • end of mod

rx-key-pernr = p0001-pernr.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = p0001-pernr

IMPORTING

molga = g_molga

TABLES

in_rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

LOOP AT rgdir WHERE fpper = period AND inper = period.

ENDLOOP.

  • With this Seq. number as a key for cluster Key

  • we can read the RT table from the cluster/..

*----


IF 2

IF sy-subrc EQ 0.

rx-key-seqno = rgdir-seqnr.

IMPORT crt FROM DATABASE pcl2(in) ID rx-key.

IF NOT crt[] IS INITIAL.

PERFORM resultstab.

ENDIF.

APPEND it_final_sup.

CLEAR it_final_sup.

ENDIF.

  • LOOP AT rgdir WHERE

  • inper = period AND

  • srtza = 'A'.

  • rx-key-seqno = rgdir-seqnr.

  • number = rgdir-seqnr.

  • CLEAR rt.

  • REFRESH rt.

    • Importing Result table cluster

  • IMPORT rt FROM DATABASE pcl2(in) ID rx-key.

  • IF NOT rt[] IS INITIAL.

  • PERFORM resultstab.

  • ENDIF.

  • ENDLOOP.

  • APPEND it_final.

  • CLEAR IT_FINAL.

ENDLOOP.

  • RP-PROVIDE-FROM-LAST P0008 SPACE B_DATE E_DATE.

*

  • BREAK-POINT.

*

  • DO 10 TIMES varying PACKAGE-LGA from p0008-lga01 next p0008-lga02

  • varying package-bet from p0008-bet01 next p0008-bet02.

*

*

    • compute itab-gross = itab-gross + package-bet.

**

    • IF sy-index = 10.

**

    • itab-pernr = p0008-pernr.

    • append itab.

**

    • endif.

*

  • enddo.

*

************************************************************************

*DATA FETCHING FOR NON SUPERVISOR EMPLOYEES

************************************************************************

LOOP AT p0001 WHERE begda <= e_date AND

endda >= e_date AND

(

persg = 'R' OR

persg = 'P'

)

AND

(

persk >= 'IL' AND

persk <= 'IV'

) .

MOVE-CORRESPONDING p0001 TO it_final_nonsup.

READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.

IF sy-subrc = 0.

MOVE-CORRESPONDING p0002 TO it_final_nonsup.

ENDIF.

LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda

>= e_date AND stat2 IN sstat2.

SELECT SINGLE orgtx INTO it_final_nonsup-orgtx FROM t527x

WHERE sprsl = 'EN'

AND orgeh = p0001-orgeh.

SELECT SINGLE text1 INTO it_final_nonsup-s_text FROM t529u

WHERE sprsl = 'EN'

AND statn = '2'

AND statv = p0000-stat2.

MOVE-CORRESPONDING p0000 TO it_final_nonsup.

IF p0000-massn = 'A6'.

MOVE p0000-begda TO it_final_nonsup-sepdt.

MOVE p0000-begda TO refdt.

ELSE.

  • MOVE it_final_nonsup-zzrtdt TO refdt.

MOVE e_date TO refdt.

ENDIF.

ENDLOOP.

IF sy-subrc <> 0.

CONTINUE.

ENDIF.

SELECT SINGLE termn INTO it_final_nonsup-termn FROM pa0019

WHERE pernr = p0001-pernr

AND tmart = '06'.

IF sy-subrc = 0.

CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'

EXPORTING

date1 = refdt

date2 = it_final_nonsup-termn

output_format = '05'

IMPORTING

years = ason_yr

months = ason_mon

  • DAYS =

EXCEPTIONS

invalid_dates_specified = 1

OTHERS = 2

.

IF ason_mon > 6.

ason_yr = ason_yr + 1.

ENDIF.

MOVE ason_yr TO it_final_nonsup-no_years.

ENDIF.

IF sy-subrc <> 0.

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

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

ENDIF.

LOOP AT p0008 WHERE begda <= refdt AND endda >= refdt AND

  • LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND

pernr = p0001-pernr.

DO 20 TIMES VARYING package-lga FROM p0008-lga01 NEXT p0008-lga02

VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.

CASE package-lga.

WHEN '0010'.

it_final_nonsup-basic = package-bet.

ENDCASE.

ENDDO.

ENDLOOP.

IF it_final_nonsup-massn = 'A6'.

SELECT SINGLE gwcht FROM t539j

INTO darate

WHERE molga = '40'

AND bwlga = '0I10'

AND begda <= it_final_nonsup-begda

AND endda >= it_final_nonsup-begda.

ELSE.

SELECT SINGLE gwcht FROM t539j

INTO darate

WHERE molga = '40'

AND bwlga = '0I10'

AND begda <= e_date

AND endda >= e_date.

ENDIF.

it_final_nonsup-da = ( it_final_nonsup-basic * darate ) / 100.

it_final_nonsup-total = it_final_nonsup-basic + it_final_nonsup-da.

gamt = 0.

gamt = ( it_final_nonsup-total * 15 * it_final_nonsup-no_years )

/ 26.

IF gamt >= 350000.

gamt = 350000.

ENDIF.

MOVE gamt TO it_final_nonsup-crt.

CLEAR gamt.

CLEAR refdt.

APPEND it_final_nonsup.

CLEAR it_final_nonsup.

  • LOOP AT rgdir WHERE

  • inper = period AND

  • srtza = 'A'.

  • rx-key-seqno = rgdir-seqnr.

  • number = rgdir-seqnr.

  • CLEAR rt.

  • REFRESH rt.

    • Importing Result table cluster

  • IMPORT rt FROM DATABASE pcl2(in) ID rx-key.

  • IF NOT rt[] IS INITIAL.

  • PERFORM resultstab.

  • ENDIF.

  • ENDLOOP.

  • APPEND it_final.

  • CLEAR IT_FINAL.

ENDLOOP.

************************************************************************

ENDFORM. " FILL_DATA

" GET_GRATUITY

&----


*& Form RESULTSTAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM resultstab.

LOOP AT crt WHERE lgart = '9GRA' AND cumty = 'U'.

it_final_sup-crt = abs( crt-betrg ).

ENDLOOP.

ENDFORM. " RESULTSTAB

&----


*& Form DISPLAY_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_data.

IF it_final[] IS INITIAL.

MESSAGE i001 WITH 'No data found'.

STOP.

ENDIF.

g_repid = sy-repid.

PERFORM e01_fieldcat_init USING gt_fieldcat[].

PERFORM eventtab_build CHANGING gt_events.

PERFORM e04_comment_build USING gt_list_top_of_page[].

PERFORM display_report.

ENDFORM. " DISPLAY_DATA

&----


*& Form E01_FIELDCAT_INIT

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

gs_layout-group_change_edit = 'X'.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PERNR'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Pers No'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ENAME'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Name'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PERSK'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'ESG Cd'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ZZPLA'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Plant/Business'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ORGTX'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Org.Unit'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'GBDAT'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Dt.Of Birth'.

ls_fieldcat-datatype = 'DATS'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'TERMN'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Dt.Of Joining'.

ls_fieldcat-datatype = 'DATS'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ZZRTDT'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Superannuation Dt'.

ls_fieldcat-datatype = 'DATS'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEPDT'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Dt.Of Seperation'.

ls_fieldcat-datatype = 'DATS'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'NO_YEARS'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Service Years'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'S_TEXT'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Status'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BASIC'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Basic'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'DA'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'DA'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'TOTAL'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Total'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'CRT'.

ls_fieldcat-tabname = 'IT_FINAL'.

ls_fieldcat-seltext_l = 'Gratuity'.

ls_fieldcat-datatype = 'CHAR'.

ls_fieldcat-no_zero = 'X'.

APPEND ls_fieldcat TO e01_lt_fieldcat.

ENDFORM. " E01_FIELDCAT_INIT

&----


*& Form EVENTTAB_BUILD

&----


  • text

----


  • <--P_GT_EVENTS text

----


FORM eventtab_build CHANGING lt_events TYPE slis_t_event.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = lt_events.

READ TABLE lt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE gc_formname_top_of_page TO ls_event-form.

APPEND ls_event TO lt_events.

ENDIF.

ENDFORM. " EVENTTAB_BUILD

&----


*& Form E04_COMMENT_BUILD

&----


  • text

----


  • -->P_GT_LIST_TOP_OF_PAGE[] text

----


FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader

.

DATA: ls_line TYPE slis_listheader.

DATA : v_text(100) TYPE c,

v_text1(100) TYPE c,

date1(10),

date2(10).

    • v_pernrlines TYPE i,

    • v_pernrchar(5).

**

    • DESCRIBE TABLE it_pernr LINES v_pernrlines.

    • MOVE v_pernrlines TO v_pernrchar.

CONCATENATE b_date6(2) '.' b_date4(2) '.' b_date+0(4) INTO date1.

CONCATENATE e_date6(2) '.' e_date4(2) '.' e_date+0(4) INTO date2.

CONCATENATE 'Gratuity Information for ' date1 'to' date2

INTO v_text SEPARATED BY space.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = v_text.

APPEND ls_line TO e04_lt_top_of_page.

    • CLEAR ls_line.

    • ls_line-typ = 'H'.

    • ls_line-info = v_text1.

    • APPEND ls_line TO e04_lt_top_of_page.

**

ENDFORM. " E04_COMMENT_BUILD

&----


*& Form DISPLAY_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_report.

gs_layout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • i_background_id = 'ALV_BACKGROUND'

i_callback_program = g_repid

  • i_callback_user_command = 'USER_COMMAND'

  • i_structure_name = 'IT_FINAL'

is_layout = gs_layout

it_fieldcat = gt_fieldcat

  • it_special_groups = gt_sp_group[]

  • it_sort = gt_sort[]

  • it_filter = gt_filter[]

  • i_save = g_save

  • is_variant = g_variant

it_events = gt_events

  • is_print = gs_print

  • it_alv_graphics = gt_alv_graphics[]

  • it_excluding = gt_excluding

TABLES

t_outtab = it_final.

ENDFORM. " DISPLAY_REPORT

----


  • FORM top_of_page *

----


  • ........ *

----


FORM top_of_page.

----


CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = gt_list_top_of_page.

----


ENDFORM . "TOP_OF_PAGE

*----


FORM user_command USING g_ucomm TYPE sy-ucomm

g_field TYPE slis_selfield.

----


CASE g_ucomm.

WHEN '&IC1'.

ENDCASE.

----


ENDFORM. "USER_COMMAND

&----


*& Form FINAL_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM final_data.

LOOP AT it_final_sup.

MOVE-CORRESPONDING it_final_sup TO it_final.

APPEND it_final.

CLEAR it_final.

ENDLOOP.

LOOP AT it_final_nonsup.

MOVE-CORRESPONDING it_final_nonsup TO it_final.

APPEND it_final.

CLEAR it_final.

ENDLOOP.

SORT it_final BY pernr.

ENDFORM. " FINAL_DATA

***************************************************************************************

<b>Reward if useful,</b>

Regards,

Tejas

Former Member
0 Kudos

Hi Tejas,

I had tried the IMPORT statement but the workarea of crt structure is not populating. how can i populate,please help me.

Here is the piece of code i used at my end...

IF IT_RGDIR-SRTZA EQ 'A'.

TSEQNR = IT_RGDIR-SEQNR.

RX-KEY-SEQNO = IT_RGDIR-SEQNR.

IMPORT CRT FROM DATABASE PCL2(IN) ID RX-KEY.

IF NOT CRT[] IS INITIAL.

...........

ENDIF.

please help me out in solving this ..