‎2008 Apr 21 1:34 PM
Hi Everyone,
I am battling with a small program for 2 days as to why any output is not getting on to the list.
On CHECK, the error being shown is the
'THE DATA OBJECT "WA_ITAB" DOES NOT HAVE A COMPONENT CALLED "MATNR".
Report ZTR_REP1.
tables:mara.
select-options:s_matnr for mara-matnr.
types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
ekgrp like marc-ekgrp,
end of itab.
data: wa_itab like itab,
itab1 like itab occurs 0 .
select matnr ersda ernam
from mara
into wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr,
endloop.
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:34 PM
‎2008 Apr 21 1:38 PM
Hi,
u have to use TYPE instead of using LIKE.
tables:mara.
select-options:s_matnr for mara-matnr.
types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
* ekgrp like marc-ekgrp,
end of itab.
data: wa_itab type itab,
itab1 like itab occurs 0 .
select matnr ersda ernam
from mara
into wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
ENDSELECT.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
rgds,
bharat.
‎2008 Apr 21 1:38 PM
Hi,
u have to use TYPE instead of using LIKE.
tables:mara.
select-options:s_matnr for mara-matnr.
types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
* ekgrp like marc-ekgrp,
end of itab.
data: wa_itab type itab,
itab1 like itab occurs 0 .
select matnr ersda ernam
from mara
into wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
ENDSELECT.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
rgds,
bharat.
‎2008 Apr 21 1:43 PM
Hi Bharat,
The error shown after i gave TYPE instead of LIKE is
FIELD "END LOOP" IS UNKNOWN. IT IS NEITHER IN ONE OF THE SPECIFIED TABLES NOR DEFINED BY A "DATA" STATEMENT..
Thanks in Advance
-
Ranjith.T
‎2008 Apr 21 1:47 PM
Hi Ranjith,
Use this code it will work fine:
tables: mara.
select-options : s_matnr for mara-matnr.
types: begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
ekgrp like marc-ekgrp,
end of itab.
data: wa_itab type itab,
itab1 like itab occurs 0 .
select matnr ersda ernam
from mara
into corresponding fields of wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
Endselect.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
<REMOVED BY MODERATOR>
Regards
Hemant Khemani
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:35 PM
‎2008 Apr 21 1:57 PM
Hi,
Please refer the code below:
REPORT ztr_rep1.
TABLES:mara.
SELECT-OPTIONS:s_matnr FOR mara-matnr.
TYPES:BEGIN OF itab,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
*ekgrp like marc-ekgrp,
END OF itab.
DATA: wa_itab TYPE itab,
itab1 LIKE itab OCCURS 0 .
SELECT matnr ersda ernam
FROM mara
INTO wa_itab
WHERE matnr IN s_matnr.
APPEND wa_itab TO itab1.
ENDSELECT.
LOOP AT itab1 INTO wa_itab.
WRITE:/ wa_itab.
ENDLOOP.
Thanks,
Sriram Ponna,.
‎2008 Apr 21 2:05 PM
Hi Ranjith,
I think you had given a coma after the following statement
write:/ wa_itab-matnr,
Correct it with a fullstop. Then it will work correctly.
write:/ wa_itab-matnr.
Regards,
Suresh.
‎2008 Apr 21 2:07 PM
Hi Ranjith,
try with this one,
tables:mara.
select-options:s_matnr for mara-matnr.
types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
ekgrp like marc-ekgrp,
end of itab.
data: wa_itab type itab,
itab1 type itab occurs 0 .
*
*select matnr ersda ernam
*from mara
*into wa_itab
*where matnr in s_matnr.
*append wa_itab to itab1.
*endselect.
select matnr ersda ernam
from mara
into corresponding fields of table itab1
where matnr in s_matnr.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
‎2008 Apr 23 9:59 AM
Hi Hemanth,
Phrase endselect had solved my problem...But is why endselect needed there.
Thanks
Ranjith
‎2008 Apr 21 1:40 PM
Hi Ranjith,
you are referring WA_ITAB to itab type structure. but system is pointing to standard itab structure. so you rename itab as different structure and declare wa_itab of that structure. then it will work.
‎2008 Apr 21 1:41 PM
try to execute this code:
tables:mara.
select-options:s_matnr for mara-matnr.
types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
ekgrp like marc-ekgrp,
end of itab.
data: wa_itab like itab,
itab1 like itab occurs 0 .
select matnr ersda ernam
from mara
into itab1
where matnr in s_matnr.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
<REMOVED BY MODERATOR>
Dara.
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:34 PM
‎2008 Apr 21 1:43 PM
Hi Ranjith,
TYPES statement are used to define user defined data types.
TYPE refer to the data types,
LIKE refers to the data objects,
So, in ur program change
data : WA_ITAB type itab.
Thanks,
S.Gangi reddy
‎2008 Apr 21 1:46 PM
hi,
use select single while working with wa_itab as it is a work area.
but as you are using select options try the below code
select matnr ersda ernam
from mara
into table itab1
where matnr in s_matnr.
and also when you are using types for defining a structure you cant use like
use type
ex data wa_itab type itab.
regards
prasanth
‎2008 Apr 21 1:57 PM
hI,
Just define wa_itab with TYPE but not LIKE.
DATA: wa_itab TYPE itab,
itab1 LIKE itab OCCURS 0 .
<REMOVED BY MODERATOR>
sekhar
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:35 PM
‎2008 Apr 21 2:13 PM
Hi,
This code will work. Check this out.
tables:mara.
select-options:s_matnr for mara-matnr.
types:
begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
end of itab.
data: wa_itab type itab,
itab1 like table of wa_itab .
select matnr ersda ernam
from mara
into table itab1
where matnr in s_matnr.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.
<REMOVED BY MODERATOR>
Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:36 PM