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

Control statments

Former Member
0 Likes
332

Hi ,

I am looking internal table or output as

Field1 field2 amount cnt1 cnt2

A ff 23.40 3 1

A dd 0 3 1

A ggg 66.8 3 1

AB ff 0 2 2

AB dd 0 2 2

c fff 23.40 3 1

c ddg 0 3 1

c ggf 66.8 3 1

AB ff 1.3 2 0

AB dd 1.6 2 0

Cnt2 gives no of zero entries

cnt1 gives no of field1 netries

REPORT ZTEST.

data : begin of inttab occurs 0,

field1(10) type c,

field2(10) type c,

betrw type betrw_KK,

cnt1 type i,

cnt2 type i,

end of itab.

itab-field1 = 'REST'.

itab-field2 = 'ASDFu2019.

itab-betrw = '0.00u2019.

append itab.

itab-field1 = 'REST'.

itab-field2 = 'ASDFu2019.

itab-betrw = '0.00u2019.

append itab.

itab-field1 = 'REST'.

itab-field2 = 'ASDRFu2019.

itab-betrw = '123.34'.

append itab.

itab-field1 = 'REST'.

itab-field2 = 'ASDTFu2019.

itab-betrw = '4.00u2019.

append itab.

itab-field1 = 'REST'.

itab-field2 = 'ASDVFu2019.

itab-betrw = '0.00u2019.

append itab.

itab-field1 = 'GOOD'.

itab-field2 = 'AGTSDFu2019.

itab-betrw = '123.34'.

append itab.

itab-field1 = 'GOOD'.

itab-field2 = 'AGSYYDFu2019.

itab-betrw = '0.00'.

append itab.

itab-field1 = 'GOOD'.

itab-field2 = 'AGSYYDFu2019.

itab-betrw = '0.00'.

append itab.

itab-field1 = 'GOOD'.

itab-field2 = 'AGSYYDFu2019.

itab-betrw = '1883.34'.

append itab.

itab-field1 = 'HELLO'.

itab-field2 = 'AGSYYDFu2019.

itab-betrw = '0.00'.

append itab.

itab-field1 = 'HELLO'.

itab-field2 = 'APPGSYYDFu2019.

itab-betrw = '0.00'.

append itab.

itab-field1 = 'HELLO'.

itab-field2 = 'AGSDFu2019.

itab-betrw = '1883.34'.

append itab.

Thanks,

Asha

1 ACCEPTED SOLUTION
Read only

venkat_o
Active Contributor
0 Likes
302

Hi, <li>Try this way.


REPORT ztest.
DATA : BEGIN OF itab OCCURS 0,
        field1(10) TYPE c,
        field2(10) TYPE c,
        betrw TYPE betrw_kk,
        cnt1 TYPE i,
        cnt2 TYPE i,
       END OF itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDRF'.
itab-betrw = '123.34'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDTF'.
itab-betrw = '4.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDVF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGTSDF'.
itab-betrw = '123.34'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '1883.34'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'APPGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'AGSDF'.
itab-betrw = '1883.34'.
APPEND itab.

LOOP AT itab.
  itab-cnt1 = itab-cnt1 + 1.
  IF itab-betrw IS INITIAL.
    itab-cnt2 = itab-cnt2 + 1.
  ENDIF.
  WRITE:/ itab-field1,itab-field2,itab-betrw.

  MODIFY itab INDEX sy-tabix TRANSPORTING cnt1 cnt2.
  AT END OF field1.
    SUM.
    WRITE:/23 itab-betrw,itab-cnt1, itab-cnt2.
    CLEAR itab.
  ENDAT.
ENDLOOP.
Thanks Venkat.O

1 REPLY 1
Read only

venkat_o
Active Contributor
0 Likes
303

Hi, <li>Try this way.


REPORT ztest.
DATA : BEGIN OF itab OCCURS 0,
        field1(10) TYPE c,
        field2(10) TYPE c,
        betrw TYPE betrw_kk,
        cnt1 TYPE i,
        cnt2 TYPE i,
       END OF itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDRF'.
itab-betrw = '123.34'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDTF'.
itab-betrw = '4.00'.
APPEND itab.

itab-field1 = 'REST'.
itab-field2 = 'ASDVF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGTSDF'.
itab-betrw = '123.34'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'GOOD'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '1883.34'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'AGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'APPGSYYDF'.
itab-betrw = '0.00'.
APPEND itab.

itab-field1 = 'HELLO'.
itab-field2 = 'AGSDF'.
itab-betrw = '1883.34'.
APPEND itab.

LOOP AT itab.
  itab-cnt1 = itab-cnt1 + 1.
  IF itab-betrw IS INITIAL.
    itab-cnt2 = itab-cnt2 + 1.
  ENDIF.
  WRITE:/ itab-field1,itab-field2,itab-betrw.

  MODIFY itab INDEX sy-tabix TRANSPORTING cnt1 cnt2.
  AT END OF field1.
    SUM.
    WRITE:/23 itab-betrw,itab-cnt1, itab-cnt2.
    CLEAR itab.
  ENDAT.
ENDLOOP.
Thanks Venkat.O