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

Collect statement coding logic correction required

satvik_panchal
Participant
0 Likes
525

Hello experts,         

   The code snippet for my collect statement based on condition is given below:

********Logic for moving G/L Amount into their respective G/L A/C Numbers**********

loop at it_final into wa_final.
if wa_final-hkont = '1560510200'.

    move wa_final-bukrs to wa_final1-bukrs.
    move wa_final-gjahr to wa_final1-gjahr.
    move wa_final-belnr to wa_final1-belnr.
    move wa_final-budat to wa_final1-budat.
    move wa_final-bldat to wa_final1-bldat.
    move wa_final-gsber to wa_final1-gsber.
    move wa_final-xblnr to wa_final1-xblnr.
    move wa_final-blart to wa_final1-blart.
    move wa_final-mwskz to wa_final1-mwskz.
    move wa_final-pswbt to wa_final1-gl_ac1. "
    move wa_final-bktxt to wa_final1-bktxt.
    move wa_final-text1 to wa_final1-text1.
    move wa_final-lifnr to wa_final1-lifnr.
    move wa_final-amount to wa_final1-amount.
    move wa_final-name1 to wa_final1-name1.
   collect wa_final1 into it_final1.

   clear wa_final1.
   endif.

if wa_final-hkont = '1560510300'.

    move wa_final-bukrs to wa_final1-bukrs.
    move wa_final-gjahr to wa_final1-gjahr.
    move wa_final-belnr to wa_final1-belnr.
    move wa_final-budat to wa_final1-budat.
    move wa_final-bldat to wa_final1-bldat.
    move wa_final-gsber to wa_final1-gsber.
    move wa_final-xblnr to wa_final1-xblnr.
    move wa_final-blart to wa_final1-blart.
    move wa_final-mwskz to wa_final1-mwskz.
    move wa_final-pswbt to wa_final1-gl_ac2. "
    move wa_final-bktxt to wa_final1-bktxt.
    move wa_final-text1 to wa_final1-text1.
    move wa_final-lifnr to wa_final1-lifnr.
    move wa_final-amount to wa_final1-amount.
    move wa_final-name1 to wa_final1-name1.
   collect wa_final1 into it_final1.

   clear wa_final1.
   endif.

if wa_final-hkont = '1560510400'.

    move wa_final-bukrs to wa_final1-bukrs.
    move wa_final-gjahr to wa_final1-gjahr.
    move wa_final-belnr to wa_final1-belnr.
    move wa_final-budat to wa_final1-budat.
    move wa_final-bldat to wa_final1-bldat.
    move wa_final-gsber to wa_final1-gsber.
    move wa_final-xblnr to wa_final1-xblnr.
    move wa_final-blart to wa_final1-blart.
    move wa_final-mwskz to wa_final1-mwskz.
    move wa_final-pswbt to wa_final1-gl_ac3. "
    move wa_final-bktxt to wa_final1-bktxt.
    move wa_final-text1 to wa_final1-text1.
    move wa_final-lifnr to wa_final1-lifnr.
    move wa_final-amount to wa_final1-amount.
    move wa_final-name1 to wa_final1-name1.
   collect wa_final1 into it_final1.

   clear wa_final1.
   endif.
  endloop.


The above coding sums up the 'pswbt' .i.e. the gl amount field which is correct.

But the problem is with the ''amount field.

The 'amount' field is getting mutiplied by 3 of the original value in the field catalog.

So what changes should be done in my coding above to fetch the correct value.

Also data type of amount field is type p.

Thanks and regards,

Satvik


3 REPLIES 3
Read only

Former Member
0 Likes
487

hi satvik,

obviously you have placed three collect statements(same it_final1) try to split and place the values again by looping.

Thanks,

Sankaresh S

Read only

former_member189905
Participant
0 Likes
487

Hi satvik, 

what is the amount that you get in result and the amount that you want ? 

Your amount is sum like gl_ac3. 

Regards,

Read only

0 Likes
487

Hello Khalid,

   For example:

    The amount displayed in the report output is 36000. The actual amount to be fetched is 12000.

As far as gl acc is concerned, for 1 gl number, there are multiple gl amounts. So the collect statement is adding it and displaying the correct value.

Thanks and regards,

Satvik