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

REPORTS

Former Member
0 Likes
2,588

Hi ,

my prgmis syntactically correct but after executing i am not getting output plz check my code and reply

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDSELECT.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,552

Hi Gopal,

Plz find your corrected Code

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO IT_MARA

WHERE MATNR IN IT_MARA-MATNR.

ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

LOOP AT it_mara.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT WHERE MATNR EQ IT_MARA-MATNR.

ENDSELECT.

ENDLOOP.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

rgds

rajesh

Edited by: RAJESH KUMAR on Aug 6, 2008 10:31 AM

33 REPLIES 33
Read only

Former Member
0 Likes
2,552

Hi,

Try it this way:

START-OF-SELECTION.
SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO
IT_MARA WHERE MATNR in  S_MATNR  .

ENDSELECT.

you were using ' EQ IT_MARA-MATNR' instead of your selection criteria 'IN S_MATNR'.

and its better not to use SELECT ENDSELECT, instead go for

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE
IT_MARA WHERE MATNR in  S_MATNR

With luck,

Pritam.

Read only

Former Member
0 Likes
2,552

Hi,

I have changed the code you have written check it.

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR IN S_MATNR.

ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDSELECT.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

Regards,

Sujit

Read only

0 Likes
2,552

sorry still i am not getting o/p

Read only

0 Likes
2,552

Gopal,

yes you some wrong input above.

if anyone wrote SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR in S_MATNR.

ENDSELECT. than out put will not be generated.

this is the right way table should be there.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO table

IT_MARA WHERE MATNR in S_MATNR.

ENDSELECT.

did you try my above reply am sure it generates a output.

Amit

Read only

0 Likes
2,552

still i am not getting

Read only

0 Likes
2,552

I think it is not possible.

show your code once again.what did you paste?

AMit.

Read only

0 Likes
2,552

Hi Gopal,

Try the code which I have given. It's working fine for me.

Regards,

Chandra Sekhar

Read only

0 Likes
2,552

do it like this, its giving proper output:

TABLES:
  MARA.

DATA : BEGIN OF IT_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE IT_MARA
WHERE MATNR IN S_MATNR.


IF IT_MARA[] IS NOT INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO TABLE IT_MAKT FOR ALL
ENTRIES IN IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDIF.

LOOP AT IT_MARA.

WRITE :/ IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,
IT_MARA-MBRSH.

LOOP AT IT_MAKT WHERE MATNR EQ IT_MARA-MATNR.
WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.
ENDLOOP.
ENDLOOP.

With luck,

Pritam.

Read only

0 Likes
2,552

plz send some sample classical and interactive reports

Read only

0 Likes
2,552

Hi,

actually using bdc we find the screen details and fields but the question is how to find the index for a particular Tcode .

and other is

we can create only secondary indexes but how to see the primary index created for a table

plz reply

Read only

Former Member
0 Likes
2,552

hi gopal,

avoid using select .. endselect.

do like this.

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO TABLE IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDIF.

After getting values into it_mara and it_makt..

if u want to use nested loops then go for parallel cursors..

for parallel cursors i am sending u an example..

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

Read only

Former Member
0 Likes
2,552

Hi gopal,

Refer the following codes,that will solve your issue.

START-OF-SELECTION.

1. Use 'CORRESPONDING FIELDS OF TABLE ' Statment.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO CORRESPONDING FIELDS OF TABLE

IT_MARA WHERE MATNR EQ S_MATNR .

2. WHERE MATNR EQ S_MATNR .

3 . SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO INTO CORRESPONDING FIELDS OF TABLE IT_MAKT FOR ALL ENTRIES IN IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

Hope it is helps.

Regards,

T.D.M.

Read only

Former Member
0 Likes
2,552

Gopal,

this is working code just copy and paste,

REPORT ZZTEST_REP .
TABLES:mara.
DATA : BEGIN OF IT_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR mara-MATNR.

START-OF-SELECTION.
SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE
IT_MARA WHERE MATNR in S_MATNR."here you had problem also no end select should be there


IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN
IT_MARA WHERE MATNR EQ IT_MARA-MATNR.
ENDSELECT.
ENDIF.

LOOP AT IT_MARA.
WRITE :/ IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,
IT_MARA-MBRSH.
LOOP AT IT_MAKT.
WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.
ENDLOOP.
ENDLOOP.

Amit.

Read only

Former Member
0 Likes
2,552

Hi Gopal,

Change the code as:

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR IN S_MATNR.

ENDSELECT.

Regards,

Chandra Sekhar

Read only

Former Member
0 Likes
2,552

hi gopal,

avoid using select .. endselect.

do like this.

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE

IT_MARA WHERE MATNR IN IT_MARA-MATNR.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO TABLE IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDIF.

After getting values into it_mara and it_makt..

if u want to use nested loops then go for parallel cursors..

for parallel cursors i am sending u an example..

*FORM parallel_cursor.

*

  • DATA: bkpf_index LIKE sy-tabix,

  • bseg_index LIKE sy-tabix.

*

  • CLEAR: bkpf_reads,

  • bseg_reads.

*

  • SORT: bkpf_tab BY bukrs belnr gjahr,

  • bseg_tab BY bukrs belnr gjahr.

*

  • bseg_index = 1.

  • LOOP AT bkpf_tab

  • INTO bkpf_lin.

  • bkpf_reads = bkpf_reads + 1.

  • LOOP AT bseg_tab INTO bseg_lin FROM bseg_index.

  • IF bseg_lin-bukrs <> bkpf_lin-bukrs OR

  • bseg_lin-belnr <> bkpf_lin-belnr OR

  • bseg_lin-gjahr <> bkpf_lin-gjahr.

  • bseg_index = sy-tabix.

  • EXIT.

  • ELSE.

  • bseg_reads = bseg_reads + 1.

  • ENDIF.

  • ENDLOOP.

  • ENDLOOP.

*

Rgds.,

subash

Read only

Former Member
0 Likes
2,552

hi,

1. declair mara and makt in TABLES statement.

2. use internal table in your select query.

3. avoid nested loop.

Read only

sachin_mathapati
Contributor
0 Likes
2,552

Hi ,

Chk this code..


REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR 
              ERSDA
              ERNAM 
              MTART
              MBRSH 
              FROM MARA 
              INTO TABLE IT_MARA
              WHERE MATNR IN S_MATNR.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR 
             SPRAS 
             MAKTX 
             MAKTG 
             FROM MAKT
             INTO table IT_MAKT
             FOR ALL ENTRIES IN IT_MARA 
             WHERE MATNR EQ IT_MARA-MATNR.



LOOP AT IT_MARA.
WRITE :/ IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,
IT_MARA-MBRSH.
LOOP AT IT_MAKT.
WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.
ENDLOOP.
ENDLOOP.

ENDIF.

Read only

Former Member
0 Likes
2,552

Hi Gopal,

 REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.
SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO
IT_MARA WHERE MATNR EQ S_MATNR.
* use append statment here

append IT_MARA.
ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN
IT_MARA WHERE MATNR EQ IT_MARA-MATNR.
* use append statment here
append IT_MAKT.
ENDSELECT.
ENDIF.

LOOP AT IT_MARA.
WRITE :/ IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,
IT_MARA-MBRSH.
LOOP AT IT_MAKT.
WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.
ENDLOOP.
ENDLOOP....

Regards.

Eshwar.

Read only

Former Member
0 Likes
2,552

Hi,

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR in s_matnr.

append it_mara.<----


ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR in s_matnr.

append it_mara.<----


ENDSELECT.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

Try this code

Regards.

Jagadeesh.

Edited by: Jagadeesh on Aug 6, 2008 6:58 AM

Read only

0 Likes
2,552

sorry still i am not getting o/p

i am currently using version 4.6c

is this code doesnt support this version

Read only

0 Likes
2,552

Hi Gopal,

Try this code, this is working fine.

Remove SELECT-ENDSELECT and use SELECT .. INTO TABLE.

Change SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

Check this one.

Tables: MARA.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

DATA : BEGIN OF IT_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
END OF IT_MAKT.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH
FROM MARA
INTO table IT_MARA
WHERE MATNR in S_MATNR.


IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG
FROM MAKT
INTO table IT_MAKT
FOR ALL ENTRIES IN IT_MARA
WHERE MATNR EQ IT_MARA-MATNR.

ENDIF.

LOOP AT IT_MARA.
WRITE :/ IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,
IT_MARA-MBRSH.
LOOP AT IT_MAKT.
WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.
ENDLOOP.

Regards,

Chandra Sekhar

Read only

0 Likes
2,552

did you try with my first reply?

it should generate output.

Amit.

Read only

0 Likes
2,552

plz send some sample classical and interactive reports

Read only

learnsap
Active Participant
0 Likes
2,552

Hi Gopal,

Try this Code, I think this will solve your problem. I had done some changes in your code, which are highlighted.

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO TABLE IT_MARA

WHERE MATNR IN S_MATNR ."EQ IT_MARA-MATNR.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO TABLE IT_MAKT

FOR ALL ENTRIES IN IT_MARA

WHERE MATNR EQ IT_MARA-MATNR.

SORT IT_MAKT ASCENDING BY MATNR.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT WHERE MATNR = IT_MARA-MATNR.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

Regards,

Ramesh

Read only

Former Member
0 Likes
2,553

Hi Gopal,

Plz find your corrected Code

REPORT ZZTEST_REP .

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO IT_MARA

WHERE MATNR IN IT_MARA-MATNR.

ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

LOOP AT it_mara.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT WHERE MATNR EQ IT_MARA-MATNR.

ENDSELECT.

ENDLOOP.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

rgds

rajesh

Edited by: RAJESH KUMAR on Aug 6, 2008 10:31 AM

Read only

Former Member
0 Likes
2,552

Hi gopal,

try this..

tables mara.

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR mara-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH

FROM MARA INTO table IT_MARA WHERE MATNR in s_matnr.

IF NOT IT_MARA[] IS INITIAL.

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO table IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR EQ IT_MARA-MATNR.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT where matnr = IT_MARA-MATNR.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP

Read only

0 Likes
2,552

plz send some sample classical and interactive reports

Read only

Former Member
0 Likes
2,552

Hi,

1.Declaration Part remains the same as in your code.

2.You should append the internal table here and use in for select the data when using Select options.

SELECT-OPTIONS : S_MATNR FOR IT_MARA-MATNR.

/You should append the internal table here and use in for select the data when using Select Options/

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO

IT_MARA WHERE MATNR in S_MATNR.

append IT_MARA.

ENDSELECT.

IF NOT IT_MARA[] IS INITIAL.

/You should append the internal table here and use in for select the data when using Select Options/

SELECT MATNR SPRAS MAKTX MAKTG FROM MAKT INTO IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR = IT_MARA-MATNR.

append IT_MAKT.

ENDSELECT.

ENDIF.

write: 'Contents of Table IT_MARA',/.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

endloop.

write: /,/ 'Contents of Table IT_MAKT',/.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

Read only

Former Member
0 Likes
2,552

Hi,

use this given code..

you have to use INTO TABLE instead of INTO

that is only difference.

DATA : BEGIN OF IT_MARA OCCURS 0 ,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF IT_MARA.

DATA : BEGIN OF IT_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

SELECT-OPTIONS : S_MATNR FOR it_MARA-MATNR.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART MBRSH FROM MARA INTO table

IT_MARA WHERE MATNR in s_MATNR.

IF NOT IT_MARA[] IS INITIAL.

SELECT SPRAS MAKTX MAKTG FROM MAKT INTO table IT_MAKT FOR ALL ENTRIES IN

IT_MARA WHERE MATNR = IT_MARA-MATNR.

ENDIF.

LOOP AT IT_MARA.

WRITE 😕 IT_MARA-MATNR , IT_MARA-ERSDA, IT_MARA-ERNAM, IT_MARA-MTART,

IT_MARA-MBRSH.

LOOP AT IT_MAKT.

WRITE:/ IT_MAKT-SPRAS, IT_MAKT-MAKTX, IT_MAKT-MAKTG.

ENDLOOP.

ENDLOOP.

now it is working fine..

Regards,

venkat n

Read only

Former Member
0 Likes
2,552

Hi,

In your select statement you mentioned the condition as 'MATNR EQ IT_MARA-MATNR'. But IT_MARA-MATNR is not filled in your program so this select statement fails. If this select statement executed then only further code will be executed but in this case select statement only fails.

To get the output instead of using condition for select as IT_MARA-MATNR use select option.

Thanks & Regards,

Rajani MV

Read only

Former Member
0 Likes
2,552

Hi,

In your select statement you mentioned the condition as 'MATNR EQ IT_MARA-MATNR'. But IT_MARA-MATNR is not filled in your program so this select statement fails. If this select statement executed then only further code will be executed but in this case select statement only fails.

To get the output instead of using condition for select as IT_MARA-MATNR use select option.

Read only

Former Member
0 Likes
2,552

gbn

Edited by: gopal krishna on Aug 8, 2008 6:27 AM