Skip to Content
0
Former Member
May 13, 2008 at 02:24 AM

Getting data into internal table wa_final

72 Views

Hi Guys

I have change the logic for this program , I have created 2 workareas and internal table now I need help to place the data into

wa_final-max_date = wa_data-idate.

wa_final-min_date = wa_data-idate.

wa_final-max_km = wa_data-recdv.

wa_final-min_km = wa_data-recdv.

wa_final-max_hR = wa_data-recdv.

wa_final-min_hR = wa_data-recdv.

wa_final-max_lit = wa_data-recdv.

wa_final-min_lit = wa_data-recdv.

wa_final-t_max_min_km = wa_data-recdv. " min_km - max_km

wa_final-t_max_min_hr = wa_data-recdv. " min_hr - max_hr

wa_final-t_max_min_lit = wa_data-recdv. " min_lit - max_lit.

so how can I put the logic to the value please correct my program.seeing my program can anyone give some idea ?

REPORT Z_FUEL_MONTHLY_QTY LINE-SIZE 260 LINE-COUNT 75

NO STANDARD PAGE HEADING.

TABLES : equi,

equz,

imptt,

imrg,

eqkt,

iloa.

  • Type Declaration

*DATA: BEGIN OF ty_equi occurs 0,

  • equnr type equi-equnr,

  • END OF ty_equi.

*

*DATA: BEGIN of ty_eqkt occurs 0,

  • equnr type eqkt-equnr,

  • eqktx type eqkt-eqktx,

  • END OF ty_eqkt.

*

*DATA: BEGIN of ty_iloa occurs 0,

  • iloan type iloa-iloan,

  • eqfnr type iloa-eqfnr,

  • END OF ty_iloa.

*

*DATA: BEGIN of ty_imptt occurs 0,

  • mpobj type imptt-mpobj,

  • END of ty_imptt.

*

*DATA: BEGIN of ty_imrg occurs 0,

  • idate type imrg-idate,

  • recdv type imrg-recdv,

  • recdu type imrg-recdu,

  • END of ty_imrg.

TYPES: BEGIN OF ty_data ,

equnr type equnr, " Euipment no

eqktx type eqkt-eqktx, " Equipment Text

eqfnr type iloa-eqfnr, " Equipment Sort field

idate type imrg-idate, " Measuring Date

recdu type imrg-recdu, " Unit of measuring ='KM','L','H'

recdv type imrg-recdv, " Counter reading data

END OF ty_data.

TYPES: BEGIN OF ty_final,

equnr type equnr, " Equipment no

eqktx type eqkt-eqktx, " Equipment Text

eqfnr type iloa-eqfnr, " Equipment Sort field

min_date type imrg-idate, " Min Date

min_km type p decimals 2, " Max Km

max_km type p decimals 2, " Min km

t_max_min_km type i, " Total min_km-max_km

max_date type imrg-idate, " Max Date

min_hr type imrg-recdv, " Max hr

max_hr type imrg-recdv, " Min hr

t_max_min_hr type i, " Total min_hr-max_hr

min_lit type imrg-recdv, " Max lit

max_lit type imrg-recdv, " Min lit

t_max_min_lit type i, " Total min_lit-max_lit

fuel_con type p decimals 2, " Total_hrs / t_max_min_hr

km_l type p decimals 2, " km / L

lit_per_hr type i , " fuel comsumed / t_max_min_hr

END OF ty_final.

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

DATA : max_date type date ,

min_date type date,

max_km TYPE p DECIMALS 2,

min_km TYPE p DECIMALS 2,

max_hr TYPE p DECIMALS 2,

min_hr TYPE p DECIMALS 2,

max_lit TYPE p DECIMALS 2,

min_lit TYPE p DECIMALS 2,

t_max_min_km TYPE p DECIMALS 2,

t_max_min_hr TYPE p DECIMALS 2,

t_max_min_lit TYPE p DECIMALS 2.

SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.

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

SELECT-OPTIONS: p_equnr FOR equi-equnr, "no-extension no intervals,

p_idate FOR imrg-idate. "NO-EXTENSION NO INTERVALS OBLIGATORY,

"p_recdu FOR imrg-recdu NO-EXTENSION NO INTERVALS ."default 'M3'" OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.

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

SELECTION-SCREEN END OF BLOCK blk2.

SELECTION-SCREEN END OF BLOCK blk.

TOP-OF-PAGE.

FORMAT INTENSIFIED ON.

WRITE:/1(40) ' INVESTMENT LIMITED '.

WRITE:/50(40) ' FUEL CONSUMPTION REPORT ' 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 'Date From :'.

write: /2 'Equipment No :'.

write: /2 'Unit :'.

SKIP.

ULINE.

WRITE:/1 sy-vline,

2 'EQUIP NO', 10 sy-vline,

11 'NAME', 40 sy-vline,

41 'SORT', 60 sy-vline,

61 'MIN DATE', 74 sy-vline,

75 'MAX DATE', 87 sy-vline,

88 'MIN KM', 100 sy-vline,

101 'MAX KM' , 113 sy-vline,

114 'TOTALK', 126 sy-vline,

127 'MIN HR', 139 sy-vline,

140 'MAX HR', 152 sy-vline,

153 'TOTALH' , 167 sy-vline,

168 'MIN LIT', 180 sy-vline,

181 'MAX LIT', 193 sy-vline,

194 'TOTALL', 206 sy-vline,

207 'FUEL CON', 219 sy-vline,

220 'KM L', 232 sy-vline,

233 'LIT PER KM', 246 sy-vline.

FORMAT COLOR 3 ON.

ULINE.

END-OF-PAGE.

START-OF-SELECTION.

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

select a~equnr d~eqktx f~eqfnr e~idate e~recdu e~recdv

into table i_data

from equi AS a

inner join equz as b

on a~equnr = b~equnr

inner join iloa as f

on b~iloan = f~iloan

inner join imptt as c

on a~objnr = c~mpobj

inner join eqkt as d

on a~equnr = d~equnr

inner join imrg as e

on e~point = c~point

where a~equnr in p_equnr

and

e~idate in p_idate.

loop at i_data into wa_data.

CLEAR: wa_final.

READ TABLE i_final into wa_final

with key equnr = wa_data-equnr.

if sy-subrc EQ 0.

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.

WRITE:/1 sy-vline,

2 wa_final-equnr , 10 sy-vline,

11 wa_final-eqktx , 40 sy-vline,

41 wa_final-eqfnr , 60 sy-vline,

61 wa_final-min_date , 74 sy-vline,

75 wa_final-max_date , 87 sy-vline,

88 wa_final-min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 100 sy-vline,

101 wa_final-max_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 113 sy-vline,

114 wa_final-t_max_min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 126 sy-vline,

127 wa_final-min_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 139 sy-vline,

140 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 152 sy-vline,

153 wa_final-t_max_min_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 167 sy-vline,

168 wa_final-min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 180 sy-vline,

181 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 193 sy-vline,

194 wa_final-t_max_min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 206 sy-vline,

207 wa_final-fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 219 sy-vline,

220 wa_final-km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 232 sy-vline,

233 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 246 sy-vline.

ULINE.

endloop.

FORM prepare_final_rec USING p_mode TYPE char1.

SORT i_data BY equnr idate descending .

if wa_data-recdu = 'KM'.

max_km = wa_data-recdv.

min_km = wa_data-recdv.

endif.

if wa_data-recdu ='H'.

max_hr = wa_data-recdv.

min_hr = wa_data-recdv.

endif.

if wa_data-recdu ='L'.

max_lit = wa_data-recdv.

min_lit = wa_data-recdv.

endif.

  • at new equnr.

  • read table i_final into wa_final index sy-tabix.

*

*

*

  • write:/ wa_final-equnr, wa_final-eqktx ,wa_final-eqfnr ,wa_final-idate ,

  • 'Min KM',min_km EXPONENT 0 DECIMALS 2 color 7 ,

  • 'Min H',min_hr EXPONENT 0 DECIMALS 2 color 7 ,

  • 'Min L',min_lit EXPONENT 0 DECIMALS 2 color 7.

*

*

  • endat.

*at end of equnr.

  • read table i_data into wa_data index sy-tabix.

  • write:/ wa_final-equnr, wa_final-eqktx ,wa_final-eqfnr ,wa_final-idate ,

  • 'Max KM', max_km EXPONENT 0 DECIMALS 2 color 7,

  • 'Max H', max_hr EXPONENT 0 DECIMALS 2 color 7,

  • 'Max L', max_lit EXPONENT 0 DECIMALS 2 color 7.

*

*endat.

wa_final-max_date = wa_data-idate.

wa_final-min_date = wa_data-idate.

wa_final-max_km = wa_data-recdv.

wa_final-min_km = wa_data-recdv.

wa_final-max_hR = wa_data-recdv.

wa_final-min_hR = wa_data-recdv.

wa_final-max_lit = wa_data-recdv.

wa_final-min_lit = wa_data-recdv.

wa_final-t_max_min_km = wa_data-recdv. " min_km - max_km

wa_final-t_max_min_hr = wa_data-recdv. " min_hr - max_hr

wa_final-t_max_min_lit = wa_data-recdv. " min_lit - max_lit.

IF p_mode = 'A'.

wa_final-equnr = wa_data-equnr.

wa_final-eqktx = wa_data-eqktx.

wa_final-eqfnr = wa_data-eqfnr.

APPEND wa_final TO i_final.

ELSE.

MODIFY i_final FROM wa_final

TRANSPORTING

max_date

min_date

max_km

min_km

max_hr

min_hr

max_lit

min_lit

t_max_min_km

t_max_min_hr

where equnr = wa_data-equnr.

ENDIF.

ENDFORM. " PREPARE_FINAL_REC

regards;