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

REPORT

Former Member
0 Likes
568

hi experts,

m sendin u the code...its not workin..plz help me out.

REPORT ZFI_R_RAMAN .

DATA: BEGIN OF ITAB OCCURS 0,

ORDER TYPE C,

MAT TYPE C,

CD TYPE C,

QTY TYPE C,

CQUAN TYPE C,

DQUAN TYPE C,

CRATE TYPE C,

DRATE TYPE C,

SUM TYPE P DECIMALS 2,

RATE TYPE P DECIMALS 3,

END OF ITAB.

DATA: WCREDIT LIKE ITAB-QTY,

WDEBIT LIKE ITAB-QTY,

WACREDIT LIKE ITAB-RATE,

WADEBIT LIKE ITAB-RATE.

ITAB-ORDER = '01'.

ITAB-MAT = 'MA'.

ITAB-CD = 'H'.

ITAB-QTY = '2'.

ITAB-RATE = '1.8'.

APPEND ITAB.

ITAB-ORDER = '02'.

ITAB-MAT = 'MA'.

ITAB-CD = 'S'.

ITAB-QTY = '1'.

ITAB-RATE = '1.7'.

APPEND ITAB.

ITAB-ORDER = '03'.

ITAB-MAT = 'MA'.

ITAB-CD = 'H'.

ITAB-QTY = '3'.

ITAB-RATE = '1.8'.

APPEND ITAB.

ITAB-ORDER = '04'.

ITAB-MAT = 'SA'.

ITAB-CD = 'H'.

ITAB-QTY = '4'.

ITAB-RATE = '1.9'.

APPEND ITAB.

ITAB-ORDER = '05'.

ITAB-MAT = 'SA'.

ITAB-CD = 'S'.

ITAB-QTY = '4'.

ITAB-RATE = '20.0'.

APPEND ITAB.

ITAB-ORDER = '06'.

ITAB-MAT = 'MA'.

ITAB-CD = 'S'.

ITAB-QTY = '2'.

ITAB-RATE = '4.0'.

APPEND ITAB.

ITAB-ORDER = '07'.

ITAB-MAT = 'SA'.

ITAB-CD = 'H'.

ITAB-QTY = '3'.

ITAB-RATE = '5.0'.

APPEND ITAB.

ITAB-ORDER = '08'.

ITAB-MAT = 'JA'.

ITAB-CD = 'H'.

ITAB-QTY = '2'.

ITAB-RATE = '1.8'.

APPEND ITAB.

ITAB-ORDER = '09'.

ITAB-MAT = 'JA'.

ITAB-CD = 'S'.

ITAB-QTY = '2'.

ITAB-RATE = '1.8'.

APPEND ITAB.

LOOP AT ITAB.

IF ITAB-CD = 'H'.

WCREDIT = WCREDIT + ITAB-QTY.

WACREDIT = WACREDIT + ITAB-RATE.

ELSEIF ITAB-CD = 'S'.

WDEBIT = WDEBIT + ITAB-QTY.

WADEBIT = WADEBIT + ITAB-RATE.

ENDIF.

ITAB-CQUAN = WCREDIT.

ITAB-DQUAN = WDEBIT.

ITAB-CRATE = WACREDIT.

ITAB-DRATE = WADEBIT.

ITAB-SUM = ITAB-CRATE - ITAB-DRATE.

APPEND ITAB.

CLEAR: WACREDIT,WADEBIT,WCREDIT,WDEBIT.

ENDLOOP.

LOOP AT ITAB.

WRITE:/ ITAB-ORDER,ITAB-CQUAN,ITAB-DQUAN,ITAB-CRATE,ITAB-DRATE,ITAB-SUM.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
540

Hi,

your definition CRATE TYPE C,

DRATE TYPE C,

is wrong. Both must be a p decimals 2 or like ITAB-RATE

Regards

Nicole

6 REPLIES 6
Read only

Former Member
0 Likes
540

hi.

please tell me what is the problem, r u getting error or wrong ANS.

use this code.

LOOP AT ITAB.

IF ITAB-CD = 'H'.

WCREDIT = WCREDIT + ITAB-QTY.

WACREDIT = WACREDIT + ITAB-RATE.

ELSEIF ITAB-CD = 'S'.

WDEBIT = WDEBIT + ITAB-QTY.

WADEBIT = WADEBIT + ITAB-RATE.

ENDIF.

ITAB-CQUAN = WCREDIT.

ITAB-DQUAN = WDEBIT.

ITAB-CRATE = WACREDIT.

ITAB-DRATE = WADEBIT.

ITAB-SUM = ITAB-CRATE - ITAB-DRATE.

<b>modify ITAB.</b>

CLEAR: WACREDIT,WADEBIT,WCREDIT,WDEBIT.

ENDLOOP.

Read only

0 Likes
540

it gives a short dump...unable to interpret '*' as an error

Read only

0 Likes
540

Hi,

see my answer below...it's the wrong definition.

Read only

0 Likes
540

Hi Prakash ,

Make the following changes in the IT decleration

<b>CRATE TYPE P DECIMALS 2,

DRATE TYPE P DECIMALS 2,</b>

you have declared the varaibles as char 1 , and are trying to assign a numeric value to it and hence it is taking the value as * and the program dumps.

And in the loop replace the APPEND ITAB , with MODIFY ITAB. beacuse in this case the append statement will result in an infinite loop.

For your ref i am pasing the modified code for you

DATA: BEGIN OF ITAB OCCURS 0,
ORDER TYPE C,
MAT TYPE C,
CD TYPE C,
QTY TYPE C,
CQUAN TYPE C,
DQUAN TYPE C,
CRATE TYPE P DECIMALS 2,
DRATE TYPE P DECIMALS 2,
SUM TYPE P DECIMALS 2,
RATE TYPE P DECIMALS 3,
END OF ITAB.


DATA: WCREDIT LIKE ITAB-QTY,
WDEBIT LIKE ITAB-QTY,
WACREDIT LIKE ITAB-RATE,
WADEBIT LIKE ITAB-RATE.

ITAB-ORDER = '01'.
ITAB-MAT = 'MA'.
ITAB-CD = 'H'.
ITAB-QTY = '2'.
ITAB-RATE = '1.8'.
APPEND ITAB.


ITAB-ORDER = '02'.
ITAB-MAT = 'MA'.
ITAB-CD = 'S'.
ITAB-QTY = '1'.
ITAB-RATE = '1.7'.
APPEND ITAB.

ITAB-ORDER = '03'.
ITAB-MAT = 'MA'.
ITAB-CD = 'H'.
ITAB-QTY = '3'.
ITAB-RATE = '1.8'.
APPEND ITAB.

ITAB-ORDER = '04'.
ITAB-MAT = 'SA'.
ITAB-CD = 'H'.
ITAB-QTY = '4'.
ITAB-RATE = '1.9'.
APPEND ITAB.

ITAB-ORDER = '05'.
ITAB-MAT = 'SA'.
ITAB-CD = 'S'.
ITAB-QTY = '4'.
ITAB-RATE = '20.0'.
APPEND ITAB.

ITAB-ORDER = '06'.
ITAB-MAT = 'MA'.
ITAB-CD = 'S'.
ITAB-QTY = '2'.
ITAB-RATE = '4.0'.
APPEND ITAB.

ITAB-ORDER = '07'.
ITAB-MAT = 'SA'.
ITAB-CD = 'H'.
ITAB-QTY = '3'.
ITAB-RATE = '5.0'.
APPEND ITAB.

ITAB-ORDER = '08'.
ITAB-MAT = 'JA'.
ITAB-CD = 'H'.
ITAB-QTY = '2'.
ITAB-RATE = '1.8'.
APPEND ITAB.

ITAB-ORDER = '09'.
ITAB-MAT = 'JA'.
ITAB-CD = 'S'.
ITAB-QTY = '2'.
ITAB-RATE = '1.8'.
APPEND ITAB.


LOOP AT ITAB.
IF ITAB-CD = 'H'.
WCREDIT = WCREDIT + ITAB-QTY.
WACREDIT = WACREDIT + ITAB-RATE.
ELSEIF ITAB-CD = 'S'.
WDEBIT = WDEBIT + ITAB-QTY.
WADEBIT = WADEBIT + ITAB-RATE.
ENDIF.

ITAB-CQUAN = WCREDIT.
ITAB-DQUAN = WDEBIT.
ITAB-CRATE = WACREDIT.
ITAB-DRATE = WADEBIT.
ITAB-SUM = ITAB-CRATE - ITAB-DRATE.
MODIFY ITAB.

CLEAR: WACREDIT,WADEBIT,WCREDIT,WDEBIT.

ENDLOOP.

LOOP AT ITAB.
WRITE:/ ITAB-ORDER,ITAB-CQUAN,ITAB-DQUAN,ITAB-CRATE,ITAB-DRATE,ITAB-SUM.

endloop.

Reward points if helpful and feel free to revert back in case of further queries,

Regards

Arun

Read only

Former Member
0 Likes
540

hi,

use MODIFY STATEMENT in place of append as ur changing some values. if u use APPEND then it will add that changes as new records at last.

ITAB-CQUAN = WCREDIT.

ITAB-DQUAN = WDEBIT.

ITAB-CRATE = WACREDIT.

ITAB-DRATE = WADEBIT.

ITAB-SUM = ITAB-CRATE - ITAB-DRATE.

MODIFY ITAB. ////////// NOT APPEND ITAB.

IF HELPFUL REWARD SOME POINTS.

with regards,

Suresh Aluri.

Read only

Former Member
0 Likes
541

Hi,

your definition CRATE TYPE C,

DRATE TYPE C,

is wrong. Both must be a p decimals 2 or like ITAB-RATE

Regards

Nicole