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

Error in Coding

Former Member
0 Likes
590

Hi frds

In my report i wants to display the pending GRs aganist Quality inspection and there corresponding material deatils ,PO detalis.

In my report output ,im getting repeated GRs details .Kindly correct my mistake in my report.

this is my Report .

&----


*& Report Z_PENDING_GRS_INSPECTION *

*& *

&----


*& *

*& *

&----


REPORT Z_PENDING_GRS_INSPECTION line-count 36.

TYPE-POOLS:SLIS.

DATA:BODY TYPE SLIS_T_FIELDCAT_ALV,

HEADER TYPE SLIS_FIELDCAT_ALV.

data : begin of itab occurs 0,

ebeln like ekpo-ebeln,

matnr like ekpo-matnr,

werks like ekpo-werks,

bedat like ekKo-bedat,

mblnr like mseg-mblnr,

meins like mseg-meins,

menge like mseg-menge,

lgort like mseg-lgort,

insmk like mseg-insmk,

maktx like makt-maktx,

lifnr like lfa1-lifnr,

name1 like lfa1-name1,

budat like mkpf-budat,

end of itab.

data : begin of itab1 occurs 0,

ebeln like ekpo-ebeln,

matnr like ekpo-matnr,

werks like ekpo-werks,

bukrs like ekpo-bukrs,

end of itab1.

DATA : BEGIN of itab2 occurs 0,

ebeln like ekko-ebeln,

bedat like ekko-bedat,

lifnr like ekko-lifnr,

end of itab2.

data : begin of itab3 occurs 0,

ebeln like mseg-ebeln,

mblnr like mseg-mblnr,

meins like mseg-meins,

menge like mseg-menge,

lgort like mseg-lgort,

insmk like mseg-insmk,

end of itab3.

data : begin of itab4 occurs 0,

matnr like makt-matnr,

maktx like makt-maktx,

end of itab4.

data : begin of itab5 occurs 0,

lifnr like lfa1-lifnr,

name1 like lfa1-name1,

end of itab5.

data : begin of itab6 occurs 0,

mblnr like mkpf-mblnr,

budat like mkpf-budat,

end of itab6.

SELECT-OPTIONS: Plant FOR ITAB1-werks.

SELECT-OPTIONS: Company FOR ITAB1-bukrs.

SELECT-OPTIONS: GR_Date FOR ITAB6-budat.

SELECT-OPTIONS: Vendor FOR ITAB2-lifnr.

select-options: po for itab1-ebeln.

perform FETCH_ekpo.

perform FETCH_ekko.

PERFORM FETCH_mseg.

PERFORM FETCH_MAKT.

PERFORM FETCH_lfa1.

PERFORM FETCH_mkpf.

PERFORM FETCH_READ.

PERFORM FIELDCATALOG.

PERFORM ALVDISPLAY.

*----


FORM FETCH_ekpo.

SELECT ebeln matnr werks bukrs FROM ekpo INTO

TABLE ITAB1 where werks in plant and bukrs in company and ebeln in po .

endform. "FETCH_ekpo

&----


*& Form fetch_EKKO

&----


  • text

----


FORM FETCH_EKKO.

Select ebeln bedat lifnr from ekko into table itab2 for all entries

in itab1

where ebeln = itab1-ebeln and lifnr in Vendor.

endform. "fetch_ekko

&----


*& Form fetch_mseg

&----


  • text

----


form fetch_mseg.

select ebeln mblnr meins menge lgort insmk from mseg into table

itab3 FOR ALL ENTRIES IN ITAB1 WHERE ebeln = ITAB1-ebeln.

endform. "fetch_mseg

&----


*& Form fetch_makt

&----


  • text

----


form fetch_makt.

select matnr maktx from makt into table itab4 FOR ALL ENTRIES IN

ITAB1 WHERE matnr = ITAB1-matnr.

endform. "fetch_makt

&----


*& Form fetch_lfa1

&----


  • text

----


form fetch_lfa1.

select lifnr name1 from lfa1 into table itab5 FOR ALL ENTRIES IN

ITAB2 WHERE lifnr = ITAB2-lifnr.

endform. "fetch_lfa1

&----


*& Form fetch_mkpf

&----


  • text

----


form fetch_mkpf.

select mblnr budat from mkpf into table itab6 FOR ALL ENTRIES IN

ITAB3 WHERE mblnr = ITAB3-mblnr.

endform. "fetch_mkpf

&----


*& Form READ

&----


  • text

----


FORM FETCH_READ.

LOOP AT ITAB1.

READ TABLE ITAB2 WITH KEY EBELN = ITAb1-EBELN.

READ table itab3 with key EBELN = ITAB2-EBELN.

  • read table itab3 with key EBELN = ITAB1-EBELN.

read table itab4 with key matnr = itab1-matnr.

read table itab5 with key lifnr = itab2-lifnr.

read table itab6 with key mblnr = itab3-mblnr.

IF SY-SUBRC = 0.

move itab3-mblnr to itab-mblnr.

move itab6-budat to itab-budat.

move itab1-matnr to itab-matnr.

move itab4-maktx to itab-maktx.

move itab3-meins to itab-meins.

move itab3-menge to itab-menge.

move itab1-werks to itab-werks.

move itab2-lifnr to itab-lifnr.

move itab5-name1 to itab-name1.

move itab1-ebeln to itab-ebeln.

move itab2-bedat to itab-bedat.

move itab3-lgort to itab-lgort.

ENDIF.

APPEND ITAB.

ENDLOOP.

ENDFORM. "READ

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form FIELDCATALOG .

HEADER-COL_POS = '1'.

HEADER-SELTEXT_L = 'GR_NO'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'mblnr'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '2'.

HEADER-SELTEXT_L = 'GR_DATE'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'BuDAT'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '3'.

HEADER-SELTEXT_L = 'MATERIAL NO'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'MATNR'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '4'.

HEADER-SELTEXT_L = 'MATERIAL_DESC'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'MAKTX'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '5'.

HEADER-SELTEXT_L = 'UOM'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'MEINS'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '6'.

HEADER-SELTEXT_L = 'QUANTITY'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'MENGE'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '7'.

HEADER-SELTEXT_L = 'PLANT'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'WERKS'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '8'.

HEADER-SELTEXT_L = 'VENDOR_NO'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'LIFNR'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '9'.

HEADER-SELTEXT_L = 'VENDOR_NAME'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'MBLNR'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '10'.

HEADER-SELTEXT_L = 'PO_NO'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'EBELN'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '11'.

HEADER-SELTEXT_L = 'PO_DATE'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'BEDAT'.

APPEND HEADER TO BODY.

CLEAR HEADER.

HEADER-COL_POS = '12'.

HEADER-SELTEXT_L = 'STORAGE'.

HEADER-TABNAME = 'ITAB'.

HEADER-FIELDNAME = 'LGORT'.

APPEND HEADER TO BODY.

CLEAR HEADER.

endform. " FIELDCATALOG

*&----


*& Form ALVDISPLAY

*&----


form ALVDISPLAY .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = 'Z_PENDING_GRs_INSPECTION'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

IT_FIELDCAT = BODY

TABLES

t_outtab = ITAB

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

*IF sy-subrc 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

ENDFORM. "ALVDISPLAY

THANKS

PARI VENDHAN.R

5 REPLIES 5
Read only

Former Member
0 Likes
573

Try to use clear ... Also UR checking sy-subrc for only itab6 .. and

not for others ..

Loop at itab1.

clear : itab2 ,itab3 , itab4 , itab5 , itab6.

READ TABLE ITAB2 WITH KEY EBELN = ITAb1-EBELN.

if sy-subrc = 0.

move itab2 fields to final internal table

endif.

similarly read other tables and move the corresponding field values ..

append itab.

clear itab.

endloop.

Read only

Former Member
0 Likes
573

Hi,

You are not at all using key fields in your program.

Key fields will play a VITAL role in conjunction with the READ statement. So while you are reading the internal table you must and should use key field, other wise 'READ' statement will always reads the first record which it founds.

NOTE: USE 'READ' STATEMENT BY USING KEY FIELDS IN YOUR PROGRAM. THEN IT WILL BE GET CORRECTED.

Read only

0 Likes
573

Hi Kishore

Im using key fields in my Report .pls check it and correct my mistake .

Thanks

Pari Vedhan.R

Read only

Former Member
0 Likes
573

Hi Parivedhan,

I think you have to use field symbol in your program. And one more thing:

Use BODY[], which is used to transfer the whole structure.

in following coding..

IT_FIELDCAT = BODY[]

and uncomment the exception part of ALV Display.

Reward if Useful..

Regards,

Anita.

Read only

0 Likes
573

Hi Anita

i didnt get you ,can u explain me little briefly.

thanks

Pari Vendhan.R