Skip to Content
0
Former Member
Nov 30, 2006 at 03:42 AM

Fatal Error when exporting Report to Excel

292 Views

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