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

Fatal Error when exporting Report to Excel

Former Member
0 Likes
1,225

Hi Everyone, I've been trying to export my report to excel. But I have exhausted all possible reasons and I just couldn't figure it out. Can someone please help me. Thanks in advance.

----


  • PROGRAM NAME : ZADC_PAYSUMNEW

*

----


  • ........ *

----


REPORT ZADC_PAYSUMNEW

NO STANDARD PAGE HEADING

LINE-SIZE 450

LINE-COUNT 65 MESSAGE-ID zmes.

----


  • TABLE DECLARATION *

----


TABLES: cskt,

csks,

pa0009,

pcl1,

pcl2,

pernr,

t512t,

t549a,

t527x,

zhrprtype.

----


  • INFOTYPES DECLARATION

----


INFOTYPES: 0001, 0002.

----


  • INCLUDE DECLARATION

----


INCLUDE: rpc2rx00.

INCLUDE: rpc2rxx0.

INCLUDE: rpppxd00.

----


  • INTERNAL TABLE DECLARATION

----


DATA: BEGIN OF itab OCCURS 0,

khinr LIKE csks-khinr,

kostl LIKE p0001-kostl,

ltext(40),

p_date LIKE pc261-inper,

basic(7) TYPE p DECIMALS 2,

pera(7) TYPE p DECIMALS 2,

longp(7) TYPE p DECIMALS 2,

trall(6) type p decimals 2,

srvaw(6) TYPE p DECIMALS 2,

chall(7) TYPE p DECIMALS 2,

leave(7) TYPE p DECIMALS 2,

meal(7) TYPE p DECIMALS 2,

saldf(7) TYPE p DECIMALS 2,

sipps(7) TYPE p DECIMALS 2,

sipgs(7) TYPE p DECIMALS 2,

subs(7) TYPE p DECIMALS 2,

hzard(7) TYPE p DECIMALS 2,

lallw(7) TYPE p DECIMALS 2,

medps(7) TYPE p DECIMALS 2,

medgs(7) TYPE p DECIMALS 2,

pcontps(7) TYPE p DECIMALS 2,

pcontgs(7) TYPE p DECIMALS 2,

pagibps(6) TYPE p DECIMALS 2,

pagibgs(6) TYPE p DECIMALS 2,

lwop(7) TYPE p DECIMALS 2,

npay(7) TYPE p DECIMALS 2,

otime(7) TYPE p DECIMALS 2,

ec(7) TYPE p DECIMALS 2,

fr_date like sy-datum,

to_date like sy-datum,

END OF itab.

DATA: BEGIN OF jtab OCCURS 0,

khinr LIKE csks-khinr,

kostl LIKE p0001-kostl,

ltext(40),

basic(7) TYPE p DECIMALS 2,

pera(7) TYPE p DECIMALS 2,

longp(7) TYPE p DECIMALS 2,

trall(6) type p decimals 2,

srvaw(6) TYPE p DECIMALS 2,

chall(7) TYPE p DECIMALS 2,

leave(7) TYPE p DECIMALS 2,

meal(7) TYPE p DECIMALS 2,

saldf(7) TYPE p DECIMALS 2,

sipps(7) TYPE p DECIMALS 2,

sipgs(7) TYPE p DECIMALS 2,

subs(7) TYPE p DECIMALS 2,

hzard(7) TYPE p DECIMALS 2,

lallw(7) TYPE p DECIMALS 2,

medps(7) TYPE p DECIMALS 2,

medgs(7) TYPE p DECIMALS 2,

pcontps(7) TYPE p DECIMALS 2,

pcontgs(7) TYPE p DECIMALS 2,

pagibps(6) TYPE p DECIMALS 2,

pagibgs(6) TYPE p DECIMALS 2,

lwop(7) TYPE p DECIMALS 2,

npay(7) TYPE p DECIMALS 2,

otime(7) TYPE p DECIMALS 2,

ec(7) TYPE p DECIMALS 2,

END OF jtab.

DATA: it_list TYPE STANDARD TABLE OF itab WITH HEADER LINE.

----


  • CONSTANTS DECLARATION

----


CONSTANTS: basic TYPE pc207-lgart VALUE '0401',

basic2 TYPE pc207-lgart VALUE '0402',

basic3 TYPE pc207-lgart VALUE '0403',

PERA TYPE pc207-lgart VALUE '3104',

PERA2 TYPE pc207-lgart VALUE '3110',

longp TYPE pc207-lgart VALUE '1601',

longp2 TYPE pc207-lgart VALUE '1603',

trall TYPE pc207-lgart VALUE '3109',

srvaw TYPE pc207-lgart VALUE '2117',

leave TYPE pc207-lgart VALUE '2118',

chall TYPE pc207-lgart VALUE '3105',

chall2 TYPE pc207-lgart VALUE '3111',

chall3 TYPE pc207-lgart VALUE '3112',

meal TYPE pc207-lgart VALUE '3102',

saldf TYPE pc207-lgart VALUE '4103',

sipps TYPE pc207-lgart VALUE '/090',

sipps2 TYPE pc207-lgart VALUE '1121',

subs TYPE pc207-lgart VALUE '3101',

hzard TYPE pc207-lgart VALUE '1602',

lallw TYPE pc207-lgart VALUE '3103',

medps TYPE pc207-lgart VALUE '/313',

medgs TYPE pc207-lgart VALUE '/314',

pcontps TYPE pc207-lgart VALUE '/093',

pcontps2 TYPE pc207-lgart VALUE '1327',

pcontps3 TYPE pc207-lgart VALUE '1120',

pagibps TYPE pc207-lgart VALUE '/326',

pagibps2 TYPE pc207-lgart VALUE '1326',

lwop TYPE pc207-lgart VALUE '1102',

otime TYPE pc207-lgart VALUE '0101',

otime2 TYPE pc207-lgart VALUE '0102',

otime3 TYPE pc207-lgart VALUE '0103',

otime4 TYPE pc207-lgart VALUE '0104',

npay TYPE pc207-lgart VALUE '/559'.

----


  • DATA DECLARATION

----


DATA: BEGIN OF COMMON PART buffer.

INCLUDE: rpppxd10.

DATA: END OF COMMON PART buffer.

*Table data containing directory to PCL2 payroll results file DATA:

DATA: BEGIN OF rgdir OCCURS 100.

INCLUDE STRUCTURE pc261.

DATA: END OF rgdir.

DATA: BEGIN OF evpdir OCCURS 100.

INCLUDE STRUCTURE pc261.

DATA: END OF evpdir.

DATA: country LIKE t001p-molga,

lname LIKE t527x-orgtx,

filename2(128),

p_date LIKE pc261-inper,

w_basic LIKE pc207-lgart,

w_basic2 LIKE pc207-lgart,

w_basic3 LIKE pc207-lgart,

w_pera LIKE pc207-lgart,

w_pera2 LIKE pc207-lgart,

w_longp LIKE pc207-lgart,

w_longp2 LIKE pc207-lgart,

w_trall LIKE pc207-lgart,

w_srvaw LIKE pc207-lgart,

w_leave LIKE pc207-lgart,

w_chall LIKE pc207-lgart,

w_chall2 LIKE pc207-lgart,

w_chall3 LIKE pc207-lgart,

w_meal LIKE pc207-lgart,

w_saldf LIKE pc207-lgart,

w_sipps LIKE pc207-lgart,

w_sipps2 LIKE pc207-lgart,

w_subs LIKE pc207-lgart,

w_hzard LIKE pc207-lgart,

w_lallw LIKE pc207-lgart,

w_medps LIKE pc207-lgart,

w_medgs LIKE pc207-lgart,

w_pcontps LIKE pc207-lgart,

w_pcontps2 LIKE pc207-lgart,

w_pcontps3 LIKE pc207-lgart,

w_pagibps LIKE pc207-lgart,

w_pagibps2 LIKE pc207-lgart,

w_lwop LIKE pc207-lgart,

w_otime LIKE pc207-lgart,

w_otime2 LIKE pc207-lgart,

w_otime3 LIKE pc207-lgart,

w_otime4 LIKE pc207-lgart,

w_npay LIKE pc207-lgart,

tempgs(7) TYPE p DECIMALS 2,

ctr-basic(7) TYPE p DECIMALS 2,

ctr-pera(7) TYPE p DECIMALS 2,

ctr-longp(7) TYPE p DECIMALS 2,

ctr-trall(6) TYPE p DECIMALS 2,

ctr-srvaw(6) TYPE p DECIMALS 2,

ctr-leave(7) TYPE p DECIMALS 2,

ctr-chall(7) TYPE p DECIMALS 2,

ctr-meal(7) TYPE p DECIMALS 2,

ctr-saldf(7) TYPE p DECIMALS 2,

ctr-sipps(7) TYPE p DECIMALS 2,

ctr-sipgs(7) TYPE p DECIMALS 2,

ctr-subs(7) TYPE p DECIMALS 2,

ctr-hzard(7) TYPE p DECIMALS 2,

ctr-lallw(7) TYPE p DECIMALS 2,

ctr-medps(7) TYPE p DECIMALS 2,

ctr-medgs(7) TYPE p DECIMALS 2,

ctr-pcontps(7) TYPE p DECIMALS 2,

ctr-pcontgs(7) TYPE p DECIMALS 2,

ctr-pagibps(6) TYPE p DECIMALS 2,

ctr-pagibgs(6) TYPE p DECIMALS 2,

ctr-lwop(7) TYPE p DECIMALS 2,

ctr-otime(7) TYPE p DECIMALS 2,

ctr-npay(7) TYPE p DECIMALS 2,

ctr-ec(7) TYPE p DECIMALS 2.

DATA: BEGIN OF ph-version.

INCLUDE STRUCTURE pc201_pay. "XTWPH9K008656

DATA: END OF ph-version.

DATA: fr_date LIKE sy-datum,

to_date LIKE sy-datum.

----


  • SELECT-OPTIONS and PARAMETERS

----


SELECT-OPTIONS: p_status FOR rgdir-srtza DEFAULT 'A'.

DATA: DATE1(15),

mon(9).

----


  • DEFINITION

----


DEFINE rp-imp-c2-rx2.

clear:

orx-version, "OBJECTS_FOR_CLEAR

rt, rt[].

import

ph-version to orx-version "OBJECTS_FOR_IMPORT

rt

from database pcl2(ph) id rx-key using pcl2_exp_imp.

rp-imp-rx-subrc = sy-subrc.

if sy-subrc eq 0 and orx-version-number ne ph-version-number.

rp-imp-rx-subrc = 8.

endif.

END-OF-DEFINITION.

TYPE-POOLS: slis.

DATA: g_repid LIKE sy-repid,

gt_fieldcat TYPE slis_t_fieldcat_alv,

gt_events TYPE slis_t_event,

gt_top TYPE slis_t_listheader,

gt_eol TYPE slis_t_listheader,

gt_list_top_of_page TYPE slis_t_listheader,

gt_list_end_of_list TYPE slis_t_listheader,

gs_layout TYPE slis_layout_alv,

d_f2code LIKE sy-ucomm VALUE '&ETA'.

CONSTANTS: fn_top TYPE slis_formname VALUE 'TOP_OF_PAGE',

fn_eol TYPE slis_formname VALUE 'END_OF_LIST'.

DATA: it_alv_out TYPE STANDARD TABLE OF itab WITH HEADER LINE.

INITIALIZATION.

g_repid = sy-repid.

PERFORM f_fieldcat_init USING gt_fieldcat[].

PERFORM eventtab_build USING gt_events[].

----


  • START-OF-SELECTION.

----


START-OF-SELECTION.

fr_date = to_date = pn-endda.

fr_date+6(2) = '01'.

SELECT SINGLE * FROM t549a

WHERE abkrs = pnpxabkr.

GET PERNR.

CLEAR: itab, lname.

PERFORM get_rt_tab.

END-OF-SELECTION.

PERFORM display_grid.

INCLUDE rpppxm00.

  • USING DATM

----


  • FORM get_rt_tab *

----


  • ........ *

----


FORM get_rt_tab.

rp_provide_from_last p0001 space pn-begda pn-endda.

rp_provide_from_last p0002 space pn-begda pn-endda.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = p0001-pernr

IMPORTING

molga = country

TABLES

in_rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc = 0.

SELECT single ltext FROM cskt

INTO itab-ltext

WHERE kostl = p0001-kostl

AND datbi = '99991231'.

SELECT SINGLE * FROM csks

WHERE kostl = p0001-kostl

AND kokrs = 'GSIS'

AND datbi = '99991231'.

IF sy-subrc = 0.

MOVE: csks-kostl TO itab-kostl,

csks-khinr TO itab-khinr.

ENDIF.

p_date = pn-paper.

  • regular payroll run.

CALL FUNCTION 'CD_EVALUATION_PERIODS'

EXPORTING

bonus_date = '00000000'

inper_modif = t549a-permo

inper = p_date

pay_type = ' '

pay_ident = ' '

TABLES

rgdir = rgdir

evpdir = evpdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc = 0.

LOOP AT evpdir WHERE srtza IN p_status and FPPER eq pn-begda+(6).

rx-key-pernr = p0001-pernr.

rx-key-seqno = evpdir-seqnr.

rp-imp-c2-rx2.

IF rp-imp-rx-subrc = 0.

PERFORM rt_to_itab.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM PRINT_RX *

----


  • ........ *

----


FORM print_rx.

LOOP AT rt.

PERFORM re512t USING country rt-lgart.

ENDLOOP.

ENDFORM.

----


  • FORM RE512T *

----


  • ........ *

----


  • --> VALUE(COUNTRY_GROUPING) *

  • --> VALUE(WTYPE) *

----


FORM re512t USING value(country_grouping)

value(wtype).

CHECK t512t-sprsl NE sy-langu

OR t512t-molga NE country_grouping

OR t512t-lgart NE wtype.

SELECT SINGLE * FROM t512t

WHERE sprsl EQ sy-langu

AND molga EQ country_grouping

AND lgart EQ wtype.

IF sy-subrc NE 0.

CLEAR t512t.

ENDIF.

ENDFORM.

----


  • FORM rt_to_itab *

----


  • ........ *

----


FORM rt_to_itab.

MOVE: basic TO w_basic,

basic2 TO w_basic2,

basic3 TO w_basic3,

pera TO w_pera,

pera2 TO w_pera2,

longp TO w_longp,

longp2 TO w_longp2,

srvaw TO w_srvaw,

leave TO w_leave,

trall TO w_trall,

chall TO w_chall,

chall2 TO w_chall2,

chall3 TO w_chall3,

meal TO w_meal,

saldf TO w_saldf,

sipps TO w_sipps,

sipps2 TO w_sipps2,

subs TO w_subs,

hzard TO w_hzard,

lallw TO w_lallw,

medps TO w_medps,

medgs TO w_medgs,

pcontps TO w_pcontps,

pcontps2 TO w_pcontps2,

pcontps3 TO w_pcontps3,

pagibps TO w_pagibps,

pagibps2 TO w_pagibps2,

LWOP TO w_lwop,

otime TO w_otime,

otime2 TO w_otime2,

otime3 TO w_otime3,

otime4 TO w_otime4,

npay TO w_npay.

LOOP AT rt WHERE lgart = w_basic or lgart = w_basic2

or lgart = w_basic3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-basic.

itab-ec = rt-betrg / 100.

if itab-ec > 100.

itab-ec = 100.

ENDIF.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pera.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pera.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pera2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pera.

ENDLOOP.

LOOP AT rt WHERE lgart = w_longp or lgart = w_longp2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-longp.

ENDLOOP.

LOOP AT rt WHERE lgart = w_trall.

if rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

endif.

ADD: rt-betrg TO itab-trall.

ENDLOOP.

LOOP AT rt WHERE lgart = w_srvaw.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-srvaw.

ENDLOOP.

LOOP AT rt WHERE lgart = w_leave.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-leave.

ENDLOOP.

LOOP AT rt WHERE lgart = w_chall or

lgart = w_chall2 or

lgart = w_chall3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-chall.

ENDLOOP.

LOOP AT rt WHERE lgart = w_meal.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-meal.

ENDLOOP.

LOOP AT rt WHERE lgart = w_saldf.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-saldf.

ENDLOOP.

LOOP AT rt WHERE lgart = w_sipps or

lgart = w_sipps2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-sipps.

itab-sipgs = itab-sipps / 9 * 12.

ENDLOOP.

LOOP AT rt WHERE lgart = w_subs.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-subs.

ENDLOOP.

LOOP AT rt WHERE lgart = w_hzard.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-hzard.

ENDLOOP.

LOOP AT rt WHERE lgart = w_lallw.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-lallw.

ENDLOOP.

LOOP AT rt WHERE lgart = w_medps.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-medps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_medgs.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

MOVE: rt-betrg TO tempgs.

itab-medgs = itab-medps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pcontps OR

lgart = w_pcontps2 OR

lgart = w_pcontps3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pcontps.

ENDLOOP.

itab-pcontgs = itab-pcontps * 9.

LOOP AT rt WHERE lgart = w_pagibps OR

lgart = w_pagibps2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pagibps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pagibps.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pagibgs.

ENDLOOP.

LOOP AT rt WHERE lgart = w_lwop.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-lwop.

ENDLOOP.

LOOP AT rt WHERE lgart = w_otime or

lgart = w_otime2 or

lgart = w_otime3 or

lgart = w_otime4.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-otime.

ENDLOOP.

LOOP AT rt WHERE lgart = w_npay.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-npay.

ENDLOOP.

COLLECT itab.

CLEAR: itab.

REFRESH rt.

ENDFORM. " rt_to_itab

&----


*& Form f_fieldcat_init

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM f_fieldcat_init USING rt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 1.

ls_fieldcat-reptext_ddic = ' FXNAL Group'.

ls_fieldcat-fieldname = 'KHINR'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 12.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 2.

ls_fieldcat-reptext_ddic = ' OFFICE'.

ls_fieldcat-fieldname = 'LTEXT'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 40.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 3.

ls_fieldcat-reptext_ddic = ' RC #'.

ls_fieldcat-fieldname = 'KOSTL'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 5.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 4.

ls_fieldcat-reptext_ddic = 'Basic Salary'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'BASIC'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 5.

ls_fieldcat-reptext_ddic = 'PERA Allow'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'PERA'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 6.

ls_fieldcat-reptext_ddic = 'Longevity Pay'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LONGP'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 7.

ls_fieldcat-reptext_ddic = 'Service Award'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SRVAW'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 8.

ls_fieldcat-reptext_ddic = 'Child Allowance'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'CHALL'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 9.

ls_fieldcat-reptext_ddic = 'Leave Mone'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LEAVE'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 10.

ls_fieldcat-reptext_ddic = 'Over-time'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'OTIME'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 11.

ls_fieldcat-reptext_ddic = 'Meal Subsidy'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'MEAL'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 12.

ls_fieldcat-reptext_ddic = 'Salary Diff.'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SALDF'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 13.

ls_fieldcat-reptext_ddic = 'Subsistence'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SUBS'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 14.

ls_fieldcat-reptext_ddic = 'Hazard Pay'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'HZARD'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 15.

ls_fieldcat-reptext_ddic = 'Laundry Allow'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LALLW'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

ENDFORM. " f_fieldcat_init

&----


*& Form display_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_grid.

SORT itab BY kostl khinr.

LOOP AT itab.

AT NEW khinr.

MOVE-CORRESPONDING itab TO jtab.

APPEND jtab.

ENDAT.

ENDLOOP.

PERFORM my_top USING gt_top[].

PERFORM build_layout USING gs_layout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_events = gt_events[]

TABLES

t_outtab = itab.

ENDFORM. " display_grid

&----


*& Form eventtab_build

&----


  • text

----


  • -->P_GT_EVENTS[] text

----


FORM EVENTTAB_BUILD USING my_events TYPE SLIS_T_EVENT.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 1

IMPORTING

et_events = my_events.

*TOP OF PAGE

READ TABLE my_events

WITH KEY NAME = slis_ev_top_of_page

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE fn_top TO ls_event-form.

APPEND ls_event TO my_events.

ENDIF.

CLEAR ls_event.

*END OF LIST

READ TABLE my_events

WITH KEY name = slis_ev_end_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE fn_eol TO ls_event-form.

APPEND ls_event TO my_events.

ENDIF. " SY-SUBRC for READ TABLE

ENDFORM. " eventtab_build

&----


*& Form top_comment

&----


  • text

----


  • -->P_MYTOP[] text

----


FORM top_comment USING my_top_of_page TYPE slis_t_listheader.

DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.

DATA: ls_line TYPE slis_listheader,

li_recs TYPE i,

lc_name(60) TYPE c,

lc_from(30) TYPE c,

lc_to(30) TYPE c.

CALL FUNCTION 'MONTH_NAMES_GET'

TABLES

month_names = it_t247.

    • Company Name

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = TEXT-001.

APPEND ls_line TO my_top_of_page.

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-info = TEXT-002.

APPEND ls_line TO my_top_of_page.

    • Date

CLEAR lc_name.

CONCATENATE sy-datum+6(2) ',' INTO lc_name.

READ TABLE it_t247 WITH KEY mnr = sy-datum+4(2).

CONCATENATE text-003 it_t247-ltx lc_name sy-datum(4)

INTO lc_name SEPARATED BY space.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO my_top_of_page.

ENDFORM. " top_comment

&----


*& Form build_layout

&----


  • text

----


  • -->P_GS_LAYOUT text

----


FORM build_layout USING my_layout TYPE slis_layout_alv.

my_layout-f2code = d_f2code.

my_layout-reprep = 'X'.

my_layout-confirmation_prompt = 'X'.

my_layout-flexible_key = 'X'.

ENDFORM. " build_layout

&----


*& Form TOP_OF_PAGE

&----


  • Writes comments on top of page

----


FORM top_of_page.

DATA: ls_line TYPE slis_listheader,

lc_name(60) TYPE c.

IF sy-ucomm = '&RNT_PREV'.

READ TABLE gt_top INTO ls_line INDEX 2.

lc_name = ls_line-info.

WRITE 'Page:' TO lc_name+45(5).

WRITE sy-pagno TO lc_name+52(5).

ls_line-typ = 'H'.

ls_line-info = lc_name.

MODIFY gt_top FROM ls_line INDEX 2.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_top.

ENDFORM. " TOP_OF_PAGE

&----


*& Form my_top

&----


  • text

----


  • -->P_GT_TOP[] text

----


FORM my_top USING top TYPE slis_t_listheader.

DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.

DATA: ls_line TYPE slis_listheader,

li_recs TYPE i,

lc_name(60) TYPE c,

lc_from(30) TYPE c,

lc_to(30) TYPE c.

CALL FUNCTION 'MONTH_NAMES_GET'

TABLES

month_names = it_t247.

    • Company Name

CLEAR lc_name.

WRITE text-001 TO lc_name.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

**Report Name

CLEAR lc_name.

WRITE text-002 TO lc_name.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

    • Range of date

CLEAR lc_name.

lc_name = p_date+4(2).

READ TABLE it_t247 WITH KEY mnr = p_date+4(2).

CONCATENATE: text-003 it_t247-ltx sy-datum(4)

INTO lc_name SEPARATED BY SPACE.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

ENDFORM. " my_top

&----


*& Form END_OF_LIST

&----


  • Writes signature line at end of list

----


FORM end_of_list.

IF sy-ucomm = '&RNT_PREV' OR sy-ucomm = 'AUSW'.

REFRESH gt_eol.

PERFORM my_eol USING gt_eol[].

ELSE.

REFRESH gt_eol.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_eol

i_end_of_list_grid = 'X'.

ENDFORM. " END_OF_LIST

&----


*& Form my_eol

&----


  • text

----


  • -->P_GT_EOL[] text

----


FORM my_eol USING eol TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader,

lc_name(60) TYPE c.

  • Signature Line

CLEAR lc_name.

lc_name = '.'.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR lc_name.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR ls_line.

ls_line-typ = 'H'.

WRITE 'Submitted By:' TO lc_name(28).

WRITE 'Noted By:' TO lc_name+30(28).

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR: lc_name, ls_line-key.

lc_name = '.'.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR lc_name. CLEAR ls_line.

WRITE sy-uline(28) TO lc_name(28).

WRITE sy-uline(28) TO lc_name+30(28).

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

ENDFORM. " my_eol

Hi Everyone, I've been trying to export my report to excel. But I have exhausted all possible reasons and I just couldn't figure it out. Can someone please help me. Thanks in advance.

----


  • PROGRAM NAME : ZADC_PAYSUMNEW

*

----


  • ........ *

----


REPORT ZADC_PAYSUMNEW

NO STANDARD PAGE HEADING

LINE-SIZE 450

LINE-COUNT 65 MESSAGE-ID zmes.

----


  • TABLE DECLARATION *

----


TABLES: cskt,

csks,

pa0009,

pcl1,

pcl2,

pernr,

t512t,

t549a,

t527x,

zhrprtype.

----


  • INFOTYPES DECLARATION

----


INFOTYPES: 0001, 0002.

----


  • INCLUDE DECLARATION

----


INCLUDE: rpc2rx00.

INCLUDE: rpc2rxx0.

INCLUDE: rpppxd00.

----


  • INTERNAL TABLE DECLARATION

----


DATA: BEGIN OF itab OCCURS 0,

khinr LIKE csks-khinr,

kostl LIKE p0001-kostl,

ltext(40),

p_date LIKE pc261-inper,

basic(7) TYPE p DECIMALS 2,

pera(7) TYPE p DECIMALS 2,

longp(7) TYPE p DECIMALS 2,

trall(6) type p decimals 2,

srvaw(6) TYPE p DECIMALS 2,

chall(7) TYPE p DECIMALS 2,

leave(7) TYPE p DECIMALS 2,

meal(7) TYPE p DECIMALS 2,

saldf(7) TYPE p DECIMALS 2,

sipps(7) TYPE p DECIMALS 2,

sipgs(7) TYPE p DECIMALS 2,

subs(7) TYPE p DECIMALS 2,

hzard(7) TYPE p DECIMALS 2,

lallw(7) TYPE p DECIMALS 2,

medps(7) TYPE p DECIMALS 2,

medgs(7) TYPE p DECIMALS 2,

pcontps(7) TYPE p DECIMALS 2,

pcontgs(7) TYPE p DECIMALS 2,

pagibps(6) TYPE p DECIMALS 2,

pagibgs(6) TYPE p DECIMALS 2,

lwop(7) TYPE p DECIMALS 2,

npay(7) TYPE p DECIMALS 2,

otime(7) TYPE p DECIMALS 2,

ec(7) TYPE p DECIMALS 2,

fr_date like sy-datum,

to_date like sy-datum,

END OF itab.

DATA: BEGIN OF jtab OCCURS 0,

khinr LIKE csks-khinr,

kostl LIKE p0001-kostl,

ltext(40),

basic(7) TYPE p DECIMALS 2,

pera(7) TYPE p DECIMALS 2,

longp(7) TYPE p DECIMALS 2,

trall(6) type p decimals 2,

srvaw(6) TYPE p DECIMALS 2,

chall(7) TYPE p DECIMALS 2,

leave(7) TYPE p DECIMALS 2,

meal(7) TYPE p DECIMALS 2,

saldf(7) TYPE p DECIMALS 2,

sipps(7) TYPE p DECIMALS 2,

sipgs(7) TYPE p DECIMALS 2,

subs(7) TYPE p DECIMALS 2,

hzard(7) TYPE p DECIMALS 2,

lallw(7) TYPE p DECIMALS 2,

medps(7) TYPE p DECIMALS 2,

medgs(7) TYPE p DECIMALS 2,

pcontps(7) TYPE p DECIMALS 2,

pcontgs(7) TYPE p DECIMALS 2,

pagibps(6) TYPE p DECIMALS 2,

pagibgs(6) TYPE p DECIMALS 2,

lwop(7) TYPE p DECIMALS 2,

npay(7) TYPE p DECIMALS 2,

otime(7) TYPE p DECIMALS 2,

ec(7) TYPE p DECIMALS 2,

END OF jtab.

DATA: it_list TYPE STANDARD TABLE OF itab WITH HEADER LINE.

----


  • CONSTANTS DECLARATION

----


CONSTANTS: basic TYPE pc207-lgart VALUE '0401',

basic2 TYPE pc207-lgart VALUE '0402',

basic3 TYPE pc207-lgart VALUE '0403',

PERA TYPE pc207-lgart VALUE '3104',

PERA2 TYPE pc207-lgart VALUE '3110',

longp TYPE pc207-lgart VALUE '1601',

longp2 TYPE pc207-lgart VALUE '1603',

trall TYPE pc207-lgart VALUE '3109',

srvaw TYPE pc207-lgart VALUE '2117',

leave TYPE pc207-lgart VALUE '2118',

chall TYPE pc207-lgart VALUE '3105',

chall2 TYPE pc207-lgart VALUE '3111',

chall3 TYPE pc207-lgart VALUE '3112',

meal TYPE pc207-lgart VALUE '3102',

saldf TYPE pc207-lgart VALUE '4103',

sipps TYPE pc207-lgart VALUE '/090',

sipps2 TYPE pc207-lgart VALUE '1121',

subs TYPE pc207-lgart VALUE '3101',

hzard TYPE pc207-lgart VALUE '1602',

lallw TYPE pc207-lgart VALUE '3103',

medps TYPE pc207-lgart VALUE '/313',

medgs TYPE pc207-lgart VALUE '/314',

pcontps TYPE pc207-lgart VALUE '/093',

pcontps2 TYPE pc207-lgart VALUE '1327',

pcontps3 TYPE pc207-lgart VALUE '1120',

pagibps TYPE pc207-lgart VALUE '/326',

pagibps2 TYPE pc207-lgart VALUE '1326',

lwop TYPE pc207-lgart VALUE '1102',

otime TYPE pc207-lgart VALUE '0101',

otime2 TYPE pc207-lgart VALUE '0102',

otime3 TYPE pc207-lgart VALUE '0103',

otime4 TYPE pc207-lgart VALUE '0104',

npay TYPE pc207-lgart VALUE '/559'.

----


  • DATA DECLARATION

----


DATA: BEGIN OF COMMON PART buffer.

INCLUDE: rpppxd10.

DATA: END OF COMMON PART buffer.

*Table data containing directory to PCL2 payroll results file DATA:

DATA: BEGIN OF rgdir OCCURS 100.

INCLUDE STRUCTURE pc261.

DATA: END OF rgdir.

DATA: BEGIN OF evpdir OCCURS 100.

INCLUDE STRUCTURE pc261.

DATA: END OF evpdir.

DATA: country LIKE t001p-molga,

lname LIKE t527x-orgtx,

filename2(128),

p_date LIKE pc261-inper,

w_basic LIKE pc207-lgart,

w_basic2 LIKE pc207-lgart,

w_basic3 LIKE pc207-lgart,

w_pera LIKE pc207-lgart,

w_pera2 LIKE pc207-lgart,

w_longp LIKE pc207-lgart,

w_longp2 LIKE pc207-lgart,

w_trall LIKE pc207-lgart,

w_srvaw LIKE pc207-lgart,

w_leave LIKE pc207-lgart,

w_chall LIKE pc207-lgart,

w_chall2 LIKE pc207-lgart,

w_chall3 LIKE pc207-lgart,

w_meal LIKE pc207-lgart,

w_saldf LIKE pc207-lgart,

w_sipps LIKE pc207-lgart,

w_sipps2 LIKE pc207-lgart,

w_subs LIKE pc207-lgart,

w_hzard LIKE pc207-lgart,

w_lallw LIKE pc207-lgart,

w_medps LIKE pc207-lgart,

w_medgs LIKE pc207-lgart,

w_pcontps LIKE pc207-lgart,

w_pcontps2 LIKE pc207-lgart,

w_pcontps3 LIKE pc207-lgart,

w_pagibps LIKE pc207-lgart,

w_pagibps2 LIKE pc207-lgart,

w_lwop LIKE pc207-lgart,

w_otime LIKE pc207-lgart,

w_otime2 LIKE pc207-lgart,

w_otime3 LIKE pc207-lgart,

w_otime4 LIKE pc207-lgart,

w_npay LIKE pc207-lgart,

tempgs(7) TYPE p DECIMALS 2,

ctr-basic(7) TYPE p DECIMALS 2,

ctr-pera(7) TYPE p DECIMALS 2,

ctr-longp(7) TYPE p DECIMALS 2,

ctr-trall(6) TYPE p DECIMALS 2,

ctr-srvaw(6) TYPE p DECIMALS 2,

ctr-leave(7) TYPE p DECIMALS 2,

ctr-chall(7) TYPE p DECIMALS 2,

ctr-meal(7) TYPE p DECIMALS 2,

ctr-saldf(7) TYPE p DECIMALS 2,

ctr-sipps(7) TYPE p DECIMALS 2,

ctr-sipgs(7) TYPE p DECIMALS 2,

ctr-subs(7) TYPE p DECIMALS 2,

ctr-hzard(7) TYPE p DECIMALS 2,

ctr-lallw(7) TYPE p DECIMALS 2,

ctr-medps(7) TYPE p DECIMALS 2,

ctr-medgs(7) TYPE p DECIMALS 2,

ctr-pcontps(7) TYPE p DECIMALS 2,

ctr-pcontgs(7) TYPE p DECIMALS 2,

ctr-pagibps(6) TYPE p DECIMALS 2,

ctr-pagibgs(6) TYPE p DECIMALS 2,

ctr-lwop(7) TYPE p DECIMALS 2,

ctr-otime(7) TYPE p DECIMALS 2,

ctr-npay(7) TYPE p DECIMALS 2,

ctr-ec(7) TYPE p DECIMALS 2.

DATA: BEGIN OF ph-version.

INCLUDE STRUCTURE pc201_pay. "XTWPH9K008656

DATA: END OF ph-version.

DATA: fr_date LIKE sy-datum,

to_date LIKE sy-datum.

----


  • SELECT-OPTIONS and PARAMETERS

----


SELECT-OPTIONS: p_status FOR rgdir-srtza DEFAULT 'A'.

DATA: DATE1(15),

mon(9).

----


  • DEFINITION

----


DEFINE rp-imp-c2-rx2.

clear:

orx-version, "OBJECTS_FOR_CLEAR

rt, rt[].

import

ph-version to orx-version "OBJECTS_FOR_IMPORT

rt

from database pcl2(ph) id rx-key using pcl2_exp_imp.

rp-imp-rx-subrc = sy-subrc.

if sy-subrc eq 0 and orx-version-number ne ph-version-number.

rp-imp-rx-subrc = 8.

endif.

END-OF-DEFINITION.

TYPE-POOLS: slis.

DATA: g_repid LIKE sy-repid,

gt_fieldcat TYPE slis_t_fieldcat_alv,

gt_events TYPE slis_t_event,

gt_top TYPE slis_t_listheader,

gt_eol TYPE slis_t_listheader,

gt_list_top_of_page TYPE slis_t_listheader,

gt_list_end_of_list TYPE slis_t_listheader,

gs_layout TYPE slis_layout_alv,

d_f2code LIKE sy-ucomm VALUE '&ETA'.

CONSTANTS: fn_top TYPE slis_formname VALUE 'TOP_OF_PAGE',

fn_eol TYPE slis_formname VALUE 'END_OF_LIST'.

DATA: it_alv_out TYPE STANDARD TABLE OF itab WITH HEADER LINE.

INITIALIZATION.

g_repid = sy-repid.

PERFORM f_fieldcat_init USING gt_fieldcat[].

PERFORM eventtab_build USING gt_events[].

----


  • START-OF-SELECTION.

----


START-OF-SELECTION.

fr_date = to_date = pn-endda.

fr_date+6(2) = '01'.

SELECT SINGLE * FROM t549a

WHERE abkrs = pnpxabkr.

GET PERNR.

CLEAR: itab, lname.

PERFORM get_rt_tab.

END-OF-SELECTION.

PERFORM display_grid.

INCLUDE rpppxm00.

  • USING DATM

----


  • FORM get_rt_tab *

----


  • ........ *

----


FORM get_rt_tab.

rp_provide_from_last p0001 space pn-begda pn-endda.

rp_provide_from_last p0002 space pn-begda pn-endda.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = p0001-pernr

IMPORTING

molga = country

TABLES

in_rgdir = rgdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc = 0.

SELECT single ltext FROM cskt

INTO itab-ltext

WHERE kostl = p0001-kostl

AND datbi = '99991231'.

SELECT SINGLE * FROM csks

WHERE kostl = p0001-kostl

AND kokrs = 'GSIS'

AND datbi = '99991231'.

IF sy-subrc = 0.

MOVE: csks-kostl TO itab-kostl,

csks-khinr TO itab-khinr.

ENDIF.

p_date = pn-paper.

  • regular payroll run.

CALL FUNCTION 'CD_EVALUATION_PERIODS'

EXPORTING

bonus_date = '00000000'

inper_modif = t549a-permo

inper = p_date

pay_type = ' '

pay_ident = ' '

TABLES

rgdir = rgdir

evpdir = evpdir

EXCEPTIONS

no_record_found = 1

OTHERS = 2.

IF sy-subrc = 0.

LOOP AT evpdir WHERE srtza IN p_status and FPPER eq pn-begda+(6).

rx-key-pernr = p0001-pernr.

rx-key-seqno = evpdir-seqnr.

rp-imp-c2-rx2.

IF rp-imp-rx-subrc = 0.

PERFORM rt_to_itab.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM PRINT_RX *

----


  • ........ *

----


FORM print_rx.

LOOP AT rt.

PERFORM re512t USING country rt-lgart.

ENDLOOP.

ENDFORM.

----


  • FORM RE512T *

----


  • ........ *

----


  • --> VALUE(COUNTRY_GROUPING) *

  • --> VALUE(WTYPE) *

----


FORM re512t USING value(country_grouping)

value(wtype).

CHECK t512t-sprsl NE sy-langu

OR t512t-molga NE country_grouping

OR t512t-lgart NE wtype.

SELECT SINGLE * FROM t512t

WHERE sprsl EQ sy-langu

AND molga EQ country_grouping

AND lgart EQ wtype.

IF sy-subrc NE 0.

CLEAR t512t.

ENDIF.

ENDFORM.

----


  • FORM rt_to_itab *

----


  • ........ *

----


FORM rt_to_itab.

MOVE: basic TO w_basic,

basic2 TO w_basic2,

basic3 TO w_basic3,

pera TO w_pera,

pera2 TO w_pera2,

longp TO w_longp,

longp2 TO w_longp2,

srvaw TO w_srvaw,

leave TO w_leave,

trall TO w_trall,

chall TO w_chall,

chall2 TO w_chall2,

chall3 TO w_chall3,

meal TO w_meal,

saldf TO w_saldf,

sipps TO w_sipps,

sipps2 TO w_sipps2,

subs TO w_subs,

hzard TO w_hzard,

lallw TO w_lallw,

medps TO w_medps,

medgs TO w_medgs,

pcontps TO w_pcontps,

pcontps2 TO w_pcontps2,

pcontps3 TO w_pcontps3,

pagibps TO w_pagibps,

pagibps2 TO w_pagibps2,

LWOP TO w_lwop,

otime TO w_otime,

otime2 TO w_otime2,

otime3 TO w_otime3,

otime4 TO w_otime4,

npay TO w_npay.

LOOP AT rt WHERE lgart = w_basic or lgart = w_basic2

or lgart = w_basic3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-basic.

itab-ec = rt-betrg / 100.

if itab-ec > 100.

itab-ec = 100.

ENDIF.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pera.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pera.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pera2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pera.

ENDLOOP.

LOOP AT rt WHERE lgart = w_longp or lgart = w_longp2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-longp.

ENDLOOP.

LOOP AT rt WHERE lgart = w_trall.

if rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

endif.

ADD: rt-betrg TO itab-trall.

ENDLOOP.

LOOP AT rt WHERE lgart = w_srvaw.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-srvaw.

ENDLOOP.

LOOP AT rt WHERE lgart = w_leave.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-leave.

ENDLOOP.

LOOP AT rt WHERE lgart = w_chall or

lgart = w_chall2 or

lgart = w_chall3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-chall.

ENDLOOP.

LOOP AT rt WHERE lgart = w_meal.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-meal.

ENDLOOP.

LOOP AT rt WHERE lgart = w_saldf.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-saldf.

ENDLOOP.

LOOP AT rt WHERE lgart = w_sipps or

lgart = w_sipps2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-sipps.

itab-sipgs = itab-sipps / 9 * 12.

ENDLOOP.

LOOP AT rt WHERE lgart = w_subs.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-subs.

ENDLOOP.

LOOP AT rt WHERE lgart = w_hzard.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-hzard.

ENDLOOP.

LOOP AT rt WHERE lgart = w_lallw.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-lallw.

ENDLOOP.

LOOP AT rt WHERE lgart = w_medps.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-medps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_medgs.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

MOVE: rt-betrg TO tempgs.

itab-medgs = itab-medps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pcontps OR

lgart = w_pcontps2 OR

lgart = w_pcontps3.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pcontps.

ENDLOOP.

itab-pcontgs = itab-pcontps * 9.

LOOP AT rt WHERE lgart = w_pagibps OR

lgart = w_pagibps2.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pagibps.

ENDLOOP.

LOOP AT rt WHERE lgart = w_pagibps.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-pagibgs.

ENDLOOP.

LOOP AT rt WHERE lgart = w_lwop.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-lwop.

ENDLOOP.

LOOP AT rt WHERE lgart = w_otime or

lgart = w_otime2 or

lgart = w_otime3 or

lgart = w_otime4.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-otime.

ENDLOOP.

LOOP AT rt WHERE lgart = w_npay.

IF rt-betrg < 0.

rt-betrg = abs( rt-betrg ).

ENDIF.

ADD: rt-betrg TO itab-npay.

ENDLOOP.

COLLECT itab.

CLEAR: itab.

REFRESH rt.

ENDFORM. " rt_to_itab

&----


*& Form f_fieldcat_init

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM f_fieldcat_init USING rt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 1.

ls_fieldcat-reptext_ddic = ' FXNAL Group'.

ls_fieldcat-fieldname = 'KHINR'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 12.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 2.

ls_fieldcat-reptext_ddic = ' OFFICE'.

ls_fieldcat-fieldname = 'LTEXT'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 40.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 3.

ls_fieldcat-reptext_ddic = ' RC #'.

ls_fieldcat-fieldname = 'KOSTL'.

ls_fieldcat-ref_tabname = 'ITAB'.

ls_fieldcat-outputlen = 5.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 4.

ls_fieldcat-reptext_ddic = 'Basic Salary'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'BASIC'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 5.

ls_fieldcat-reptext_ddic = 'PERA Allow'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'PERA'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 6.

ls_fieldcat-reptext_ddic = 'Longevity Pay'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LONGP'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 7.

ls_fieldcat-reptext_ddic = 'Service Award'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SRVAW'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 8.

ls_fieldcat-reptext_ddic = 'Child Allowance'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'CHALL'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 9.

ls_fieldcat-reptext_ddic = 'Leave Mone'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LEAVE'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 10.

ls_fieldcat-reptext_ddic = 'Over-time'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'OTIME'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 11.

ls_fieldcat-reptext_ddic = 'Meal Subsidy'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'MEAL'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 12.

ls_fieldcat-reptext_ddic = 'Salary Diff.'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SALDF'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 13.

ls_fieldcat-reptext_ddic = 'Subsistence'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'SUBS'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 14.

ls_fieldcat-reptext_ddic = 'Hazard Pay'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'HZARD'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 15.

ls_fieldcat-reptext_ddic = 'Laundry Allow'.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'LALLW'.

ls_fieldcat-datatype = 'CURR'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO rt_fieldcat.

ENDFORM. " f_fieldcat_init

&----


*& Form display_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_grid.

SORT itab BY kostl khinr.

LOOP AT itab.

AT NEW khinr.

MOVE-CORRESPONDING itab TO jtab.

APPEND jtab.

ENDAT.

ENDLOOP.

PERFORM my_top USING gt_top[].

PERFORM build_layout USING gs_layout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_events = gt_events[]

TABLES

t_outtab = itab.

ENDFORM. " display_grid

&----


*& Form eventtab_build

&----


  • text

----


  • -->P_GT_EVENTS[] text

----


FORM EVENTTAB_BUILD USING my_events TYPE SLIS_T_EVENT.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 1

IMPORTING

et_events = my_events.

*TOP OF PAGE

READ TABLE my_events

WITH KEY NAME = slis_ev_top_of_page

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE fn_top TO ls_event-form.

APPEND ls_event TO my_events.

ENDIF.

CLEAR ls_event.

*END OF LIST

READ TABLE my_events

WITH KEY name = slis_ev_end_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE fn_eol TO ls_event-form.

APPEND ls_event TO my_events.

ENDIF. " SY-SUBRC for READ TABLE

ENDFORM. " eventtab_build

&----


*& Form top_comment

&----


  • text

----


  • -->P_MYTOP[] text

----


FORM top_comment USING my_top_of_page TYPE slis_t_listheader.

DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.

DATA: ls_line TYPE slis_listheader,

li_recs TYPE i,

lc_name(60) TYPE c,

lc_from(30) TYPE c,

lc_to(30) TYPE c.

CALL FUNCTION 'MONTH_NAMES_GET'

TABLES

month_names = it_t247.

    • Company Name

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = TEXT-001.

APPEND ls_line TO my_top_of_page.

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-info = TEXT-002.

APPEND ls_line TO my_top_of_page.

    • Date

CLEAR lc_name.

CONCATENATE sy-datum+6(2) ',' INTO lc_name.

READ TABLE it_t247 WITH KEY mnr = sy-datum+4(2).

CONCATENATE text-003 it_t247-ltx lc_name sy-datum(4)

INTO lc_name SEPARATED BY space.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO my_top_of_page.

ENDFORM. " top_comment

&----


*& Form build_layout

&----


  • text

----


  • -->P_GS_LAYOUT text

----


FORM build_layout USING my_layout TYPE slis_layout_alv.

my_layout-f2code = d_f2code.

my_layout-reprep = 'X'.

my_layout-confirmation_prompt = 'X'.

my_layout-flexible_key = 'X'.

ENDFORM. " build_layout

&----


*& Form TOP_OF_PAGE

&----


  • Writes comments on top of page

----


FORM top_of_page.

DATA: ls_line TYPE slis_listheader,

lc_name(60) TYPE c.

IF sy-ucomm = '&RNT_PREV'.

READ TABLE gt_top INTO ls_line INDEX 2.

lc_name = ls_line-info.

WRITE 'Page:' TO lc_name+45(5).

WRITE sy-pagno TO lc_name+52(5).

ls_line-typ = 'H'.

ls_line-info = lc_name.

MODIFY gt_top FROM ls_line INDEX 2.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_top.

ENDFORM. " TOP_OF_PAGE

&----


*& Form my_top

&----


  • text

----


  • -->P_GT_TOP[] text

----


FORM my_top USING top TYPE slis_t_listheader.

DATA: it_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.

DATA: ls_line TYPE slis_listheader,

li_recs TYPE i,

lc_name(60) TYPE c,

lc_from(30) TYPE c,

lc_to(30) TYPE c.

CALL FUNCTION 'MONTH_NAMES_GET'

TABLES

month_names = it_t247.

    • Company Name

CLEAR lc_name.

WRITE text-001 TO lc_name.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

**Report Name

CLEAR lc_name.

WRITE text-002 TO lc_name.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

    • Range of date

CLEAR lc_name.

lc_name = p_date+4(2).

READ TABLE it_t247 WITH KEY mnr = p_date+4(2).

CONCATENATE: text-003 it_t247-ltx sy-datum(4)

INTO lc_name SEPARATED BY SPACE.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO top.

ENDFORM. " my_top

&----


*& Form END_OF_LIST

&----


  • Writes signature line at end of list

----


FORM end_of_list.

IF sy-ucomm = '&RNT_PREV' OR sy-ucomm = 'AUSW'.

REFRESH gt_eol.

PERFORM my_eol USING gt_eol[].

ELSE.

REFRESH gt_eol.

ENDIF.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_eol

i_end_of_list_grid = 'X'.

ENDFORM. " END_OF_LIST

&----


*& Form my_eol

&----


  • text

----


  • -->P_GT_EOL[] text

----


FORM my_eol USING eol TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader,

lc_name(60) TYPE c.

  • Signature Line

CLEAR lc_name.

lc_name = '.'.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR lc_name.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR ls_line.

ls_line-typ = 'H'.

WRITE 'Submitted By:' TO lc_name(28).

WRITE 'Noted By:' TO lc_name+30(28).

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR: lc_name, ls_line-key.

lc_name = '.'.

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

CLEAR lc_name. CLEAR ls_line.

WRITE sy-uline(28) TO lc_name(28).

WRITE sy-uline(28) TO lc_name+30(28).

ls_line-typ = 'H'.

ls_line-info = lc_name.

APPEND ls_line TO eol.

ENDFORM. " my_eol

3 REPLIES 3
Read only

Former Member
0 Likes
926

1.U are not getting the data into Excel when u client Excel Buttton from the ALV display ?

2.if yes then u will get one message stating that templet is Missing like this ?

Regards

prabhu

Read only

Former Member
0 Likes
926

ur trying to download data to excel using the standard button provided by ALV...if not u have to write code in user command and use GUI_DOWNLOAD

Read only

Former Member
0 Likes
926

I found my error.....i did not put ls_fieldcat-ref_tabname in my first 3 columns. It's ok now. Thanks for the help though.