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

Getting data into internal table wa_final

Former Member
0 Likes
580

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;

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
508

Hi,

Use AT NEW command inside LOOP ENDLOOP statement.

2 REPLIES 2
Read only

Former Member
0 Likes
509

Hi,

Use AT NEW command inside LOOP ENDLOOP statement.

Read only

Former Member
0 Likes
508

Hi

Thanks , where to use the loop and endloop.

I want individual data to go into wa_final but confused how to start to get

min date..max..date..minkm_value..maxkm_value...total min-max,

min_hr,max_hr,total diff , min_lit,max_lit, total as in the program but how the data will go according to the values in wa_final

regards

Piroz