Skip to Content
0
Former Member
May 25, 2010 at 11:33 PM

Revenue of trucks

38 Views

Hi Guys

I would be thankful if you please help me in getting my

Revenue after seeing this formulae column.

Our companies generally a cement company and I am find out the revenue for trucks by each employees.

I am not getting the value in Truck rev.Please see the attachment in word and help me in modifying my report .

Regards

Piroz

REPORT Z_ESLP_ZFCR1 LINE-SIZE 160 LINE-COUNT 75

NO STANDARD PAGE HEADING.

TABLES : PA2002,USER_ADDR,

ASSOB_HR,CSKS,

PA0002,S901,S903.

TYPES: BEGIN OF ty_data ,

pernr type pa2002-pernr,

begda type pa2002-begda,

endda type pa2002-endda,

abrtg type pa2002-abrtg,

abrst type pa2002-abrst,

kostl type csks-kostl,

prctr type csks-prctr,

traid type s901-traid,

sptag type s901-sptag,

END OF ty_data.

TYPES: BEGIN OF ty_final,

pernr type pa2002-pernr,

begda type pa2002-begda,

endda type pa2002-endda,

abrtg type pa2002-abrtg,

abrst type pa2002-abrst,

kostl type csks-kostl,

prctr type csks-prctr,

traid type s901-traid,

sptag type s901-sptag,

kzwi4 type s903-kzwi4,

t_phrs type pa2002-abrst,

t_days type pa2002-abrtg,

t_rev type s903-kzwi4,

t_rd type p decimals 2,

END OF ty_final.

TYPES: BEGIN OF ty_final2,

traid type s901-traid,

sptag type s901-sptag,

" kzwi4 type s903-kzwi4,

t_rev type s903-kzwi4,

END OF ty_final2.

DATA: i_data TYPE TABLE OF ty_data, " internal table

wa_data TYPE ty_data, " work area

i_final TYPE TABLE OF ty_final, " internal table

wa_final TYPE ty_final, " work area

i_final2 TYPE TABLE OF ty_final2, " internal table

wa_final2 TYPE ty_final2. " work area

SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.

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

SELECT-OPTIONS: p_pernr FOR pa2002-pernr matchcode OBJECT prem ,

p_kostl FOR assob_hr-kostl,

p_begda FOR pa2002-begda ,

p_werks FOR s903-werks.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.

SELECTION-SCREEN BEGIN OF BLOCK radio WITH FRAME.

PARAMETERS :TK RADIOBUTTON GROUP rbg1 , " trucks with cost center

CPT RADIOBUTTON GROUP rbg1 , " trucks without cost center

"ALL RADIOBUTTON GROUP rbg1 ,

Printer RADIOBUTTON GROUP rbg1 .

SELECTION-SCREEN END OF BLOCK radio.

SELECTION-SCREEN END OF BLOCK blk2.

SELECTION-SCREEN END OF BLOCK blk.

TOP-OF-PAGE.

FORMAT INTENSIFIED ON.

WRITE:/55(40) ' TRUCK REVENUE '.

WRITE:/50(40) ' TRUCK REVENUE BY EACH EMPLOYEE /DAY ' CENTERED ,

2 'Page', sy-pagno.

FORMAT INTENSIFIED OFF.

WRITE:/50(40) '----


' CENTERED .

FORMAT INTENSIFIED ON.

WRITE:/2 sy-datum COLOR 3, sy-uzeit .

"WRITE:/1 S903-SPMON ."p_yearf.

ULINE.

"CENTERED.

write: /2 'Truck No :'left-justified,p_kostl-low color 2 , ' to ' , p_kostl-high color 2.

write: /2 'Date From :', p_begda-low color 2 , ' to ' , p_begda-high color 2.

SKIP.

ULINE.

WRITE:/1 sy-vline,

2 ' TRUCK NO#', 15 sy-vline ,

16 ' COST CENTER', 40 sy-vline,

41 ' PER NO', 60 sy-vline,

61 ' BEGIN DATE', 74 sy-vline,

75 ' END DATE', 87 sy-vline,

88 'TOTAL HRS' , 100 sy-vline,

101 ' DAYS ', 110 sy-vline,

111 ' TRUCK REV ' , 130 sy-vline,

131' REV/DAY ', 148 sy-vline.

FORMAT COLOR 3 ON.

ULINE.

END-OF-PAGE.

START-OF-SELECTION.

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

select distinct apernr abegda aendda ekostl e~prctr

into corresponding fields of table i_data

FROM ( PA2002 AS A

INNER JOIN assob_hr AS B

on BBEGDA = ABEGDA

and BENDDA = AENDDA

and BPERNR = APERNR

and BSEQNR = ASEQNR

and BSUBTY = ASUBTY

inner join CSKS AS E

on EKOKRS = BKOKRS

and EBUKRS = BBUKRS

and EKOSTL = BKOSTL

)

where

A~PERNR in p_pernr

and A~BEGDA in p_begda

and B~KOSTL in p_kostl

and

BKOSTL LIKE 'TK%'. "AND CENDDA = '99991231'

  • group by

  • A~PERNR

  • A~BEGDA

  • A~ENDDA

  • E~KOSTL

  • E~PRCTR .

loop at i_data into wa_data.

CLEAR: wa_final.

READ TABLE i_final into wa_final

with key pernr = wa_data-pernr." BINARY SEARCH.

if sy-subrc EQ 0.

PERFORM F_DATA.

PERFORM F_YCONTBILL.

PERFORM prepare_final_rec USING'M'. " Modify Existing Record

ElSE.

PERFORM prepare_final_rec USING'A'. " Append New Record.

ENDIF.

ENDLOOP.

LOOP AT i_final into wa_final.

on change of wa_final-prctr.

WRITE:/1 sy-vline,

2 wa_final-kostl , 15 sy-vline,

16 wa_final-prctr , 40 sy-vline,

41 wa_final-pernr , 60 sy-vline,

61 wa_final-begda color 2 , 74 sy-vline,

75 wa_final-endda color 2 LEFT-JUSTIFIED , 87 sy-vline,

88 wa_final-t_phrs color 1 , 100 sy-vline,

101 wa_final-t_days color 2 , 110 sy-vline,

111 wa_final2-t_rev color 2 , 130 sy-vline,

131 wa_final-t_rd , 148 sy-vline,

149 wa_final-traid color 7 , 160 sy-vline.

endon.

uline.

endloop.

FORMAT COLOR 2 ON.

"refresh i_final.

"clear i_final.

FORM F_DATA.

select distinct apernr abegda aendda ekostl e~prctr

sum( aabrst ) as t_phrs sum( aabrtg ) as t_days

into corresponding fields of table i_final

"(wa_final-t_phrs,wa_final-t_days)

FROM ( PA2002 AS A

INNER JOIN assob_hr AS B

on BBEGDA = ABEGDA

and BENDDA = AENDDA

and BPERNR = APERNR

and BSEQNR = ASEQNR

and BSUBTY = ASUBTY

inner join CSKS AS E

on EKOKRS = BKOKRS

and EBUKRS = BBUKRS

and EKOSTL = BKOSTL

)

where

A~PERNR in p_pernr

and A~BEGDA in p_begda

and B~KOSTL in p_kostl

and

BKOSTL LIKE 'TK%' "AND CENDDA = '99991231'

group by

A~PERNR

A~BEGDA

A~ENDDA

E~KOSTL

E~PRCTR .

ENDFORM.

FORM F_YCONTBILL.

select single ftraid sum( gkzwi4 ) as t_rev

into corresponding fields of (wa_final2-traid,wa_final2-t_rev)

*(wa_final-traid,wa_final-t_rev)

FROM ( PA2002 AS A

INNER JOIN assob_hr AS B

on BBEGDA = ABEGDA

and BENDDA = AENDDA

and BPERNR = APERNR

and BSEQNR = ASEQNR

and BSUBTY = ASUBTY

and b~seqnr = ' '

inner join CSKS AS E

on EKOKRS = BKOKRS

and EBUKRS = BBUKRS

and EKOSTL = BKOSTL

INNER JOIN s901 as F

ON FTRAID = EPRCTR

AND

FSPTAG = BBEGDA

INNER JOIN S903 AS G

on GSPTAG = FSPTAG

and GVGBEL = FVBELN_01

and GAUPOS = FVGPOS

and GVKORG = FVKORG

)

where

A~PERNR in p_pernr

and A~BEGDA in p_begda

and B~KOSTL in p_kostl

and

BKOSTL LIKE 'TK%' "AND CENDDA = '99991231'

group by

A~PERNR

A~BEGDA

A~ENDDA

E~KOSTL

E~PRCTR

F~TRAID.

*

insert wa_final2 into table i_final2 .

"endselect.

ENDFORM.

FORM prepare_final_rec USING p_mode TYPE char1.

"wa_final-t_rd = ( wa_final-t_phrs ) / ( wa_final2-t_rev ).

if wa_final-t_rev <> 0.

wa_final-t_rd = ( wa_final-t_phrs ) / ( wa_final2-t_rev ).

ELSE.

wa_final-t_phrs = 0.

endif.

if wa_final-t_rd <> 0.

wa_final-t_rd = ( wa_final-t_phrs ) / ( wa_final2-t_rev ).

ELSE.

wa_final-t_rd = 0.

endif.

IF p_mode = 'A'.

wa_final-pernr = wa_data-pernr.

wa_final-begda = wa_data-begda.

wa_final-endda = wa_data-endda.

wa_final-abrtg = wa_data-abrtg.

wa_final-abrst = wa_data-abrst.

wa_final-kostl = wa_data-kostl.

wa_final-prctr = wa_data-prctr.

wa_final-traid = wa_data-traid.

wa_final-sptag = wa_data-sptag.

wa_final-t_rd = ( wa_final-t_phrs ) / ( wa_final2-t_rev ).

APPEND wa_final TO i_final .

ELSE.

MODIFY i_final FROM wa_final

TRANSPORTING

pernr

begda

endda

abrtg

abrst

kostl

prctr

traid

sptag

t_phrs

t_rev

t_rd

where pernr = wa_data-pernr.

ENDIF.

ENDFORM. " PREPARE_FINAL_REC