Application Development 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: 

OUTPUT from Internal tables

Former Member
0 Kudos

Hi All,

Data is comming to Internal tables but I am unable to show out put some where I am missing,any one please help me.

REPORT ztest2.

TABLES:s031,s032,makt,marc.

DATA : BEGIN OF itab1 OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

spmon TYPE s031-spmon,

magbb TYPE s031-magbb,

wagbb TYPE s031-wagbb,

azubb TYPE s031-azubb,

aagbb TYPE s031-aagbb,

END OF itab1.

DATA : BEGIN OF itab2 OCCURS 0,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF itab2.

DATA : BEGIN OF itab3 OCCURS 0,

matnr TYPE marc-matnr,

werks TYPE marc-werks,

ekgrp TYPE marc-ekgrp,

END OF itab3.

DATA : BEGIN OF itab4 OCCURS 0 ,

matnr TYPE s032-matnr,

lgort TYPE s032-lgort,

werks TYPE s032-werks,

mbwbest TYPE s032-mbwbest,

wbwbest TYPE s032-wbwbest,

END OF itab4.

DATA: BEGIN OF itab5 OCCURS 0,

matnr LIKE s031-matnr,

atinn LIKE cawn-atinn,

atwrt LIKE cawn-atwrt,

objek LIKE ausp-objek,

END OF itab5.

DATA : BEGIN OF itab_final1 OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

magbb TYPE s031-magbb,

wagbb TYPE s031-wagbb,

azubb TYPE s031-azubb,

aagbb TYPE s031-aagbb,

maktx TYPE makt-maktx,

ekgrp TYPE marc-ekgrp,

mbwbest TYPE s032-mbwbest,

wbwbest TYPE s032-wbwbest,

atwrt TYPE cawn-atwrt,

END OF itab_final1.

DATA : BEGIN OF itab_final OCCURS 0,

matnr TYPE s031-matnr,

lgort TYPE s031-lgort,

werks TYPE s031-werks,

magbb TYPE s031-magbb,

wagbb TYPE s031-wagbb,

azubb TYPE s031-azubb,

aagbb TYPE s031-aagbb,

maktx TYPE makt-maktx,

ekgrp TYPE marc-ekgrp,

mbwbest TYPE s032-mbwbest,

wbwbest TYPE s032-wbwbest,

atwrt TYPE cawn-atwrt,

END OF itab_final.

DATA: wa_itab5 LIKE LINE OF itab5.

DATA : wa_itab_final LIKE LINE OF itab_final.

SELECT-OPTIONS:s_matnr FOR s031-matnr.

SELECT amatnr algort awerks aspmon amagbb awagbb aazubb aaagbb

bmaktx cekgrp dmbwbest dwbwbest

INTO CORRESPONDING FIELDS OF TABLE itab_final1

FROM ( ( ( s031 AS a

INNER JOIN makt AS b ON bmatnr = amatnr )

INNER JOIN marc AS c ON cmatnr = bmatnr )

INNER JOIN s032 AS d ON dwerks = cwerks ) WHERE a~matnr IN s_matnr.

SORT itab_final1 BY matnr werks ekgrp .

DELETE ADJACENT DUPLICATES FROM itab_final1 COMPARING matnr werks ekgrp.

LOOP AT itab_final1 INTO wa_itab_final.

itab_final-matnr = wa_itab_final-matnr.

itab_final-lgort = wa_itab_final-lgort.

itab_final-werks = wa_itab_final-werks.

itab_final-magbb = wa_itab_final-magbb.

itab_final-wagbb = wa_itab_final-wagbb.

itab_final-azubb = wa_itab_final-azubb.

itab_final-aagbb = wa_itab_final-aagbb.

itab_final-maktx = wa_itab_final-maktx.

itab_final-mbwbest = wa_itab_final-mbwbest.

itab_final-wbwbest = wa_itab_final-wbwbest.

ENDLOOP.

SELECT eatinn eatwrt fatinn fobjek

INTO CORRESPONDING FIELDS OF TABLE itab5

FROM ( cawn AS e

INNER JOIN ausp AS f ON fatinn = eatinn ) WHERE f~objek IN s_matnr.

LOOP AT itab5 INTO wa_itab5 .

itab_final-atwrt = wa_itab5-atwrt.

ENDLOOP.

append Itab_final.

LOOP AT itab_final.

WRITE: /2 itab_final-matnr COLOR 1, 23 itab_final-lgort COLOR 2,29 itab_final-werks COLOR 3,44 itab_final-magbb COLOR 5,66 itab_final-wagbb COLOR 6,86 itab_final-azubb COLOR 7,97 itab_final-aagbb COLOR 5,

110 itab_final-maktx COLOR 1, 130 itab_final-ekgrp COLOR 3,150 itab_final-wbwbest COLOR 6,190 itab_final-mbwbest COLOR 3,200 itab_final1-atwrt COLOR 5.

ENDLOOP.

ThanKs&regds,

Sree.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Use the below code:

LOOP AT itab5 INTO wa_itab5 .

loop at itab_final where matnr = wa_itab5-matnr.

itab_final-atwrt = wa_itab5-atwrt.

modify itab_final index sy-tabix transporting atwrt.

endloop.

ENDLOOP.

This should work out!

Regards,

Lakshmi.

12 REPLIES 12

abapdeveloper20
Contributor
0 Kudos

hi Sree,

you missed append.

Here it is..

LOOP AT itab_final1 INTO wa_itab_final.

itab_final-matnr = wa_itab_final-matnr.

itab_final-lgort = wa_itab_final-lgort.

itab_final-werks = wa_itab_final-werks.

itab_final-magbb = wa_itab_final-magbb.

itab_final-wagbb = wa_itab_final-wagbb.

itab_final-azubb = wa_itab_final-azubb.

itab_final-aagbb = wa_itab_final-aagbb.

itab_final-maktx = wa_itab_final-maktx.

itab_final-mbwbest = wa_itab_final-mbwbest.

itab_final-wbwbest = wa_itab_final-wbwbest.

append itab_final.

ENDLOOP.

Have a nice day!!

Reward points if my reply is useful.

Lakshmiraj A

0 Kudos

there is one more problem...

check this out...!!!

LOOP AT itab_final1 INTO wa_itab_final.

itab_final-matnr = wa_itab_final-matnr.

itab_final-lgort = wa_itab_final-lgort.

itab_final-werks = wa_itab_final-werks.

itab_final-magbb = wa_itab_final-magbb.

itab_final-wagbb = wa_itab_final-wagbb.

itab_final-azubb = wa_itab_final-azubb.

itab_final-aagbb = wa_itab_final-aagbb.

itab_final-maktx = wa_itab_final-maktx.

itab_final-mbwbest = wa_itab_final-mbwbest.

itab_final-wbwbest = wa_itab_final-wbwbest.

append itab_final.

ENDLOOP.

SELECT eatinn eatwrt fatinn fobjek

INTO CORRESPONDING FIELDS OF TABLE itab5

FROM ( cawn AS e

INNER JOIN ausp AS f ON fatinn = eatinn ) WHERE f~objek IN s_matnr.

Loop at itab5 into wa_itab5.

Loop at itab_final where matnr eq itab5-matnr.

itab_final-atwrt = wa_itab5-atwrt.

modify itab_final.

endloop.

endloop.

Reward points if useful

0 Kudos

Hi Lakshmi Raj,

Still I am struggling with ATWRT data is not comming as out put and also for few records data is repeating several times ,please help me.

Thanks&regds,

Sree.

0 Kudos

Hi Sree,

Try this way

Loop at itab_final.
read table itab5 with key matnr eq itab_final-matnr.
if sy-subrc eq 0.
itab_final-atwrt = itab5-atwrt.
modify itab_final.
endif.
endloop.

Hope this helps...

Rgds,

Lakshmiraj A

0 Kudos

Hi,

Problem solved ah??????

0 Kudos

Hi ALL,

ThankQ very much to all of U,due to U R input my problem solved now I am converting this report into ALV with selection criteria if any problem I face hope all of you help me again.

Thanks&regds,

Sree.

Former Member
0 Kudos

Hi,

here u r not appending Sree.

LOOP AT itab_final1 INTO wa_itab_final.

itab_final-matnr = wa_itab_final-matnr.

itab_final-lgort = wa_itab_final-lgort.

itab_final-werks = wa_itab_final-werks.

itab_final-magbb = wa_itab_final-magbb.

itab_final-wagbb = wa_itab_final-wagbb.

itab_final-azubb = wa_itab_final-azubb.

itab_final-aagbb = wa_itab_final-aagbb.

itab_final-maktx = wa_itab_final-maktx.

itab_final-mbwbest = wa_itab_final-mbwbest.

itab_final-wbwbest = wa_itab_final-wbwbest.

append itab_final.

ENDLOOP.

reward if helpful

raam

Former Member
0 Kudos

Hi,

I think you are missing 2 points.

LOOP AT itab_final1 INTO wa_itab_final.

itab_final-matnr = wa_itab_final-matnr.

itab_final-lgort = wa_itab_final-lgort.

itab_final-werks = wa_itab_final-werks.

itab_final-magbb = wa_itab_final-magbb.

itab_final-wagbb = wa_itab_final-wagbb.

itab_final-azubb = wa_itab_final-azubb.

itab_final-aagbb = wa_itab_final-aagbb.

itab_final-maktx = wa_itab_final-maktx.

itab_final-mbwbest = wa_itab_final-mbwbest.

itab_final-wbwbest = wa_itab_final-wbwbest.

      • 1 There should be an APPEND statement here ****

            • APPEND itab_final.

ENDLOOP.

SELECT eatinn eatwrt fatinn fobjek

INTO CORRESPONDING FIELDS OF TABLE itab5

FROM ( cawn AS e

INNER JOIN ausp AS f ON fatinn = eatinn ) WHERE f~objek IN s_matnr.

LOOP AT itab5 INTO wa_itab5 .

itab_final-atwrt = wa_itab5-atwrt.

      • 2 Logic here is not correct Itab_final already has several records ****

MODIFY itab_final where matnr = wa_itab5-matnr.

            • you need to modify the table with atwrt for each record using some logic

ENDLOOP.

append Itab_final. -


> Append is not required here

Hope this solves your problem.

Thanks and Regards,

Lakshmi.

0 Kudos

Hi Laxmi Garu,

In modify statement MODIFY itab_final where matnr = wa_itab5-matnr. I am gett

ing error as where statement is not possible,can you explain me how to proceed.

Thanks and Regds,

Sree.

abapdeveloper20
Contributor
0 Kudos

hi

one more correction in your program....

in the final display you are looping itab_final BUT printing itab_final1-atwart....

change this...

LOOP AT itab_final.

WRITE: /2 itab_final-matnr COLOR 1, 23 itab_final-lgort COLOR 2,29 itab_final-werks COLOR 3,44 itab_final-magbb COLOR 5,66 itab_final-wagbb COLOR 6,86 itab_final-azubb COLOR 7,97 itab_final-aagbb COLOR 5,

110 itab_final-maktx COLOR 1, 130 itab_final-ekgrp COLOR 3,150 itab_final-wbwbest COLOR 6,190 itab_final-mbwbest COLOR 3,200 itab_final1-atwrt COLOR 5.

ENDLOOP.

to

LOOP AT itab_final.

WRITE: /2 itab_final-matnr COLOR 1, 23 itab_final-lgort COLOR 2,29 itab_final-werks COLOR 3,44 itab_final-magbb COLOR 5,66 itab_final-wagbb COLOR 6,86 itab_final-azubb COLOR 7,97 itab_final-aagbb COLOR 5,

110 itab_final-maktx COLOR 1, 130 itab_final-ekgrp COLOR 3,150 itab_final-wbwbest COLOR 6,190 itab_final-mbwbest COLOR 3,200 itab_final-atwrt COLOR 5.

ENDLOOP.

Reward if useful

Edited by: LAKSHMIRAJ on Apr 22, 2008 6:18 AM

Former Member
0 Kudos

Hi Frd

Dont use inner join for more than two tables..in ur report u made four tables this will reduces ur preformance of the report and while going for bulk datas it will you a dump error.So , try to put u select statment like this.

Sample Coding :

FORM MATERIAL.

SELECT MARAMATNR MARAMEINS MARALVORM MARAMSTAE

MARDWERKS MARDLGORT

INTO CORRESPONDING FIELDS OF TABLE IMAT

FROM MARA INNER JOIN MARD ON MARDMATNR = MARAMATNR

WHERE MARA~MATNR IN MATERIAL AND

MARD~WERKS IN PLANT AND

MARD~LGORT IN STORAGE AND

MARA~LVORM <> 'X' AND

MARA~MSTAE EQ SPACE.

IF SY-SUBRC <> 0.

MESSAGE 'NO DATA FOUND FOR THE SELECTION ' TYPE 'E'.

EXIT.

ENDIF.

ENDFORM. "MATERIAL

&----


*& FORM P_MAKT SELECTING MATERIAL DESC.,

&----


  • TEXT

----


FORM P_MAKT.

LOOP AT IMAT.

SELECT MATNR MAKTX FROM MAKT APPENDING TABLE IMAKT

WHERE MATNR = IMAT-MATNR.

ENDLOOP.

CLEAR : IMAT, IMAKT.

ENDFORM. "P_MAKT

&----


*& FORM P_MARC

&----


  • TEXT

----


FORM P_MARC.

LOOP AT IMAT.

SELECT MATNR MINBE LVORM BSTFE FROM MARC APPENDING TABLE IMARC

WHERE MATNR = IMAT-MATNR AND

LVORM <> 'X'.

ENDLOOP.

CLEAR : IMAT, IMARC.

ENDFORM. "P_MARC

&----


*& FORM P_MBEW SELECTING WAREHOUSE STOCK

&----


  • TEXT

----


FORM P_MBEW.

LOOP AT IMAT.

SELECT MATNR LBKUM FROM MBEW APPENDING TABLE IMBEW

WHERE MATNR = IMAT-MATNR.

ENDLOOP.

CLEAR : IMAT, IMBEW.

ENDFORM. "P_MBEW

&----


*& FORM POS SELECTING PO's

&----


  • TEXT

----


FORM POS.

LOOP AT IMAT.

SELECT EBELN EBELP LOEKZ MATNR BUKRS WERKS LGORT MENGE

FROM EKPO APPENDING TABLE IEKPO

WHERE MATNR = IMAT-MATNR AND

WERKS = IMAT-WERKS AND

LOEKZ EQ SPACE.

ENDLOOP.

CLEAR : IMAT, IEKPO.

ENDFORM. "POS

Reward Me points

By

Pari

Former Member
0 Kudos

Hi,

Use the below code:

LOOP AT itab5 INTO wa_itab5 .

loop at itab_final where matnr = wa_itab5-matnr.

itab_final-atwrt = wa_itab5-atwrt.

modify itab_final index sy-tabix transporting atwrt.

endloop.

ENDLOOP.

This should work out!

Regards,

Lakshmi.