HI All,
To fetch the fallowing required fields from the related tables by the selection criteria Material No and Posting dates. Using ALV.
I have written code for that but its not showing any results..plz go through my code and if possible rectify it.
I am also attaching the selection criteria details and table with required field.
Field Name Description Required level Reference Table
MATNR Material No. Selection Criteria. (MARC)
BUDAT Posting Date Selection criteria. (MKPF)
MAKTX material Description Layout (MAKT)
BEDAT PO Date Layout (EKKO)
EBELN Purchase Order No. Layout (EKPO)
MENGE Purchase Order Qty. Layout (EKPO)
BPRME Order Price Unit Layout (EKPO)
NETWR PO Net Value Layout (EKPO)
BSTMG GR QTY Layout (MSEG)
DMBTR GR Value Layout (MSEG)
BPRBM Invoice Qty Layout (EKBE)
REFWR Invoice value Layout (EKBE)
here is my code:-
TABLES: marc,
mkpf,
mseg,
ekko,
ekpo,
ekbe,
rseg.
TYPE-POOLS: slis.
&----
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
budat LIKE ekbe-budat,
maktx LIKE makt-maktx,
bedat LIKE ekko-bedat,
ebeln LIKE mseg-ebeln,
menge LIKE mseg-menge,
bprme LIKE mseg-bprme,
netwr LIKE ekpo-netwr,
bstmg LIKE mseg-bstmg,
dmbtr LIKE mseg-dmbtr,
bprbm LIKE rseg-bprbm,
refwr LIKE ekbe-refwr,
END OF itab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA v_repid TYPE sy-repid.
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR marc-matnr,
s_budat FOR mkpf-budat.
SELECTION-SCREEN END OF BLOCK b1.
&----
&----
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
SELECT werks smbln bstmg dmbtr matnr ebeln FROM mseg INTO
CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN s_matnr.
**ENDSELECT.
*
*
SELECT SINGLE lifnr FROM ekko INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
*
SELECT ebeln menge FROM ekpo INTO CORRESPONDING FIELDS OF itab
WHERE ebeln = mseg-ebeln.
ENDSELECT.
*
SELECT ebeln belnr refwr budat FROM ekbe INTO CORRESPONDING FIELDS OF
itab
WHERE budat IN s_budat AND
ebeln = mseg-ebeln.
ENDSELECT.
*
SELECT SINGLE matnr FROM marc INTO itab
WHERE matnr = mseg-matnr.
**APPEND itab.
**END-OF-SELECTION.
*----
SELECT matnr ebeln menge bprme bstmg dmbtr FROM mseg INTO
CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN s_matnr.
*
*
SELECT matnr maktx FROM makt INTO CORRESPONDING FIELDS OF TABLE itab
WHERE matnr = mseg-matnr.
*
SELECT ebeln bedat FROM ekko INTO CORRESPONDING FIELDS OF TABLE itab
WHERE ebeln = mseg-ebeln.
*
SELECT ebeln netwr FROM ekpo INTO CORRESPONDING FIELDS OF TABLE itab
WHERE ebeln = mseg-ebeln.
*
SELECT ebeln bprbm FROM rseg INTO CORRESPONDING FIELDS OF TABLE itab
WHERE ebeln = mseg-ebeln.
*
SELECT budat ebeln refwr FROM ekbe INTO CORRESPONDING FIELDS OF TABLE itab
WHERE budat IN s_budat AND
ebeln = mseg-ebeln.
*----
-
SELECT matnr ebeln menge bprme bstmg dmbtr FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab WHERE matnr IN s_matnr.
SELECT matnr maktx FROM makt INTO CORRESPONDING FIELDS OF TABLE itab FOR ALL ENTRIES IN itab WHERE matnr = itab-matnr.
SELECT ebeln bedat FROM ekko INTO CORRESPONDING FIELDS OF TABLE itab FOR ALL ENTRIES IN itab WHERE ebeln = itab-ebeln.
SELECT ebeln netwr FROM ekpo INTO CORRESPONDING FIELDS OF TABLE itab FOR ALL ENTRIES IN itab WHERE ebeln = itab-ebeln.
SELECT ebeln bprbm FROM rseg INTO CORRESPONDING FIELDS OF TABLE itab FOR ALL ENTRIES IN itab WHERE ebeln = itab-ebeln.
SELECT budat ebeln refwr FROM ekbe INTO CORRESPONDING FIELDS OF
TABLE itab FOR ALL ENTRIES IN itab
WHERE budat IN s_budat AND
ebeln = itab-ebeln.
APPEND itab.
&----
PERFORM build_fieldcatlog.
PERFORM display_alv_report.
&----
LOOP AT itab.
*
*WRITE:/ itab-menge, itab-werks, itab-smbln, itab-bstmg, itab-matnr,
*itab-ebeln, itab-lifnr, itab-menge, itab-belnr, itab-refwr, itab-budat.
*
ENDLOOP.
&----
*& Form build_fieldcatlog
&----
text
----
--> p1 text
<-- p2 text
----
FORM build_fieldcatlog . "Form BUILD_FIELDCATLOG, Start
wa_fieldcat-fieldname = 'maktx'.
wa_fieldcat-seltext_m = 'maktx.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'bedat'.
wa_fieldcat-seltext_m = 'bedat.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_m = 'ebeln.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_m = 'menge.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'bprme'.
wa_fieldcat-seltext_m = 'bprme.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'netwr'.
wa_fieldcat-seltext_m = 'netwr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BSTMG'.
wa_fieldcat-seltext_m = 'bstmg.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'dmbtr'.
wa_fieldcat-seltext_m = 'dmbtr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'bprbm'.
wa_fieldcat-seltext_m = 'bprbm'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'REFWR'.
wa_fieldcat-seltext_m = 'refwr.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "build_fieldcatlog
" build_fieldcatlog "Form BUILD_FIELDCATLOG, End
&----
*& Form display_alv_report
&----
text
----
FORM display_alv_report. "Form DISPLAY_ALV_REPORT, Start
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = i_fieldcat[]
i_callback_top_of_page = 'TOP-OF-PAGE'
i_save = 'A'
TABLES
t_outtab = itab.
ENDFORM. "display_alv_report
----
TOP-OF-PAGE.
WRITE:/ 'Purchase request Print program'.
END-OF-PAGE.