‎2008 Aug 06 5:45 AM
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.
‎2008 Aug 06 6:00 AM
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
‎2008 Aug 06 5:48 AM
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.
‎2008 Aug 06 5:49 AM
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
‎2008 Aug 06 5:57 AM
‎2008 Aug 06 5:59 AM
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
‎2008 Aug 06 6:26 AM
‎2008 Aug 06 6:28 AM
I think it is not possible.
show your code once again.what did you paste?
AMit.
‎2008 Aug 06 6:30 AM
Hi Gopal,
Try the code which I have given. It's working fine for me.
Regards,
Chandra Sekhar
‎2008 Aug 06 6:37 AM
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.
‎2008 Aug 06 9:43 AM
‎2008 Aug 06 9:49 AM
Hi Gopal,
Check these links for interactive reports:
http://allsapabap.blogspot.com/2008/07/abap-multiple-interactive-report-sample_22.html
http://abapreports.blogspot.com/2008/06/sample-interactive-alv-report-with-at.html
Classical Reports:
http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/ABAP_tutorial.html
http://www.abapguide.com/notes/events-in-report/
Regards,
Chandra Sekhar
‎2008 Aug 08 5:26 AM
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
‎2008 Aug 06 5:51 AM
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.
‎2008 Aug 06 5:51 AM
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.
‎2008 Aug 06 5:53 AM
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.
‎2008 Aug 06 5:53 AM
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
‎2008 Aug 06 5:54 AM
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
‎2008 Aug 06 5:54 AM
hi,
1. declair mara and makt in TABLES statement.
2. use internal table in your select query.
3. avoid nested loop.
‎2008 Aug 06 5:55 AM
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.
‎2008 Aug 06 5:55 AM
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.
‎2008 Aug 06 5:57 AM
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
‎2008 Aug 06 6:03 AM
sorry still i am not getting o/p
i am currently using version 4.6c
is this code doesnt support this version
‎2008 Aug 06 6:09 AM
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
‎2008 Aug 06 6:11 AM
did you try with my first reply?
it should generate output.
Amit.
‎2008 Aug 06 9:43 AM
‎2008 Aug 06 5:58 AM
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
‎2008 Aug 06 6:00 AM
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
‎2008 Aug 06 6:15 AM
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
‎2008 Aug 06 9:44 AM
‎2008 Aug 06 6:26 AM
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.
‎2008 Aug 06 6:31 AM
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
‎2008 Aug 06 11:14 AM
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
‎2008 Aug 06 11:15 AM
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.
‎2008 Aug 08 5:25 AM