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

all entries

Former Member
0 Likes
1,062

hi friends..

iam using "all entries" for 2 tables is this code correct..if any changes do tell me

tables:mard,makt.

types: begin of str_mard,

matnr type mard-matnr,

lgort type mard-lgort,

werks type mard-werks,

end of str_mard.

data: it_mard type standard table of str_mard.

data:wa_mard type str_mard.

DATA:S_MATNR TYPE MATNR.

DATA: Z_MATNR TYPE MATNR.

types: begin of str_makt,

matnr type makt-matnr,

maktg type makt-maktg,

end of str_makt.

data: it_makt type standard table of str_makt.

data:wa_makt type str_makt.

types: begin of str_final,

matnr type mard-matnr,

lgort type mard-lgort,

werks type mard-werks,

maktg type makt-maktg,

end of str_final.

data: it_final type standard table of str_final.

data:wa_final type str_final.

SELECT-OPTIONS: V_MATNR FOR MARD-MATNR.

select matnr

lgort

werks from mard into table it_mard

.

select matnr

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

loop at it_makt into wa_makt .

move wa_makt to wa_final.

read table it_mard into wa_mard with key matnr = wa_final-matnr.

move wa_mard-lgort to wa_final-lgort.

move wa_mard-werks to wa_final-werks.

write:/ wa_final-matnr,

wa_final-lgort,

wa_final-werks,

wa_final-maktg.

endloop.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,029

.............................

SELECT-OPTIONS: V_MATNR FOR MARD-MATNR.

select matnr lgort werks from mard into table it_mard

where matnr in V_MATNR.

if not it_mard[] is initial.

select matnr maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr

and spras eq 'E'.

sort it_makt by matnr.

loop at it_mard into wa_mard.

move wa_mard-matnr to wa_final-matnr.

move wa_mard-lgort to wa_final-lgort.

move wa_mard-werks to wa_final-werks.

read table it_makt with key matnr = wa_mard-matnr.

if sy-subrc eq 0.

move wa_makt-maktg to wa_final-maktg.

endif.

append wa_final to it_final.

*write:/ wa_final-matnr,

*wa_final-lgort,

*wa_final-werks,

*wa_final-maktg.

clear wa_final.

endloop.

loop at it_final to wa_final.

write:/ wa_final-matnr,

wa_final-lgort,

wa_final-werks,

wa_final-maktg.

endloop.

hi friends..

iam using "all entries" for 2 tables is this code correct..if any changes do tell me

tables:mard,makt.

types: begin of str_mard,

matnr type mard-matnr,

lgort type mard-lgort,

werks type mard-werks,

end of str_mard.

data: it_mard type standard table of str_mard.

data:wa_mard type str_mard.

DATA:S_MATNR TYPE MATNR.

DATA: Z_MATNR TYPE MATNR.

types: begin of str_makt,

matnr type makt-matnr,

maktg type makt-maktg,

end of str_makt.

data: it_makt type standard table of str_makt.

data:wa_makt type str_makt.

types: begin of str_final,

matnr type mard-matnr,

lgort type mard-lgort,

werks type mard-werks,

maktg type makt-maktg,

end of str_final.

data: it_final type standard table of str_final.

data:wa_final type str_final.

SELECT-OPTIONS: V_MATNR FOR MARD-MATNR.

select matnr

lgort

werks from mard into table it_mard

.

select matnr

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

loop at it_makt into wa_makt .

move wa_makt to wa_final.

read table it_mard into wa_mard with key matnr = wa_final-matnr.

move wa_mard-lgort to wa_final-lgort.

move wa_mard-werks to wa_final-werks.

write:/ wa_final-matnr,

wa_final-lgort,

wa_final-werks,

wa_final-maktg.

endloop.

7 REPLIES 7
Read only

former_member404244
Active Contributor
0 Likes
1,029

Hi,

do like this

select matnr

lgort

werks from mard into table it_mard

.

if not it_mard[] is initial.

select matnr

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

endif.

loop at it_makt into wa_makt .

move : wa_makt-matnr to wa_final-matnr,

wa_makt-maktx to wa_final-maktx.

read table it_mard into wa_mard with key matnr = wa_final-matnr.

move wa_mard-lgort to wa_final-lgort.

move wa_mard-werks to wa_final-werks.

write:/ wa_final-matnr,

wa_final-lgort,

wa_final-werks,

wa_final-maktg.

endloop.

Regards,

Nagaraj

Read only

Former Member
0 Likes
1,029

Hi,

In the following code you are not using the select-options.

SELECT-OPTIONS: V_MATNR FOR MARD-MATNR.

change it like this.

select matnr

lgort

werks from mard into table it_mard

where matnr in v_matnr.

if sy-subrc eq 0.

select matnr

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

  • here if you are expecting duplicte records the use the entire primary key in the select query

like

select matnr werks lgort ( include these field in the table it_makt )

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

Regards,

Venkatesh

endif.

Read only

Former Member
0 Likes
1,029

Hi Gundala,

Before using the FOR ALL ENTRIES please make sure that you follow two things in mind.

1. Always Sort the table on which you are putting the FOR ALL ENTRIES in table.

2. check the table is not initial. If not initial then execute the FOR ALL ENTRIES otherwise it will pick all the values.

I have done the modifcation on your code. please see in comment.


select matnr
lgort
werks from mard into table it_mard
.
sort it_mard by matnr.   "all add this condition
if not it_mard[] is initial.  "all add this condition

select matnr
maktg from makt into table it_makt
for all entries in it_mard
where matnr = it_mard-matnr.
endif.
loop at it_makt into wa_makt .
move wa_makt to wa_final.
read table it_mard into wa_mard with key matnr = wa_final-matnr.
move wa_mard-lgort to wa_final-lgort.
move wa_mard-werks to wa_final-werks.
write:/ wa_final-matnr,
wa_final-lgort,
wa_final-werks,
wa_final-maktg.
endloop.

Read only

Former Member
0 Likes
1,029

Hi,

First of all you are not using your select-options in your report anywhere.

You can use it in your first select statement since you are using the "for all entries" concept.

Secondly before using "for all entries:" check this:

select matnr

lgort

werks from mard into table it_mard where matnr in V_MATNR.

if not it_mard[] is initial.

select matnr

maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr.

endif.

Thanks & Regards

Read only

Former Member
0 Likes
1,029

Hi

Good

I think it should work fine, if it is giving any error than post the error.

Thanks

mrutyun^

Read only

Former Member
0 Likes
1,030

.............................

SELECT-OPTIONS: V_MATNR FOR MARD-MATNR.

select matnr lgort werks from mard into table it_mard

where matnr in V_MATNR.

if not it_mard[] is initial.

select matnr maktg from makt into table it_makt

for all entries in it_mard

where matnr = it_mard-matnr

and spras eq 'E'.

sort it_makt by matnr.

loop at it_mard into wa_mard.

move wa_mard-matnr to wa_final-matnr.

move wa_mard-lgort to wa_final-lgort.

move wa_mard-werks to wa_final-werks.

read table it_makt with key matnr = wa_mard-matnr.

if sy-subrc eq 0.

move wa_makt-maktg to wa_final-maktg.

endif.

append wa_final to it_final.

*write:/ wa_final-matnr,

*wa_final-lgort,

*wa_final-werks,

*wa_final-maktg.

clear wa_final.

endloop.

loop at it_final to wa_final.

write:/ wa_final-matnr,

wa_final-lgort,

wa_final-werks,

wa_final-maktg.

endloop.

Read only

0 Likes
1,029

thanx for ur help.ur code is working