Hi Friends
In this program I am getting strange thing
Where there is max_km and max date the value is comming as
0.00 and where the min_hr and max_date the value is comming correctly
max_km max_date_km min_hr max_date_hr
543245.00 02.02.2008 0.00 0.00
320034.00 02.02.2008 0.00 0.00
0.00 0.00 4083 3936.00
what is this error why the data is not inserting correctly in max
and min value please comment
regards
Piroz
REPORT Z_ESLP_FUEL3 LINE-SIZE 300 LINE-COUNT 75
NO STANDARD PAGE HEADING.
TABLES : equi,
equz,
imptt,
imrg,
eqkt,
iloa.
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
cancl type imrg-cancl,
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
idate type imrg-idate, " Measuring Date
min_date_km type imrg-idate, " Min Date
min_km type imrg-recdv, " Max Km
max_date_km type imrg-idate,
max_km type imrg-recdv, " Min km
t_max_min_km type i, " Total min_km-max_km
min_date_hr type imrg-idate, " Max Date
min_hr type imrg-recdv, " Max hr
max_date_hr type imrg-idate,
max_hr type imrg-recdv, " Min hr
t_max_min_hr type i, " Total min_hr-max_hr
min_date_lit type imrg-idate,
min_lit type imrg-recdv, " Min lit
max_date_lit type imrg-idate,
max_lit type imrg-recdv, " Max lit
fuel_con type p decimals 2, " Total_hrs / t_max_min_hr
km_l type p decimals 2, " t max_min_km / t_max_min_lit
lit_per_hr type p decimals 2 , " t_max_min_lit / 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,
total 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 'Equipment No :'left-justified,p_equnr-low color 2 , ' to ' , p_equnr-high color 2.
write: /2 'Date From :', p_idate-low color 2 , ' to ' , p_idate-high color 2.
"write: /2 'Sort Field:'left-justified,p_eqfnr-low color 2 , ' to ' , p_eqfnr-high color 2.
"write: /2 'Unit :' left-justified ,p_recdu-low.
SKIP.
SKIP.
ULINE.
WRITE:/1 sy-vline,
2 'EQUIP NO', 10 sy-vline,
11 'NAME', 40 sy-vline,
41 'SORT', 60 sy-vline,
61 'MAX DATE KM', 74 sy-vline,
75 'MAX KM', 87 sy-vline,
88 'MIN DATE KM', 100 sy-vline,
101 'MIN KM' , 113 sy-vline,
114 'TOTAL KM', 126 sy-vline,
127 'MIN DATE HR', 139 sy-vline,
140 'MIN HR', 152 sy-vline,
153 'MAX DATE HR', 167 sy-vline,
168 'MAX HR', 180 sy-vline,
181 'TOTAL HR' , 193 sy-vline,
194 'MIN DATE LIT', 206 sy-vline,
207 'MIN LIT', 219 sy-vline,
220 'MAX DATE LIT', 232 sy-vline,
233 'MAX LIT', 245 sy-vline,
246 'FUEL CON', 258 sy-vline,
259 'KM L', 271 sy-vline,
272 'LIT PER KM', 286 sy-vline.
FORMAT COLOR 3 ON.
ULINE.
END-OF-PAGE.
START-OF-SELECTION.
*******************************************************************************
select aequnr deqktx feqfnr eidate erecdu erecdv
into table i_data
from equi AS a
inner join equz as b
on aequnr = bequnr
inner join iloa as f
on biloan = filoan
inner join imptt as c
on aobjnr = cmpobj
inner join eqkt as d
on aequnr = dequnr
inner join imrg as e
on epoint = cpoint
where a~equnr in p_equnr
and
e~idate in p_idate and
e~cancl ne 'X'.
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.
at new equnr.
sort i_final by equnr min_hr ascending.
read table i_final into wa_final index 1.
at end of equnr.
sort i_final by equnr max_km descending.
read table i_final into wa_final index 1.
endat.
at end of equnr.
sort i_final by equnr max_hr descending.
read table i_final into wa_final index 1.
endat.
on change of wa_final-equnr.
sort i_final by equnr .
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_km color 3 , 74 sy-vline,
75 wa_final-min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 3 , 87 sy-vline,
88 wa_final-max_date_km color 2 LEFT-JUSTIFIED , 100 sy-vline,
101 wa_final-max_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 2 , 113 sy-vline,
114 wa_final-t_max_min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 126 sy-vline COLOR 2,
127 wa_final-min_date_hr color 3 , 139 sy-vline color 2,
140 wa_final-min_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 3 , 152 sy-vline,
153 wa_final-max_date_hr color 2 , 167 sy-vline,
168 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 2 , 180 sy-vline,
181 wa_final-t_max_min_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 193 sy-vline COLOR 2,
194 wa_final-min_date_lit color 3 , 206 sy-vline,
207 wa_final-min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 3 , 219 sy-vline,
220 wa_final-max_date_lit color 2 , 232 sy-vline,
233 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED color 2 , 245 sy-vline,
246 wa_final-fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 258 sy-vline COLOR 2,
259 wa_final-km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 271 sy-vline,
272 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED , 286 sy-vline.
endon.
endloop.
refresh i_final.
clear i_final.
FORM prepare_final_rec USING p_mode TYPE char1.
ascending ***************************
if wa_data-recdu ='KM' ." and wa_data-cancl ne 'X'.
move wa_data-idate to wa_final-min_date_km .
move wa_data-recdv to wa_final-min_km.
read table i_final into wa_final index sy-tabix.
move wa_data-idate to wa_final-max_date_km .
move wa_data-recdv to wa_final-max_km.
append wa_final to i_final.
endif.
wa_final-t_max_min_km = wa_final-min_km - wa_final-max_km .
if wa_data-recdu ='H' .
move wa_data-equnr to wa_final-equnr.
move wa_data-eqktx to wa_final-eqktx.
move wa_data-eqfnr to wa_final-eqfnr.
move wa_data-idate to wa_final-min_date_hr.
move wa_data-recdv to wa_final-min_hr.
append wa_final to i_final.
sort i_final by equnr max_km descending.
read table i_final into wa_final index sy-tabix.
move wa_data-idate to wa_final-max_date_hr.
move wa_data-recdv to wa_final-max_hr.
append wa_final to i_final.
"append wa_final to i_final.
endif.
wa_final-t_max_min_hr = wa_final-min_hr - wa_final-max_hr .
IF p_mode = 'A'.
wa_final-equnr = wa_data-equnr.
wa_final-eqktx = wa_data-eqktx.
wa_final-eqfnr = wa_data-eqfnr.
wa_final-t_max_min_km = wa_final-min_km - wa_final-max_km .
wa_final-t_max_min_hr = wa_final-min_hr - wa_final-max_hr.
" wa_final-fuel_con = wa_final-max_lit + min_lit.
" wa_final-km_l = ( wa_final-t_max_min_km / wa_final-fuel_con ) .
" wa_final-lit_per_hr = ( wa_final-fuel_con / t_max_min_hr ).
APPEND wa_final TO i_final.
ELSE.
MODIFY i_final FROM wa_final
TRANSPORTING
max_date_km
min_date_km
max_date_lit
min_date_lit
max_date_hr
min_date_hr
fuel_con
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