‎2007 Jun 26 1:02 PM
Hi, I have part of code:
TYPES: BEGIN OF eket_obj,
werks LIKE ekpo-werks,
matnr LIKE ekpo-matnr,
menge TYPE i,
wemng TYPE i,
objednane TYPE i,
END OF eket_obj.
DATA: l_eket_obj TYPE eket_obj OCCURS 0 WITH HEADER LINE.
SELECT werks ekpomatnr eketmenge eket~wemng
FROM ekko
JOIN ekpo ON ekkoebeln = ekpoebeln
JOIN eket ON ekkoebeln = eketebeln
AND ekpoebelp = eketebelp
JOIN mara ON maramatnr = ekpomatnr
INTO l_eket_obj
WHERE ekkoloekz = '' AND ekpoloekz = ''
AND eketmenge > eketwemng
AND werks between 1000 and 1003
AND mara~mtart = 'HAWA'
GROUP by werks ekpomatnr eketmenge eket~wemng.
l_eket_obj-objednane = l_eket_obj-menge - l_eket_obj-wemng.
endselect.
write l_eket_obj.
How change this code that table l_eket_obj keeps all lines taken from table ekko not only the last one?
Thanks,
Joanna
‎2007 Jun 26 1:22 PM
Hi,
Modify ur code as follows
TYPES: BEGIN OF eket_obj,
werks LIKE ekpo-werks,
matnr LIKE ekpo-matnr,
menge TYPE i,
wemng TYPE i,
objednane TYPE i,
END OF eket_obj.
DATA: l_eket_obj TYPE eket_obj OCCURS 0 WITH HEADER LINE.
SELECT werks ekpomatnr eketmenge eket~wemng
FROM ekko
JOIN ekpo ON ekkoebeln = ekpoebeln
JOIN eket ON ekkoebeln = eketebeln
AND ekpoebelp = eketebelp
JOIN mara ON maramatnr = ekpomatnr
INTO l_eket_obj
WHERE ekkoloekz = '' AND ekpoloekz = ''
AND eketmenge > eketwemng
AND werks between 1000 and 1003
AND mara~mtart = 'HAWA'
GROUP by werks ekpomatnr eketmenge eket~wemng.
l_eket_obj-objednane = l_eket_obj-menge - l_eket_obj-wemng.
<b>Append l_eket_obj.</b>
endselect.
<b>Loop at l_eket_obj.</b>
write l_eket_obj.
<b>endloop.</b>
<b>Changes are in Bold.</b>
Regards,
Ranjit Thakur.
<b>Please Mark The Helpful Answer.</b>
‎2007 Jun 26 1:06 PM
Hi,
keep the write statement before ENDSELECT statement.
Regards,
Satya
‎2007 Jun 26 1:13 PM
yes, I know this, but it only makes that single line will be printed every time that select takes data but i don't need to print all this data (the write sentences is only to check content of table) i need that all lines will be kept in table.
‎2007 Jun 26 1:16 PM
Hi,
The cause is the way you are using internal table l_eket_obj. In your code you are only filling the header of the table, not the body (no APPEND Statement).
Better is to do SELECT INTO TABLE
SELECT werks ekpomatnr eketmenge eket~wemng
FROM ekko
JOIN ekpo ON ekkoebeln = ekpoebeln
JOIN eket ON ekkoebeln = eketebeln
AND ekpoebelp = eketebelp
JOIN mara ON maramatnr = ekpomatnr
INTO <i>TABLE</i> l_eket_obj
WHERE ekkoloekz = '' AND ekpoloekz = ''
AND eketmenge > eketwemng
AND werks between 1000 and 1003
AND mara~mtart = 'HAWA'.
GROUP by werks ekpomatnr eketmenge eket~wemng. "Not sure if you need this
*
Update the field in the internal table
*
LOOP AT l_eket_obj.
l_eket_obj-objednane = l_eket_obj-menge - l_eket_obj-wemng.
MODIFY l_eket_obj.
ENDLOOP.
‎2007 Jun 26 1:24 PM
Hi, after changing on INTO TABLE it still shows only one line. Could I change it in the other way yet?
Regards,
Joanna
‎2007 Jun 26 1:30 PM
You need to put your WRITE statement inside a LOOP, and write out each field separately.
LOOP AT <Table>.
WRITE:/ <Table>-xxx,
<Table>-yyy,
<Table>-zzz.
ENDLOOP.
‎2007 Jun 26 1:34 PM
‎2007 Jun 26 1:18 PM
Hi,
I think u need to loop at the table and then give the write statement.
This will help u.
Regards;
Sapna
‎2007 Jun 26 1:22 PM
Hi,
Modify ur code as follows
TYPES: BEGIN OF eket_obj,
werks LIKE ekpo-werks,
matnr LIKE ekpo-matnr,
menge TYPE i,
wemng TYPE i,
objednane TYPE i,
END OF eket_obj.
DATA: l_eket_obj TYPE eket_obj OCCURS 0 WITH HEADER LINE.
SELECT werks ekpomatnr eketmenge eket~wemng
FROM ekko
JOIN ekpo ON ekkoebeln = ekpoebeln
JOIN eket ON ekkoebeln = eketebeln
AND ekpoebelp = eketebelp
JOIN mara ON maramatnr = ekpomatnr
INTO l_eket_obj
WHERE ekkoloekz = '' AND ekpoloekz = ''
AND eketmenge > eketwemng
AND werks between 1000 and 1003
AND mara~mtart = 'HAWA'
GROUP by werks ekpomatnr eketmenge eket~wemng.
l_eket_obj-objednane = l_eket_obj-menge - l_eket_obj-wemng.
<b>Append l_eket_obj.</b>
endselect.
<b>Loop at l_eket_obj.</b>
write l_eket_obj.
<b>endloop.</b>
<b>Changes are in Bold.</b>
Regards,
Ranjit Thakur.
<b>Please Mark The Helpful Answer.</b>