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

program to produce multiplication table

Former Member
0 Likes
6,189

Hi all,

somebody tell me how to produce a multiplication table in abap. I tried doing this, the values are coming to the internal table but ia am unable to get the output.

Please help me out cos i have to use a similar looping condition in my bdc work.

DATA : BEGIN OF ITAB OCCURS 0,

NUM1 TYPE I ,

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

DO 10 TIMES .

ITAB-NUM1 = ITAB-NUM1 + 1 .

DO 10 TIMES .

ITAB-NUM2 = ITAB-NUM2 + 1 .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

ENDDO .

IF ITAB-NUM2 IS NOT INITIAL .

ITAB-NUM2 = 0 .

ENDIF .

ENDDO .

ENDDO .

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .

Regards

Tharanatha H.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,145

Hi,

try this code.

REPORT ZGS_TEST2.

Parameters : p_table type i.

data : result type i.

do 10 times.

result = p_table * sy-index.

write 😕 P_table,'X',sy-index,'=',result.

clear result.

enddo.

Reward points if useful, you will get one point.

Aleem.

Hi all,

somebody tell me how to produce a multiplication table in abap. I tried doing this, the values are coming to the internal table but ia am unable to get the output.

Please help me out cos i have to use a similar looping condition in my bdc work.

DATA : BEGIN OF ITAB OCCURS 0,

NUM1 TYPE I ,

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

DO 10 TIMES .

ITAB-NUM1 = ITAB-NUM1 + 1 .

DO 10 TIMES .

ITAB-NUM2 = ITAB-NUM2 + 1 .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

ENDDO .

IF ITAB-NUM2 IS NOT INITIAL .

ITAB-NUM2 = 0 .

ENDIF .

ENDDO .

ENDDO .

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .

Regards

Tharanatha H.

10 REPLIES 10
Read only

Former Member
0 Likes
3,145

i think this is because you are not appending the value in itab.

DATA : BEGIN OF ITAB OCCURS 0,

NUM1 TYPE I ,

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

DO 10 TIMES .

ITAB-NUM1 = ITAB-NUM1 + 1 .

DO 10 TIMES .

ITAB-NUM2 = ITAB-NUM2 + 1 .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

ENDDO .

IF ITAB-NUM2 IS NOT INITIAL .

ITAB-NUM2 = 0 .

ENDIF .

ENDDO .

<b>append itab.</b>

ENDDO .

"or if you want only one record then use append itab here.

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .

regards

shiba dutta

Read only

Former Member
0 Likes
3,145

Hi

DATA : BEGIN OF ITAB OCCURS 0,

NUM1 TYPE I ,

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

DO 10 TIMES .

ITAB-NUM1 = ITAB-NUM1 + 1 .

clear itab itab-num2.

DO 10 TIMES .

ITAB-NUM2 = ITAB-NUM2 + 1 .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

append itab.

ENDDO .

ENDDO .

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .

Regards

Raj

Read only

0 Likes
3,145

Thanks raj, I got the output but your clear statement did not work it was supposed to be clear itab-num2.

Regards

Tharanatha H.

Read only

Former Member
0 Likes
3,145

HI,

do it like this.

DATA : BEGIN OF ITAB OCCURS 0,

NUM1 TYPE I ,

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

DO 10 TIMES .

ITAB-NUM1 = ITAB-NUM1 + 1 .

DO 10 TIMES .

ITAB-NUM2 = ITAB-NUM2 + 1 .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

<b>append itab.</b>

ENDDO .

IF ITAB-NUM2 IS NOT INITIAL .

ITAB-NUM2 = 0 .

ENDIF .

ENDDO .

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .

<b>reward if helpful</b>

rgds,

bharat.

Read only

Former Member
0 Likes
3,146

Hi,

try this code.

REPORT ZGS_TEST2.

Parameters : p_table type i.

data : result type i.

do 10 times.

result = p_table * sy-index.

write 😕 P_table,'X',sy-index,'=',result.

clear result.

enddo.

Reward points if useful, you will get one point.

Aleem.

Read only

0 Likes
3,145

Hi aleem,

Thanks for such a compact and simple code. full points.

Read only

Former Member
0 Likes
3,145

hi there,

i think u forgotten to append the work area(ITAB) to table ITAB.

Use the Append statement in the outside Do-- Enddo.

Read only

Pawan_Kesari
Active Contributor
0 Likes
3,145

Try this..

REPORT zreport10 .

DATA : BEGIN OF itab OCCURS 0,

num1 TYPE i ,

num2 TYPE i ,

num3 TYPE i ,

END OF itab .

DO 10 TIMES .

CLEAR itab-num2 .

itab-num1 = itab-num1 + 1 .

DO 10 TIMES .

itab-num2 = itab-num2 + 1 .

itab-num3 = itab-num1 * itab-num2 .

APPEND itab .

ENDDO .

ENDDO .

LOOP AT itab .

WRITE : / itab-num1, '*' , itab-num2 , '=' , itab-num3 .

ENDLOOP .

Read only

Former Member
0 Likes
3,145

Please go through this Bdc program in this i had used the internal table of your required logic ..

REPORT Y730_BDC5 .
*HANDLING TABLE CONTROL IN BDC
DATA : BEGIN OF IT_DUMMY OCCURS 0,
       DUMMY(100) TYPE C,
       END OF IT_DUMMY.
DATA : BEGIN OF IT_XK01 OCCURS 0,
       LIFNR(10) TYPE C,
       BUKRS(4)  TYPE C,
       EKORG(4)  TYPE C,
       KTOKK(4)  TYPE C,
       NAME1(30) TYPE C,
       SORTL(10) TYPE C,
       LAND1(3)  TYPE C,
       SPRAS(2)  TYPE C,
       AKONT(6)  TYPE C,
       FDGRV(2)  TYPE C,
       WAERS(3)  TYPE C,
       END OF IT_XK01,
       BEGIN OF IT_BANK OCCURS 0,
       BANKS(3)  TYPE C,
       BANKL(10) TYPE C,
       BANKN(10) TYPE C,
       KOINH(30) TYPE C,
       LIFNR(10) TYPE C,
       END OF IT_BANK.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
       IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'WS_UPLOAD'
 EXPORTING
   FILENAME                      = 'C:VENDOR.TXT'
   FILETYPE                      = 'ASC'
 TABLES
  DATA_TAB                      = IT_DUMMY.

<b>LOOP AT IT_DUMMY.

   IF IT_DUMMY-DUMMY+0(2) = '11'.</b>
    IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
    IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
    IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
    IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
    IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
    IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
    IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
    IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
    IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
    IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
    IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
    APPEND IT_XK01.
  ELSE.
    IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
    IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
    IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
    IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
    IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
    APPEND IT_BANK..

<b> ENDIF.

ENDLOOP.</b>

LOOP AT IT_XK01.
REFRESH IT_BDCDATA.
perform bdc_dynpro      using 'SAPMF02K' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              'RF02K-REF_LIFNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'RF02K-LIFNR'
                              IT_XK01-LIFNR.
perform bdc_field       using 'RF02K-BUKRS'
                              IT_XK01-BUKRS.
perform bdc_field       using 'RF02K-EKORG'
                              IT_XK01-EKORG.
perform bdc_field       using 'RF02K-KTOKK'
                              IT_XK01-KTOKK.
perform bdc_dynpro      using 'SAPMF02K' '0110'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFA1-TELX1'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'LFA1-NAME1'
                              IT_XK01-NAME1.
perform bdc_field       using 'LFA1-SORTL'
                              IT_XK01-SORTL.
perform bdc_field       using 'LFA1-LAND1'
                              IT_XK01-LAND1.
perform bdc_field       using 'LFA1-SPRAS'
                              IT_XK01-SPRAS.
perform bdc_dynpro      using 'SAPMF02K' '0120'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFA1-KUNNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_dynpro      using 'SAPMF02K' '0130'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFBK-KOINH(02)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
DATA : FNAM(20) TYPE C,
       IDX      TYPE C.
  MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
  CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
  perform bdc_field       using FNAM
                                IT_BANK-BANKS.

  CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
  perform bdc_field       using FNAM
                                IT_BANK-BANKL.

  CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
  perform bdc_field       using FNAM
                                IT_BANK-BANKN.

  CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
  perform bdc_field       using FNAM
                                IT_BANK-KOINH.
  IDX = IDX + 1.
ENDLOOP.

perform bdc_dynpro      using 'SAPMF02K' '0130'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFBK-BANKS(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_dynpro      using 'SAPMF02K' '0210'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFB1-FDGRV'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'LFB1-AKONT'
                              IT_XK01-AKONT.
perform bdc_field       using 'LFB1-FDGRV'
                              IT_XK01-FDGRV.
perform bdc_dynpro      using 'SAPMF02K' '0215'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFB1-ZTERM'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_dynpro      using 'SAPMF02K' '0220'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFB5-MAHNA'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_dynpro      using 'SAPMF02K' '0310'.
perform bdc_field       using 'BDC_CURSOR'
                              'LFM1-WAERS'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'LFM1-WAERS'
                              IT_XK01-WAERS.
perform bdc_dynpro      using 'SAPMF02K' '0320'.
perform bdc_field       using 'BDC_CURSOR'
                              'WYT3-PARVW(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_dynpro      using 'SAPLSPO1' '0300'.
perform bdc_field       using 'BDC_OKCODE'
                              '=YES'.
CALL TRANSACTION 'XK01' USING IT_BDCDATA
                        MODE  'A'
                       UPDATE 'S'
                     MESSAGES INTO IT_BDCMSGCOLL.
ENDLOOP.

FORM BDC_DYNPRO USING PROG SCR.
  CLEAR IT_BDCDATA.
  IT_BDCDATA-PROGRAM = PROG.
  IT_BDCDATA-DYNPRO  = SCR.
  IT_BDCDATA-DYNBEGIN = 'X'.
  APPEND IT_BDCDATA.
ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.
  CLEAR IT_BDCDATA.
  IT_BDCDATA-FNAM = FNAM.
  IT_BDCDATA-FVAL  = FVAL.
  APPEND IT_BDCDATA.
ENDFORM.

reward points if it is usefull ....

Girish

Read only

Former Member
0 Likes
3,145

Hi,

This code will help you to produce multiplication table.

REPORT ZREVERSE LINE-SIZE 500.

DATA:num1 type i,

num2 type i value 1,

mul type i.

PARAMETER: ROW(5),

COLUM(5).

DO ROW times.

num1 = num1 + 1.

DO COLUM TIMES.

mul = num1 * num2.

write: '', mul.

num2 = num2 + 1.

enddo.

skip.

ENDDO.

IF HELPFULL REWARD