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

Select statement

Former Member
0 Likes
2,249

hello experts,

here I am retrieving the data for the po header and item details. here I wrote the select statements as below...

<b>here is the selection screen</b>

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

<b>for header details...</b>

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekkolifnr ekpomatnr eket~eindt INTO corresponding fields of TABLE it_ekko

FROM ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

INNER JOIN eket ON ekkoebeln = eketebeln

WHERE ekko~lifnr IN p_lifnr

AND ekko~ebeln IN p_ebeln

AND ekko~ekgrp IN p_ekgrp

AND ekko~aedat IN p_aedat

AND ekko~ernam IN p_ernam

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt

<b>for item details</b>

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf ekpo~txz01

mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding fields of TABLE it_ekko FROM

ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln

  • FOR ALL entries IN it_ekko WHERE

  • ekpo~ebeln = it_ekko-ebeln

where ekko~lifnr IN p_lifnr

AND ekko~ebeln IN p_ebeln

AND ekko~ekgrp IN p_ekgrp

AND ekko~aedat IN p_aedat

AND ekko~ernam IN p_ernam

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

I think the above select statement is wrong.. like first of all i retrieve all the header records into it_ekko now for all entries in that int.table i have to retrieve the item details based upon the selected options in the selection scree.....

so with this also I am getting the data... but when i give the value in the last field of selection screen P_ernam. It is not working...

can any one help to modify my code in correct way...

Thanks a lot for your anticipation..

SIRI

1 ACCEPTED SOLUTION
Read only

Former Member
2,018

Hi,

Check this new code..

TYPE-POOLS slis .

TABLES: ekko,

ekpo,

eket,

mara,

mard,

t001l,

makt.

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

aedat TYPE ekko-aedat,

ekgrp TYPE ekko-ekgrp,

ekorg TYPE ekko-ekorg,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko.

TYPES: BEGIN OF t_ekko_itm,

ebeln TYPE ekko-ebeln,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko_itm.

*types: begin of i_ekko_hdr ,

  • ebeln TYPE ekko-ebeln,

  • aedat TYPE ekko-aedat,

  • ekgrp TYPE ekko-ekgrp,

  • ekorg TYPE ekko-ekorg,

  • lifnr TYPE ekko-lifnr,

  • end of i_ekko_hdr.

*

*DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF I_EKKO_HDR INITIAL SIZE 0.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,

wa_ekko TYPE t_ekko.

DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE.

DATA: IT_EKKO_ITM TYPE STANDARD TABLE OF T_EKKO_ITM WITH HEADER LINE.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

gd_repid = sy-repid.

  • Data declaration for EVENT and PRINT PARAMETER.

DATA: gt_events TYPE slis_t_event,

gd_prntparams TYPE slis_print_alv.

  • data declaration for sorting.

DATA : it_sortcat TYPE slis_sortinfo_alv OCCURS 1,

wa_sort LIKE LINE OF it_sortcat.

DATA : i_list_comments TYPE slis_t_listheader.

*DATA int_fcat TYPE slis_t_fieldcat_alv.

DATA:ls_int_fcat TYPE slis_fieldcat_alv.

*data: rs_selfield type slis_selfield.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_sortcat.

PERFORM build_events.

PERFORM top-of-page.

PERFORM display_alv_report.

END-OF-SELECTION.

*&----


*& Form build_fieldcatalog

*&----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'PO NUMBER'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EBELN'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'PO DATE'.

fieldcatalog-col_pos = 1.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'AEDAT'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKGRP'.

fieldcatalog-seltext_m = 'PUR GRP/BUYER'.

fieldcatalog-col_pos = 2.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKGRP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKORG'.

fieldcatalog-seltext_m = 'PUR ORG.'.

fieldcatalog-col_pos = 3.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKORG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LIFNR'.

fieldcatalog-seltext_m = 'VENDOR NO'.

fieldcatalog-col_pos = 4.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'LIFNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO LINE'.

fieldcatalog-col_pos = 5.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'EBELP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'ORD QTY'.

fieldcatalog-col_pos = 6.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'MENGE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'UNIT'.

fieldcatalog-col_pos = 7.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MEINS'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'MATERIAL'.

fieldcatalog-col_pos = 8.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MATNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'TXZ01'.

fieldcatalog-seltext_m = 'DESCRIPTION'.

fieldcatalog-col_pos = 9.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'TXZ01'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'IDNLF'.

fieldcatalog-seltext_m = 'VEND MAT'.

fieldcatalog-col_pos = 10.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'IDNLF'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGPBE'.

fieldcatalog-seltext_m = 'ST.LOC SHELF BIN'.

fieldcatalog-col_pos = 11.

  • fieldcatalog-outputlen = 6.

fieldcatalog-ref_tabname = 'MARD'.

fieldcatalog-ref_fieldname = 'LGPBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGOBE'.

fieldcatalog-seltext_m = 'ST.LOC DESCRIPTION'.

fieldcatalog-col_pos = 12.

fieldcatalog-ref_tabname = 'T001L'.

fieldcatalog-ref_fieldname = 'LGOBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

IF blind = ' '. " if the check box is not checked.

fieldcatalog-fieldname = 'MENGE1'.

fieldcatalog-seltext_m = 'QTY TO RECEIVE'.

fieldcatalog-col_pos = 13.

fieldcatalog-ref_tabname = 'EKES'.

fieldcatalog-ref_fieldname = 'MENGE'.

  • fieldcatalog-rollname = 'MENGE_D'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'WEMNG'.

fieldcatalog-seltext_m = 'QTY RECEIVED'.

fieldcatalog-col_pos = 14 .

fieldcatalog-decimals_out = 0.

fieldcatalog-no_zero = 'X'.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'WEMNG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDIF.

LOOP AT fieldcatalog INTO ls_int_fcat.

ls_int_fcat-col_pos = syst-tabix.

MODIFY fieldcatalog FROM ls_int_fcat INDEX syst-tabix.

ENDLOOP.

LOOP AT fieldcatalog INTO ls_int_fcat.

CHECK ls_int_fcat-fieldname EQ 'EBELN'

OR ls_int_fcat-fieldname EQ 'LIFNR'.

ls_int_fcat-hotspot = 'X'.

MODIFY fieldcatalog FROM ls_int_fcat TRANSPORTING hotspot.

ENDLOOP.

ENDFORM. " build_fieldcatalog

*&----


*& Form data_retrieval

*&----


FORM data_retrieval.

DATA: ld_color(1) TYPE c.

DATA: V_TABIX TYPE SYTABIX.

*SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

*ekpomatnr eketeindt INTO corresponding fields of TABLE it_ekko

  • FROM ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

  • INNER JOIN eket ON ekkoebeln = eketebeln

  • WHERE ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt

*SELECT * INTO corresponding fields of TABLE it_ekko

  • FROM ekko UP TO 20 ROWS where lifnr in p_lifnr

    • and matnr in p_matnr

  • and ebeln in p_ebeln

  • and ekgrp in p_ekgrp

  • and aedat in p_aedat

  • and ernam in p_ernam.

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO_HDR

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam.

.

  • SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

  • ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf

*ekpo~txz01

  • mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding

fields of TABLE it_ekko FROM

  • ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

  • INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

  • INNER JOIN t001l ON ekpowerks = t001lwerks

  • INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

  • INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

*

    • FOR ALL entries IN it_ekko WHERE

    • ekpo~ebeln = it_ekko-ebeln

  • where ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt.

SELECT ekpo~ebeln

ekpo~ebelp

ekpo~menge

ekpo~meins

ekpo~matnr

mard~lgort

ekpo~idnlf

ekpo~txz01

mard~lgpbe

t001l~lgobe

ekes~menge

eket~wemng INTO TABLE it_ekko_itm FROM

ekpo

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

FOR ALL entries IN it_ekko_hdr

WHERE

ekpo~ebeln = it_ekko_hdr-ebeln

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

LOOP AT IT_EKKO_itm.

MOVE-CORRESPONDING IT_EKKO_ITM TO IT_EKKO.

READ TABLE IT_EKKO_HDR WITH KEY EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

IT_EKKO-aedat = IT_EKKO_HDR-AEDAT.

IT_EKKO-ekgrp = IT_EKKO_HDR-EKGRP.

IT_EKKO-ekorg = IT_EKKO_HDR-EKORG.

IT_EKKO-lifnr = IT_EKKO_HDR-LIFNR.

ENDIF.

APPEND IT_EKKO.

CLEAR: IT_EKKO.

ENDLOOP.

LOOP AT it_ekko INTO wa_ekko.

CLEAR wa_ekko-wemng.

MODIFY it_ekko FROM wa_ekko INDEX sy-tabix.

ENDLOOP.

ENDFORM. " data_retrieval

*&----


*& Form display_alv_report

*&----


FORM display_alv_report.

DATA:user_command TYPE slis_formname,

set_pf_status TYPE slis_formname.

set_pf_status = 'ZSTANDARD_FULLSCREEN'.

user_command = 'ALV_USER_COMMAND'.

DATA: gt_events TYPE slis_t_event.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

is_layout = gd_layout

i_callback_user_command = 'USER_COMMAND'

it_events = gt_events

it_fieldcat = fieldcatalog[]

it_sort = it_sortcat

i_save = 'A'

TABLES

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

*&----


*& Form top-of-page

*&----


FORM top-of-page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'STOCK PO RECEIVER REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info."todays date

APPEND wa_header TO t_header.

CLEAR: wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

  • IT_LIST_COMMENTARY = SD_HEADING.

  • i_logo = 'GANESH_LOGO'.

ENDFORM. " top-of-page

----


  • FORM user_command *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • case r_ucomm.

  • when '&IC1'.

IF rs_selfield-fieldname = 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

  • when 'ULHAS'.

IF rs_selfield-fieldname = 'LIFNR'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-lifnr.

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

ENDIF.

    • WHEN 'IT_EKKO-LIFNR'.

  • if rs_selfield-fieldname = 'LIFNR'.

  • SET PARAMETER ID 'LIF' FIELD rs_selfield-value.

  • CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

  • ENDIF.

  • endcase.

ENDFORM. "user_command

&----


*& Form build_events

&----


FORM build_events.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_events[].

IF sy-subrc <> 0.

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

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

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE 'TOP-OF-PAGE' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE 'USER_COMMAND' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

IF sy-subrc = 0.

MOVE 'END_OF_LIST' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

ENDFORM. " build_events

----


  • FORM END_OF_PAGE *

----


FORM end_of_page.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

WRITE: sy-uline(50).

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_page

----


  • FORM END_OF_LIST *

----


FORM end_of_list.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_list

&----


*& Form build_sortcat

&----


FORM build_sortcat.

wa_sort-spos = 1.

wa_sort-fieldname = 'EBELN'.

APPEND wa_sort TO it_sortcat.

wa_sort-spos = 2.

wa_sort-fieldname = 'EBELP'.

APPEND wa_sort TO it_sortcat.

ENDFORM. " build_sortcat

Thanks,

Naren

21 REPLIES 21
Read only

Former Member
0 Likes
2,018

Hi,

1) Which select is failing the first one or the second select??

2) Also The FOR ALL ENTRIES code is commented..Is it a typo??

Thanks,

Naren

Read only

0 Likes
2,018

ACTUALLY I AM GETTING THE DATA WITH THESE SELECT STATEMENTS NAREN..

but problem is the with the last select statement is p_ernam if i give one user name then i am not getting the data created by that user.

For all entries.. actually i have to retrieve the item data based upon the values in the it_ekko header data so i used that but if i use that with out where condition my selection screen fields r not working.. so i commented those lines...

can any one help me to solve my problem or to correct my code or to modify my code...

Read only

Former Member
0 Likes
2,018

Hi,

Why do you have two SELECTs one for ekko & ekpo and other for ekko, ekpo & other tables..You can directly select from all the tables using join..

For EKES inner join I have added another AND condition..Marked in bold..

Try this..

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf ekpo~txz01

mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding fields of TABLE it_ekko FROM

ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln <b>AND ekpoebelp = ekesebelp</b>

where ekko~lifnr IN p_lifnr

AND ekko~ebeln IN p_ebeln

AND ekko~ekgrp IN p_ekgrp

AND ekko~aedat IN p_aedat

AND ekko~ernam IN p_ernam

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

Thanks,

Naren

Read only

0 Likes
2,018

Naren actual logic should be like...

First of all i have to get all the PO numbers based upon the selection screen values

after that for every single PO there would be different multiple line items rite.. I have to get all those items in the output based upon the selection made that y i put 2 select statements..

actually i have to use for all entries but I am not getting the idea how to apply that...

Read only

0 Likes
2,018

Any how its working fine for me...

but My main issue is with the last field in the selection screen that is the field for the PO created by

if i give some name it is not retrieving the data based upon the user name given in that selection screen where to modify my select statement...

Read only

Former Member
0 Likes
2,018

HI

Try like this

SELECT ebeln

aedat

ekgrp

ekorg

lifnr

INTO TABLE it_ekko

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam

if not it_ekko[] is initial.

SELECT ebeln

ebelp

menge

meins

matnr

idnlf

txz01

from ekpo

into table it_ekpo

for all entries in it_ekko

where ebeln = it_ekko-ebeln.

and matnr in p_matnr.

if not it_ekpo[] is initial.

SELECT matnr

waers

lgort

lgpbe

from mard

into table it_mard

for all entries in it_ekpo

where matnr = it_ekpo-matnr.

endif.

if not it_ekpo[] is initial.

SELECT lgobe

from t001l

into table it_t001l

for all entries in it_ekpo

where werks = it_ekpo-werks.

endif.

if not it_ekpo[] is initial.

SELECT ebeln

menge

from ekes

into table it_ekes

for all entries in it_ekpo

where ebeln = it_ekpo-ebeln.

endif.

if not it_ekpo[] is initial.

SELECT ebeln

ebelp

wemng

from eket

into table it_eket

for all entries in it_ekpo

where ebeln = it_ekpo-ebeln

and ebelp = it_ekpo-ebelp

and eindt in p_eindt.

endif.

endif.

Donot use <b>INTO CORRESPONDING FIELDS OF and JOINS</b> Instead use for all entries as i have written in the code.

Hope this will solve your problem.

Regards

Haritha.

Read only

Former Member
0 Likes
2,018

Hi,

Okay..Try this..

<b>for header details...</b>

DATA: IT_EKKO_HDR like it_ekko occurs 0 with header line.

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO_HDR

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam.

<b>for item details</b>

SELECT ekpoebeln ekpoposnr

ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf ekpo~txz01

mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding fields of TABLE it_ekko FROM

ekpo

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln

FOR ALL entries IN it_ekko_hdr

WHERE

ekpo~ebeln = it_ekko_hdr-ebeln

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

  • Merge the two tables.

DATA: V_TABIX TYPE SYTABIX.

LOOP AT IT_EKKO.

V_TABIX = SY-TABIX.

READ TABLE IT_EKKO_HDR WITH KEY EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING IT_EKKO_HDR TO IT_EKKO.

MODIFY IT_EKKO INDEX V_TABIX.

ENDIF.

ENDLOOP.

Thanks,

Naren

Read only

0 Likes
2,018

Naren i am getting this error..

When using "WITH HEADER LINE", the line type cannot be a table type. a

table type.

here i am giving my data declarations...

YPE-POOLS slis .

TABLES: ekko,

ekpo,

eket,

mara,

mard,

t001l,

makt.

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

aedat TYPE ekko-aedat,

ekgrp TYPE ekko-ekgrp,

ekorg TYPE ekko-ekorg,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

DATA: IT_EKKO_HDR like it_ekko occurs 0 with header line.

can u check it out once plz....

Read only

0 Likes
2,018

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

<b>DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE</b>

Read only

Former Member
0 Likes
2,018

Hi,

Changes marked in bold..

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

<b>DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE.</b>

Thanks,

Naren

Read only

0 Likes
2,018

Naren its not retrieving the item details any more

here I am posting my total code can u check it once plz...

REPORT zpo_receiver1.

TYPE-POOLS slis .

TABLES: ekko,

ekpo,

eket,

mara,

mard,

t001l,

makt.

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

aedat TYPE ekko-aedat,

ekgrp TYPE ekko-ekgrp,

ekorg TYPE ekko-ekorg,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko.

*types: begin of i_ekko_hdr ,

  • ebeln TYPE ekko-ebeln,

  • aedat TYPE ekko-aedat,

  • ekgrp TYPE ekko-ekgrp,

  • ekorg TYPE ekko-ekorg,

  • lifnr TYPE ekko-lifnr,

  • end of i_ekko_hdr.

*

*DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF I_EKKO_HDR INITIAL SIZE 0.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,

wa_ekko TYPE t_ekko.

DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid VALUE sy-repid.

  • Data declaration for EVENT and PRINT PARAMETER.

DATA: gt_events TYPE slis_t_event,

gd_prntparams TYPE slis_print_alv.

  • data declaration for sorting.

DATA : it_sortcat TYPE slis_sortinfo_alv OCCURS 1,

wa_sort LIKE LINE OF it_sortcat.

DATA : i_list_comments TYPE slis_t_listheader.

*DATA int_fcat TYPE slis_t_fieldcat_alv.

DATA:ls_int_fcat TYPE slis_fieldcat_alv.

*data: rs_selfield type slis_selfield.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_sortcat.

PERFORM build_events.

PERFORM top-of-page.

PERFORM display_alv_report.

END-OF-SELECTION.

*&----


*& Form build_fieldcatalog

*&----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'PO NUMBER'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EBELN'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'PO DATE'.

fieldcatalog-col_pos = 1.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'AEDAT'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKGRP'.

fieldcatalog-seltext_m = 'PUR GRP/BUYER'.

fieldcatalog-col_pos = 2.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKGRP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKORG'.

fieldcatalog-seltext_m = 'PUR ORG.'.

fieldcatalog-col_pos = 3.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKORG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LIFNR'.

fieldcatalog-seltext_m = 'VENDOR NO'.

fieldcatalog-col_pos = 4.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'LIFNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO LINE'.

fieldcatalog-col_pos = 5.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'EBELP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'ORD QTY'.

fieldcatalog-col_pos = 6.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'MENGE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'UNIT'.

fieldcatalog-col_pos = 7.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MEINS'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'MATERIAL'.

fieldcatalog-col_pos = 8.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MATNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'TXZ01'.

fieldcatalog-seltext_m = 'DESCRIPTION'.

fieldcatalog-col_pos = 9.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'TXZ01'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'IDNLF'.

fieldcatalog-seltext_m = 'VEND MAT'.

fieldcatalog-col_pos = 10.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'IDNLF'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGPBE'.

fieldcatalog-seltext_m = 'ST.LOC SHELF BIN'.

fieldcatalog-col_pos = 11.

  • fieldcatalog-outputlen = 6.

fieldcatalog-ref_tabname = 'MARD'.

fieldcatalog-ref_fieldname = 'LGPBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGOBE'.

fieldcatalog-seltext_m = 'ST.LOC DESCRIPTION'.

fieldcatalog-col_pos = 12.

fieldcatalog-ref_tabname = 'T001L'.

fieldcatalog-ref_fieldname = 'LGOBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

IF blind = ' '. " if the check box is not checked.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'QTY TO RECEIVE'.

fieldcatalog-col_pos = 13.

fieldcatalog-ref_tabname = 'EKES'.

fieldcatalog-ref_fieldname = 'MENGE1'.

  • fieldcatalog-rollname = 'MENGE_D'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'WEMNG'.

fieldcatalog-seltext_m = 'QTY RECEIVED'.

fieldcatalog-col_pos = 14 .

fieldcatalog-decimals_out = 0.

fieldcatalog-no_zero = 'X'.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'WEMNG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDIF.

LOOP AT fieldcatalog INTO ls_int_fcat.

ls_int_fcat-col_pos = syst-tabix.

MODIFY fieldcatalog FROM ls_int_fcat INDEX syst-tabix.

ENDLOOP.

LOOP AT fieldcatalog INTO ls_int_fcat.

CHECK ls_int_fcat-fieldname EQ 'EBELN'

OR ls_int_fcat-fieldname EQ 'LIFNR'.

ls_int_fcat-hotspot = 'X'.

MODIFY fieldcatalog FROM ls_int_fcat TRANSPORTING hotspot.

ENDLOOP.

ENDFORM. " build_fieldcatalog

*&----


*& Form data_retrieval

*&----


FORM data_retrieval.

DATA: ld_color(1) TYPE c.

DATA: V_TABIX TYPE SYTABIX.

*SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekkolifnr ekpomatnr eket~eindt INTO corresponding fields of TABLE it_ekko

  • FROM ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

  • INNER JOIN eket ON ekkoebeln = eketebeln

  • WHERE ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt

*SELECT * INTO corresponding fields of TABLE it_ekko

  • FROM ekko UP TO 20 ROWS where lifnr in p_lifnr

    • and matnr in p_matnr

  • and ebeln in p_ebeln

  • and ekgrp in p_ekgrp

  • and aedat in p_aedat

  • and ernam in p_ernam.

SELECT ekko~ebeln ekko~aedat ekko~ekgrp ekko~ekorg ekko~lifnr

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO_HDR

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam.

.

  • SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

  • ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf ekpo~txz01

  • mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding fields of TABLE it_ekko FROM

  • ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

  • INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

  • INNER JOIN t001l ON ekpowerks = t001lwerks

  • INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

  • INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

*

    • FOR ALL entries IN it_ekko WHERE

    • ekpo~ebeln = it_ekko-ebeln

  • where ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt.

SELECT ekpo~ebeln

ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf ekpo~txz01

mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding fields of TABLE it_ekko FROM

ekpo

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln

FOR ALL entries IN it_ekko_hdr

WHERE

ekpo~ebeln = it_ekko_hdr-ebeln

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

LOOP AT IT_EKKO.

V_TABIX = SY-TABIX.

READ TABLE IT_EKKO_HDR WITH KEY EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING IT_EKKO_HDR TO IT_EKKO.

MODIFY IT_EKKO INDEX V_TABIX.

ENDIF.

ENDLOOP.

LOOP AT it_ekko INTO wa_ekko.

CLEAR wa_ekko-wemng.

MODIFY it_ekko FROM wa_ekko INDEX sy-tabix.

ENDLOOP.

ENDFORM. " data_retrieval

*&----


*& Form display_alv_report

*&----


FORM display_alv_report.

DATA:user_command TYPE slis_formname,

set_pf_status TYPE slis_formname.

set_pf_status = 'ZSTANDARD_FULLSCREEN'.

user_command = 'ALV_USER_COMMAND'.

DATA: gt_events TYPE slis_t_event.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

is_layout = gd_layout

i_callback_user_command = 'USER_COMMAND'

it_events = gt_events

it_fieldcat = fieldcatalog[]

it_sort = it_sortcat

i_save = 'A'

TABLES

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

*&----


*& Form top-of-page

*&----


FORM top-of-page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'STOCK PO RECEIVER REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info."todays date

APPEND wa_header TO t_header.

CLEAR: wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

  • IT_LIST_COMMENTARY = SD_HEADING.

  • i_logo = 'GANESH_LOGO'.

ENDFORM. " top-of-page

----


  • FORM user_command *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • case r_ucomm.

  • when '&IC1'.

IF rs_selfield-fieldname = 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

  • when 'ULHAS'.

IF rs_selfield-fieldname = 'LIFNR'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-lifnr.

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

ENDIF.

    • WHEN 'IT_EKKO-LIFNR'.

  • if rs_selfield-fieldname = 'LIFNR'.

  • SET PARAMETER ID 'LIF' FIELD rs_selfield-value.

  • CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

  • ENDIF.

  • endcase.

ENDFORM. "user_command

&----


*& Form build_events

&----


FORM build_events.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_events[].

IF sy-subrc <> 0.

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

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

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE 'TOP-OF-PAGE' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE 'USER_COMMAND' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

IF sy-subrc = 0.

MOVE 'END_OF_LIST' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

ENDFORM. " build_events

----


  • FORM END_OF_PAGE *

----


FORM end_of_page.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

WRITE: sy-uline(50).

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_page

----


  • FORM END_OF_LIST *

----


FORM end_of_list.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_list

&----


*& Form build_sortcat

&----


FORM build_sortcat.

wa_sort-spos = 1.

wa_sort-fieldname = 'EBELN'.

APPEND wa_sort TO it_sortcat.

wa_sort-spos = 2.

wa_sort-fieldname = 'EBELP'.

APPEND wa_sort TO it_sortcat.

ENDFORM. " build_sortcat

Plz help me its bit urgent..

Read only

0 Likes
2,018

Naren some problem with the loop statement after select statement i think...

when i comment those lines i am getting the line items but not all those existing in the data base but only some line items in the random order even though i didn't give any value in the selection screen.

Read only

Former Member
0 Likes
2,018

Hi,

Check the modified code...It is working for me...Just copy and paste the code..

TYPE-POOLS slis .

TABLES: ekko,

ekpo,

eket,

mara,

mard,

t001l,

makt.

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

aedat TYPE ekko-aedat,

ekgrp TYPE ekko-ekgrp,

ekorg TYPE ekko-ekorg,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko.

*types: begin of i_ekko_hdr ,

  • ebeln TYPE ekko-ebeln,

  • aedat TYPE ekko-aedat,

  • ekgrp TYPE ekko-ekgrp,

  • ekorg TYPE ekko-ekorg,

  • lifnr TYPE ekko-lifnr,

  • end of i_ekko_hdr.

*

*DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF I_EKKO_HDR INITIAL SIZE 0.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,

wa_ekko TYPE t_ekko.

DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

gd_repid = sy-repid.

  • Data declaration for EVENT and PRINT PARAMETER.

DATA: gt_events TYPE slis_t_event,

gd_prntparams TYPE slis_print_alv.

  • data declaration for sorting.

DATA : it_sortcat TYPE slis_sortinfo_alv OCCURS 1,

wa_sort LIKE LINE OF it_sortcat.

DATA : i_list_comments TYPE slis_t_listheader.

*DATA int_fcat TYPE slis_t_fieldcat_alv.

DATA:ls_int_fcat TYPE slis_fieldcat_alv.

*data: rs_selfield type slis_selfield.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_sortcat.

PERFORM build_events.

PERFORM top-of-page.

PERFORM display_alv_report.

END-OF-SELECTION.

*&----


*& Form build_fieldcatalog

*&----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'PO NUMBER'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EBELN'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'PO DATE'.

fieldcatalog-col_pos = 1.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'AEDAT'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKGRP'.

fieldcatalog-seltext_m = 'PUR GRP/BUYER'.

fieldcatalog-col_pos = 2.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKGRP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKORG'.

fieldcatalog-seltext_m = 'PUR ORG.'.

fieldcatalog-col_pos = 3.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKORG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LIFNR'.

fieldcatalog-seltext_m = 'VENDOR NO'.

fieldcatalog-col_pos = 4.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'LIFNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO LINE'.

fieldcatalog-col_pos = 5.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'EBELP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'ORD QTY'.

fieldcatalog-col_pos = 6.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'MENGE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'UNIT'.

fieldcatalog-col_pos = 7.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MEINS'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'MATERIAL'.

fieldcatalog-col_pos = 8.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MATNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'TXZ01'.

fieldcatalog-seltext_m = 'DESCRIPTION'.

fieldcatalog-col_pos = 9.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'TXZ01'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'IDNLF'.

fieldcatalog-seltext_m = 'VEND MAT'.

fieldcatalog-col_pos = 10.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'IDNLF'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGPBE'.

fieldcatalog-seltext_m = 'ST.LOC SHELF BIN'.

fieldcatalog-col_pos = 11.

  • fieldcatalog-outputlen = 6.

fieldcatalog-ref_tabname = 'MARD'.

fieldcatalog-ref_fieldname = 'LGPBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGOBE'.

fieldcatalog-seltext_m = 'ST.LOC DESCRIPTION'.

fieldcatalog-col_pos = 12.

fieldcatalog-ref_tabname = 'T001L'.

fieldcatalog-ref_fieldname = 'LGOBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

IF blind = ' '. " if the check box is not checked.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'QTY TO RECEIVE'.

fieldcatalog-col_pos = 13.

fieldcatalog-ref_tabname = 'EKES'.

fieldcatalog-ref_fieldname = 'MENGE1'.

  • fieldcatalog-rollname = 'MENGE_D'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'WEMNG'.

fieldcatalog-seltext_m = 'QTY RECEIVED'.

fieldcatalog-col_pos = 14 .

fieldcatalog-decimals_out = 0.

fieldcatalog-no_zero = 'X'.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'WEMNG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDIF.

LOOP AT fieldcatalog INTO ls_int_fcat.

ls_int_fcat-col_pos = syst-tabix.

MODIFY fieldcatalog FROM ls_int_fcat INDEX syst-tabix.

ENDLOOP.

LOOP AT fieldcatalog INTO ls_int_fcat.

CHECK ls_int_fcat-fieldname EQ 'EBELN'

OR ls_int_fcat-fieldname EQ 'LIFNR'.

ls_int_fcat-hotspot = 'X'.

MODIFY fieldcatalog FROM ls_int_fcat TRANSPORTING hotspot.

ENDLOOP.

ENDFORM. " build_fieldcatalog

*&----


*& Form data_retrieval

*&----


FORM data_retrieval.

DATA: ld_color(1) TYPE c.

DATA: V_TABIX TYPE SYTABIX.

*SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

*ekpomatnr eketeindt INTO corresponding fields of TABLE it_ekko

  • FROM ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

  • INNER JOIN eket ON ekkoebeln = eketebeln

  • WHERE ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt

*SELECT * INTO corresponding fields of TABLE it_ekko

  • FROM ekko UP TO 20 ROWS where lifnr in p_lifnr

    • and matnr in p_matnr

  • and ebeln in p_ebeln

  • and ekgrp in p_ekgrp

  • and aedat in p_aedat

  • and ernam in p_ernam.

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO_HDR

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam.

.

  • SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

  • ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf

*ekpo~txz01

  • mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding

fields of TABLE it_ekko FROM

  • ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

  • INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

  • INNER JOIN t001l ON ekpowerks = t001lwerks

  • INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

  • INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

*

    • FOR ALL entries IN it_ekko WHERE

    • ekpo~ebeln = it_ekko-ebeln

  • where ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt.

IF NOT IT_EKKO_HDR[] IS INITIAL.

SELECT ekpo~ebeln

ekpo~ebelp

ekpo~menge

ekpo~meins

ekpo~matnr

mard~lgort

ekpo~idnlf

ekpo~txz01

mard~lgpbe

t001l~lgobe

ekes~menge

eket~wemng INTO corresponding fields

of TABLE it_ekko FROM

ekpo

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

FOR ALL entries IN it_ekko_hdr

WHERE

ekpo~ebeln = it_ekko_hdr-ebeln

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

ENDIF.

LOOP AT IT_EKKO.

V_TABIX = SY-TABIX.

READ TABLE IT_EKKO_HDR WITH KEY EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING IT_EKKO_HDR TO IT_EKKO.

MODIFY IT_EKKO INDEX V_TABIX TRANSPORTING

aedat ekgrp ekorg lifnr.

ENDIF.

ENDLOOP.

LOOP AT it_ekko INTO wa_ekko.

CLEAR wa_ekko-wemng.

MODIFY it_ekko FROM wa_ekko INDEX sy-tabix.

ENDLOOP.

ENDFORM. " data_retrieval

*&----


*& Form display_alv_report

*&----


FORM display_alv_report.

DATA:user_command TYPE slis_formname,

set_pf_status TYPE slis_formname.

set_pf_status = 'ZSTANDARD_FULLSCREEN'.

user_command = 'ALV_USER_COMMAND'.

DATA: gt_events TYPE slis_t_event.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

is_layout = gd_layout

i_callback_user_command = 'USER_COMMAND'

it_events = gt_events

it_fieldcat = fieldcatalog[]

it_sort = it_sortcat

i_save = 'A'

TABLES

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

*&----


*& Form top-of-page

*&----


FORM top-of-page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'STOCK PO RECEIVER REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info."todays date

APPEND wa_header TO t_header.

CLEAR: wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

  • IT_LIST_COMMENTARY = SD_HEADING.

  • i_logo = 'GANESH_LOGO'.

ENDFORM. " top-of-page

----


  • FORM user_command *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • case r_ucomm.

  • when '&IC1'.

IF rs_selfield-fieldname = 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

  • when 'ULHAS'.

IF rs_selfield-fieldname = 'LIFNR'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-lifnr.

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

ENDIF.

    • WHEN 'IT_EKKO-LIFNR'.

  • if rs_selfield-fieldname = 'LIFNR'.

  • SET PARAMETER ID 'LIF' FIELD rs_selfield-value.

  • CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

  • ENDIF.

  • endcase.

ENDFORM. "user_command

&----


*& Form build_events

&----


FORM build_events.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_events[].

IF sy-subrc <> 0.

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

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

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE 'TOP-OF-PAGE' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE 'USER_COMMAND' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

IF sy-subrc = 0.

MOVE 'END_OF_LIST' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

ENDFORM. " build_events

----


  • FORM END_OF_PAGE *

----


FORM end_of_page.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

WRITE: sy-uline(50).

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_page

----


  • FORM END_OF_LIST *

----


FORM end_of_list.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_list

&----


*& Form build_sortcat

&----


FORM build_sortcat.

wa_sort-spos = 1.

wa_sort-fieldname = 'EBELN'.

APPEND wa_sort TO it_sortcat.

wa_sort-spos = 2.

wa_sort-fieldname = 'EBELP'.

APPEND wa_sort TO it_sortcat.

ENDFORM. " build_sortcat

Thanks,

Naren

Read only

0 Likes
2,018

Naren,

It is not giving all the records if u go to se16 and from the ekko table check all the records in the order and

in ur program with out giving any selection screen values execute it.

some records r not coming can u tell me the reason where is the exact problem...

Read only

Former Member
0 Likes
2,018

Hi,

In the first select from EKKO I am getting all the records...I checked the number of records in SE16 also...

But in the second select, since you are also having a INNER JOIN ON EKES...The records are getting filtered..

Since in our system..All the POs will not have confirmations..I am getting less records...

The select from EKKO is working fine for me...

Please make sure to reward points for helpful answers..

Thanks

Naren

Read only

0 Likes
2,018

Naren I am getting the print preview can u check it out once...

Plz its almost completed... I donno what is the problem exactly...

can u let me know

Read only

Former Member
0 Likes
2,018

Hi,

Do this change marked in bold..

fieldcatalog-fieldname = <b>'MENGE1'</b>.

fieldcatalog-seltext_m = 'QTY TO RECEIVE'.

fieldcatalog-col_pos = 13.

fieldcatalog-ref_tabname = 'EKES'.

fieldcatalog-ref_fieldname = <b>'MENGE'.</b>

  • fieldcatalog-rollname = 'MENGE_D'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

Thanks,

Naren

Read only

0 Likes
2,018

Naren finally

For that above field i am not getting the values it is showing all 0.0000

where is the exact problem naren...

sorry to trouble u so many times...

I really appreciate your valuable time naren...

Read only

Former Member
2,019

Hi,

Check this new code..

TYPE-POOLS slis .

TABLES: ekko,

ekpo,

eket,

mara,

mard,

t001l,

makt.

SELECTION-SCREEN BEGIN OF BLOCK blc1 WITH FRAME TITLE text-b01.

SELECT-OPTIONS: p_lifnr FOR ekko-lifnr,

p_matnr FOR ekpo-matnr,

p_ebeln FOR ekko-ebeln,

p_ekgrp FOR ekko-ekgrp,

p_aedat FOR ekko-aedat,

p_eindt FOR eket-eindt,

p_ernam FOR ekko-ernam.

PARAMETERS: blind AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK blc1.

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

aedat TYPE ekko-aedat,

ekgrp TYPE ekko-ekgrp,

ekorg TYPE ekko-ekorg,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko.

TYPES: BEGIN OF t_ekko_itm,

ebeln TYPE ekko-ebeln,

ebelp TYPE ekpo-ebelp,

MENGE TYPE ekpo-menge,

meins TYPE ekpo-meins,

matnr TYPE ekpo-matnr,

lgort TYPE mard-lgort,

idnlf TYPE ekpo-idnlf,

txz01 TYPE ekpo-txz01,

lgpbe TYPE mard-lgpbe,

lgobe TYPE t001l-lgobe,

MENGE1 TYPE ekes-menge,

wemng TYPE eket-wemng,

END OF t_ekko_itm.

*types: begin of i_ekko_hdr ,

  • ebeln TYPE ekko-ebeln,

  • aedat TYPE ekko-aedat,

  • ekgrp TYPE ekko-ekgrp,

  • ekorg TYPE ekko-ekorg,

  • lifnr TYPE ekko-lifnr,

  • end of i_ekko_hdr.

*

*DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF I_EKKO_HDR INITIAL SIZE 0.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,

wa_ekko TYPE t_ekko.

DATA: IT_EKKO_HDR TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE.

DATA: IT_EKKO_ITM TYPE STANDARD TABLE OF T_EKKO_ITM WITH HEADER LINE.

*ALV data declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

gd_repid = sy-repid.

  • Data declaration for EVENT and PRINT PARAMETER.

DATA: gt_events TYPE slis_t_event,

gd_prntparams TYPE slis_print_alv.

  • data declaration for sorting.

DATA : it_sortcat TYPE slis_sortinfo_alv OCCURS 1,

wa_sort LIKE LINE OF it_sortcat.

DATA : i_list_comments TYPE slis_t_listheader.

*DATA int_fcat TYPE slis_t_fieldcat_alv.

DATA:ls_int_fcat TYPE slis_fieldcat_alv.

*data: rs_selfield type slis_selfield.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_sortcat.

PERFORM build_events.

PERFORM top-of-page.

PERFORM display_alv_report.

END-OF-SELECTION.

*&----


*& Form build_fieldcatalog

*&----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'PO NUMBER'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EBELN'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'PO DATE'.

fieldcatalog-col_pos = 1.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'AEDAT'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKGRP'.

fieldcatalog-seltext_m = 'PUR GRP/BUYER'.

fieldcatalog-col_pos = 2.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKGRP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EKORG'.

fieldcatalog-seltext_m = 'PUR ORG.'.

fieldcatalog-col_pos = 3.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'EKORG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LIFNR'.

fieldcatalog-seltext_m = 'VENDOR NO'.

fieldcatalog-col_pos = 4.

fieldcatalog-ref_tabname = 'EKKO'.

fieldcatalog-ref_fieldname = 'LIFNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO LINE'.

fieldcatalog-col_pos = 5.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'EBELP'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'ORD QTY'.

fieldcatalog-col_pos = 6.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'MENGE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'UNIT'.

fieldcatalog-col_pos = 7.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MEINS'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'MATERIAL'.

fieldcatalog-col_pos = 8.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'MATNR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'TXZ01'.

fieldcatalog-seltext_m = 'DESCRIPTION'.

fieldcatalog-col_pos = 9.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'TXZ01'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'IDNLF'.

fieldcatalog-seltext_m = 'VEND MAT'.

fieldcatalog-col_pos = 10.

fieldcatalog-ref_tabname = 'EKPO'.

fieldcatalog-ref_fieldname = 'IDNLF'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGPBE'.

fieldcatalog-seltext_m = 'ST.LOC SHELF BIN'.

fieldcatalog-col_pos = 11.

  • fieldcatalog-outputlen = 6.

fieldcatalog-ref_tabname = 'MARD'.

fieldcatalog-ref_fieldname = 'LGPBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'LGOBE'.

fieldcatalog-seltext_m = 'ST.LOC DESCRIPTION'.

fieldcatalog-col_pos = 12.

fieldcatalog-ref_tabname = 'T001L'.

fieldcatalog-ref_fieldname = 'LGOBE'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

IF blind = ' '. " if the check box is not checked.

fieldcatalog-fieldname = 'MENGE1'.

fieldcatalog-seltext_m = 'QTY TO RECEIVE'.

fieldcatalog-col_pos = 13.

fieldcatalog-ref_tabname = 'EKES'.

fieldcatalog-ref_fieldname = 'MENGE'.

  • fieldcatalog-rollname = 'MENGE_D'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'WEMNG'.

fieldcatalog-seltext_m = 'QTY RECEIVED'.

fieldcatalog-col_pos = 14 .

fieldcatalog-decimals_out = 0.

fieldcatalog-no_zero = 'X'.

fieldcatalog-ref_tabname = 'EKET'.

fieldcatalog-ref_fieldname = 'WEMNG'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDIF.

LOOP AT fieldcatalog INTO ls_int_fcat.

ls_int_fcat-col_pos = syst-tabix.

MODIFY fieldcatalog FROM ls_int_fcat INDEX syst-tabix.

ENDLOOP.

LOOP AT fieldcatalog INTO ls_int_fcat.

CHECK ls_int_fcat-fieldname EQ 'EBELN'

OR ls_int_fcat-fieldname EQ 'LIFNR'.

ls_int_fcat-hotspot = 'X'.

MODIFY fieldcatalog FROM ls_int_fcat TRANSPORTING hotspot.

ENDLOOP.

ENDFORM. " build_fieldcatalog

*&----


*& Form data_retrieval

*&----


FORM data_retrieval.

DATA: ld_color(1) TYPE c.

DATA: V_TABIX TYPE SYTABIX.

*SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

*ekpomatnr eketeindt INTO corresponding fields of TABLE it_ekko

  • FROM ekko INNER JOIN ekpo ON ekkoebeln = ekpoebeln

  • INNER JOIN eket ON ekkoebeln = eketebeln

  • WHERE ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt

*SELECT * INTO corresponding fields of TABLE it_ekko

  • FROM ekko UP TO 20 ROWS where lifnr in p_lifnr

    • and matnr in p_matnr

  • and ebeln in p_ebeln

  • and ekgrp in p_ekgrp

  • and aedat in p_aedat

  • and ernam in p_ernam.

SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO_HDR

FROM ekko

WHERE lifnr IN p_lifnr

AND ebeln IN p_ebeln

AND ekgrp IN p_ekgrp

AND aedat IN p_aedat

AND ernam IN p_ernam.

.

  • SELECT ekkoebeln ekkoaedat ekkoekgrp ekkoekorg ekko~lifnr

  • ekpoebelp ekpomenge ekpomeins ekpomatnr mardlgort ekpoidnlf

*ekpo~txz01

  • mardlgpbe t001llgobe ekesmenge eketwemng INTO corresponding

fields of TABLE it_ekko FROM

  • ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

  • INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

  • INNER JOIN t001l ON ekpowerks = t001lwerks

  • INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

  • INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

*

    • FOR ALL entries IN it_ekko WHERE

    • ekpo~ebeln = it_ekko-ebeln

  • where ekko~lifnr IN p_lifnr

  • AND ekko~ebeln IN p_ebeln

  • AND ekko~ekgrp IN p_ekgrp

  • AND ekko~aedat IN p_aedat

  • AND ekko~ernam IN p_ernam

  • AND ekpo~matnr IN p_matnr

  • AND eket~eindt IN p_eindt.

SELECT ekpo~ebeln

ekpo~ebelp

ekpo~menge

ekpo~meins

ekpo~matnr

mard~lgort

ekpo~idnlf

ekpo~txz01

mard~lgpbe

t001l~lgobe

ekes~menge

eket~wemng INTO TABLE it_ekko_itm FROM

ekpo

INNER JOIN eket ON ekpoebeln = eketebeln AND ekpoebelp = eketebelp

INNER JOIN t001l ON ekpowerks = t001lwerks

INNER JOIN mard ON ekpomatnr = mardmatnr AND ekpowerks = mardwerks

INNER JOIN ekes ON ekpoebeln = ekesebeln AND ekpoebelp = ekesebelp

FOR ALL entries IN it_ekko_hdr

WHERE

ekpo~ebeln = it_ekko_hdr-ebeln

AND ekpo~matnr IN p_matnr

AND eket~eindt IN p_eindt.

LOOP AT IT_EKKO_itm.

MOVE-CORRESPONDING IT_EKKO_ITM TO IT_EKKO.

READ TABLE IT_EKKO_HDR WITH KEY EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

IT_EKKO-aedat = IT_EKKO_HDR-AEDAT.

IT_EKKO-ekgrp = IT_EKKO_HDR-EKGRP.

IT_EKKO-ekorg = IT_EKKO_HDR-EKORG.

IT_EKKO-lifnr = IT_EKKO_HDR-LIFNR.

ENDIF.

APPEND IT_EKKO.

CLEAR: IT_EKKO.

ENDLOOP.

LOOP AT it_ekko INTO wa_ekko.

CLEAR wa_ekko-wemng.

MODIFY it_ekko FROM wa_ekko INDEX sy-tabix.

ENDLOOP.

ENDFORM. " data_retrieval

*&----


*& Form display_alv_report

*&----


FORM display_alv_report.

DATA:user_command TYPE slis_formname,

set_pf_status TYPE slis_formname.

set_pf_status = 'ZSTANDARD_FULLSCREEN'.

user_command = 'ALV_USER_COMMAND'.

DATA: gt_events TYPE slis_t_event.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

is_layout = gd_layout

i_callback_user_command = 'USER_COMMAND'

it_events = gt_events

it_fieldcat = fieldcatalog[]

it_sort = it_sortcat

i_save = 'A'

TABLES

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

*&----


*& Form top-of-page

*&----


FORM top-of-page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'STOCK PO RECEIVER REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info."todays date

APPEND wa_header TO t_header.

CLEAR: wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

  • IT_LIST_COMMENTARY = SD_HEADING.

  • i_logo = 'GANESH_LOGO'.

ENDFORM. " top-of-page

----


  • FORM user_command *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • case r_ucomm.

  • when '&IC1'.

IF rs_selfield-fieldname = 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

  • when 'ULHAS'.

IF rs_selfield-fieldname = 'LIFNR'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-lifnr.

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

ENDIF.

    • WHEN 'IT_EKKO-LIFNR'.

  • if rs_selfield-fieldname = 'LIFNR'.

  • SET PARAMETER ID 'LIF' FIELD rs_selfield-value.

  • CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

  • ENDIF.

  • endcase.

ENDFORM. "user_command

&----


*& Form build_events

&----


FORM build_events.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_events[].

IF sy-subrc <> 0.

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

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

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE 'TOP-OF-PAGE' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

READ TABLE gt_events WITH KEY name = slis_ev_top_of_list

INTO ls_event.

IF sy-subrc = 0.

MOVE 'USER_COMMAND' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

IF sy-subrc = 0.

MOVE 'END_OF_LIST' TO ls_event-form.

APPEND ls_event TO gt_events.

ENDIF.

ENDFORM. " build_events

----


  • FORM END_OF_PAGE *

----


FORM end_of_page.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

WRITE: sy-uline(50).

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_page

----


  • FORM END_OF_LIST *

----


FORM end_of_list.

DATA: listwidth TYPE i,

ld_pagepos(10) TYPE c,

ld_page(10) TYPE c.

SKIP. WRITE:/40 'Page:', sy-pagno .

ENDFORM. "end_of_list

&----


*& Form build_sortcat

&----


FORM build_sortcat.

wa_sort-spos = 1.

wa_sort-fieldname = 'EBELN'.

APPEND wa_sort TO it_sortcat.

wa_sort-spos = 2.

wa_sort-fieldname = 'EBELP'.

APPEND wa_sort TO it_sortcat.

ENDFORM. " build_sortcat

Thanks,

Naren

Read only

Former Member
0 Likes
2,018

Hi,

Please make sure to reward points for helpful answers..

And close the thread if the problem is solved..

Thanks,

Naren

Read only

Former Member
0 Likes
2,018

hi,

Why don't you use ABAP Query and Infoset, you have all futures up there

use sq03,sq02 and sq01

regards

sarath