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

Logic- SUMMING UP -Control Break

Former Member
0 Likes
746

Hi,

In the following code if value of the field (T_DATA-JUHGSBEST) is '999'. I don't want to consider while summing up .

How can we achieve this? Right now If I code like this..It is lready calculating the SUM.

SORT T_DATA BY MATNR SPTAG.

LOOP AT T_DATA.

MOVE T_DATA TO WA_DATA.

AT END OF MATNR.

SUM.

T_OUTPUT-MATNR = WA_DATA-MATNR .

T_OUTPUT-MGVBR = T_DATA-MGVBR.

T_OUTPUT-WGVBR = T_DATA-WGVBR.

IF T_DATA-JUHGSBEST NE '999'.

T_OUTPUT-JUHGSBEST = T_DATA-JUHGSBEST.

ENDIF.

APPEND T_OUTPUT.

CLEAR T_OUTPUT.

CLEAR : WA_DATA.

ENDAT.

ENDLOOP.

Regards

Vara

Message was edited by:

Vara K

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
719

Hi,

Try this code ...

DATA : TEMP_DATA LIKE T_DATA OCCURS 0 WITH HEADER LINE.

TEMP_DATA[] = T_DATA[].

DELETE T_DATA WHERE JUHGSBEST EQ '999'.

SORT T_DATA BY MATNR SPTAG.

LOOP AT T_DATA.

MOVE T_DATA TO WA_DATA.

AT END OF MATNR.

SUM.

T_OUTPUT-MATNR = WA_DATA-MATNR .

T_OUTPUT-MGVBR = T_DATA-MGVBR.

T_OUTPUT-WGVBR = T_DATA-WGVBR.

IF T_DATA-JUHGSBEST NE '999'.

T_OUTPUT-JUHGSBEST = T_DATA-JUHGSBEST.

ENDIF.

APPEND T_OUTPUT.

CLEAR T_OUTPUT.

CLEAR : WA_DATA.

ENDAT.

ENDLOOP.

Regards,

Vind.

Hi,

In the following code if value of the field (T_DATA-JUHGSBEST) is '999'. I don't want to consider while summing up .

How can we achieve this? Right now If I code like this..It is lready calculating the SUM.

SORT T_DATA BY MATNR SPTAG.

LOOP AT T_DATA.

MOVE T_DATA TO WA_DATA.

AT END OF MATNR.

SUM.

T_OUTPUT-MATNR = WA_DATA-MATNR .

T_OUTPUT-MGVBR = T_DATA-MGVBR.

T_OUTPUT-WGVBR = T_DATA-WGVBR.

IF T_DATA-JUHGSBEST NE '999'.

T_OUTPUT-JUHGSBEST = T_DATA-JUHGSBEST.

ENDIF.

APPEND T_OUTPUT.

CLEAR T_OUTPUT.

CLEAR : WA_DATA.

ENDAT.

ENDLOOP.

Regards

Vara

Message was edited by:

Vara K

5 REPLIES 5
Read only

Former Member
0 Likes
720

Hi,

Try this code ...

DATA : TEMP_DATA LIKE T_DATA OCCURS 0 WITH HEADER LINE.

TEMP_DATA[] = T_DATA[].

DELETE T_DATA WHERE JUHGSBEST EQ '999'.

SORT T_DATA BY MATNR SPTAG.

LOOP AT T_DATA.

MOVE T_DATA TO WA_DATA.

AT END OF MATNR.

SUM.

T_OUTPUT-MATNR = WA_DATA-MATNR .

T_OUTPUT-MGVBR = T_DATA-MGVBR.

T_OUTPUT-WGVBR = T_DATA-WGVBR.

IF T_DATA-JUHGSBEST NE '999'.

T_OUTPUT-JUHGSBEST = T_DATA-JUHGSBEST.

ENDIF.

APPEND T_OUTPUT.

CLEAR T_OUTPUT.

CLEAR : WA_DATA.

ENDAT.

ENDLOOP.

Regards,

Vind.

Read only

Former Member
0 Likes
719

SORT T_DATA BY MATNR SPTAG.

LOOP AT T_DATA.

IF T_DATA-JUHGSBEST NE '999'.

MOVE T_DATA TO WA_DATA.

AT END OF MATNR.

SUM.

T_OUTPUT-MATNR = WA_DATA-MATNR .

T_OUTPUT-MGVBR = T_DATA-MGVBR.

T_OUTPUT-WGVBR = T_DATA-WGVBR.

T_OUTPUT-JUHGSBEST = T_DATA-JUHGSBEST.

ENDIF.

APPEND T_OUTPUT.

CLEAR T_OUTPUT.

CLEAR : WA_DATA.

ENDAT.

ENDLOOP.

Read only

Former Member
0 Likes
719

Hi,

Please try this.


DELETE T_DATA WHERE JUHGSBEST EQ '999'.

SORT T_DATA BY MATNR SPTAG. 

LOOP AT T_DATA.
   MOVE T_DATA TO WA_DATA.

   AT END OF MATNR.
      SUM.
      T_OUTPUT-MATNR = WA_DATA-MATNR .
      T_OUTPUT-MGVBR = T_DATA-MGVBR.
      T_OUTPUT-WGVBR = T_DATA-WGVBR.

      APPEND T_OUTPUT.
      CLEAR T_OUTPUT.
      CLEAR : WA_DATA.
   ENDAT.

ENDLOOP.

Regards,

Ferry Lianto

Read only

Former Member
0 Likes
719

Hi,

try this:

loop at itab.

at end of matnr.

if t_data-juhgsbest ne '999'.

sum.

endif.

endat.

endloop.

regards,

Bhaskar

Read only

0 Likes
719

Hi,

I have other fields where i need to SUM-UP.So I don't want to delete T_DATA.

This issue is just related to particular column (field).

regards

Vara

Message was edited by:

Vara K