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

ALV Report!

Former Member
0 Likes
563

Daer All,

Please go through the code and do let me know where is the problem.

As when I am debugging it not showing any value in ITAB.

Please check and if possible rectify the error.

REPORT zmm_purchase_report.

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.

&----


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.

Thanks.

Daer All,

Please go through the code and do let me know where is the problem.

As when I am debugging it not showing any value in ITAB.

Please check and if possible rectify the error.

REPORT zmm_purchase_report.

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.

&----


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.

Thanks.

4 REPLIES 4
Read only

Former Member
0 Likes
543

HI,

select statements u have to write as below.

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.

rgds,

bharat.

Read only

rajesh_akarte2
Active Participant
0 Likes
543

Dear Abhay,

Analysis is as follows:

1. In ur first query data will come into the internal table itab.

2. In second onwards queries u are referring to mseg structure header value which contains no value at all,that is why ur values are not comming.

While debugging and once u come to second query ,u click on mseg written after from in first query,u will see there is no value .

<b><REMOVED BY MODERATOR></b>

Regards,

Rajesh Akarte

Message was edited by:

Alvaro Tejada Galindo

Read only

Former Member
0 Likes
543

HI,

It is always better to declare a structure first and then refer it to a internal table.

Even though you have declared a table with a header line, it has to work.

The problem is that after every SELECT statement, you have to append the contents in to the ITAB , since you are using only one internal table.

And no need to declare a field catalog internal table with header line.

You just declare v_repid using data statement .

One more thing, instead of writing manual field catalog merge, you can use FUNCTIONAL MODULE "REUSE_ALV_FIELDCATALOG_MERGE"

bye now

Read only

Former Member
0 Likes
543

Hi,

You should use APPENDING CORRESPONDING into your Select clause, cos if you dont, you would erase the previous content when performing a new select.

Regards,

Roberto.