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

Problem in ALV Report

Former Member
0 Likes
685

hi

i wrote the Coding for ALV report, i used <b>internal table</b> and <b>ALV Grid</b> function, no errors, but empty output.

if i print the <b>internal table</b>, all the records are printing. But no records in the ALV Grid display.

please any one give soloution.

thanks in advance.

bye

hi

i wrote the Coding for ALV report, i used <b>internal table</b> and <b>ALV Grid</b> function, no errors, but empty output.

if i print the <b>internal table</b>, all the records are printing. But no records in the ALV Grid display.

please any one give soloution.

thanks in advance.

bye

6 REPLIES 6
Read only

Former Member
0 Likes
651

Hello Sekar,

Or U passing the Filedcat table to the Grid FM.

Check that.

If useful reward points.

Read only

0 Likes
651

Perhaps it is because the fieldcat table. The mapping fields do not correspond to the ones you are using in the table you want to display. Try to look at the fields and the name of the reference table.

Read only

Former Member
0 Likes
651

hi sample code is ::

*& Report Z_PO_INV

*&

&----


*&

*&

&----


REPORT Z_PO_INV.

TYPE-POOLS : SLIS.

************************************************************************

  • T A B L E S

************************************************************************

TABLES : EKKO. " Purchasing Document Header

************************************************************************

  • D A T A - D E C L A R A T I O N

************************************************************************

TYPES: BEGIN OF X_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

EBELP LIKE EKPO-EBELP,

MENGE LIKE EKPO-MENGE,

MBLNR LIKE EKBE-BELNR,

BUZEI LIKE EKBE-BUZEI,

BWART LIKE EKBE-BWART,

BPMNG LIKE EKBE-BPMNG,

ELIKZ LIKE EKBE-ELIKZ,

VGABE LIKE EKBE-VGABE,

END OF X_EKKO.

TYPES: BEGIN OF X_EKBE,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

BELNR LIKE EKBE-BELNR,

END OF X_EKBE.

TYPES: BEGIN OF X_FINAL,

EBELN LIKE EKKO-EBELN, " PO NUM

AEDAT LIKE EKKO-AEDAT, " PO CREA DATE

EBELP LIKE EKPO-EBELP, " PO ITEM

ELIKZ(10) TYPE C, " STATUS OF PO

MBLNR LIKE EKBE-BELNR, " MAT DOC NO

BUZEI LIKE EKBE-BUZEI, " MAT DOC ITEM

MENGE LIKE EKPO-MENGE, " ORDERED QUAN

BPMNG LIKE EKBE-BPMNG, " DELV QUAN

DELVR LIKE EKBE-MENGE, " YET TO DELVR

BELNR LIKE EKBE-BELNR, " INVOICE DOC NO

END OF X_FINAL.

DATA: IT_EKKO TYPE STANDARD TABLE OF X_EKKO WITH HEADER LINE.

DATA: IT_EKBE TYPE STANDARD TABLE OF X_EKBE WITH HEADER LINE.

DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.

***ALV Field catalog

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

***ALV Events

DATA : IT_EVENT TYPE SLIS_ALV_EVENT.

DATA : IT_EVENT1 TYPE SLIS_T_EVENT.

DATA : GT_SORT TYPE SLIS_T_SORTINFO_ALV,

GT_SORT1 TYPE SLIS_SORTINFO_ALV,

IT_LAYOUT TYPE SLIS_LAYOUT_ALV.

***ALV TOP-OF-PAGE

DATA : IT_HEADER1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE .

DATA : IT_HEADER TYPE SLIS_LISTHEADER.

DATA : V_REPID LIKE SY-REPID.

************************************************************************

  • S E L E C T I O N - S C R E E N

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 .

SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.

SELECT-OPTIONS : S_AEDAT FOR EKKO-AEDAT.

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************

  • S T A R T - O F - S E L E C T I O N

************************************************************************

START-OF-SELECTION.

PERFORM GETDATA.

PERFORM FIELDCATALOG USING IT_FIELDCAT[].

PERFORM SUB_SORT.

************************************************************************

  • END - O F - S E L E C T I O N

************************************************************************

END-OF-SELECTION.

IF NOT IT_FINAL[] IS INITIAL.

PERFORM DISPDATA.

ELSE.

MESSAGE I000(Z1).

ENDIF.

&----


*& Form GETDATA

&----


  • PERFORM TO GET DATA FROM EKKO EKPO AND EKBE TABLES

----


FORM GETDATA .

DATA: TEMP TYPE EKBE-BPMNG VALUE 0.

SELECT A~EBELN

A~AEDAT

B~EBELP

B~MENGE

C~BELNR

C~BUZEI

C~BWART

C~BPMNG

C~ELIKZ

C~VGABE

INTO TABLE IT_EKKO

FROM EKKO AS A INNER JOIN EKPO AS B ON AEBELN = BEBELN

LEFT OUTER JOIN EKBE AS C ON BEBELN = CEBELN

AND BEBELP = CEBELP

WHERE A~EBELN IN S_EBELN AND

A~AEDAT IN S_AEDAT AND

A~BSART = 'NB' .

IF SY-SUBRC = 0.

SORT IT_EKKO BY EBELN EBELP MBLNR.

DELETE IT_EKKO WHERE BWART <> '101' AND BWART <> '102'

AND BWART <> '122' AND BWART <> '' OR

VGABE <> '1' AND VGABE <> '2' AND VGABE <> ''.

ENDIF.

LOOP AT IT_EKKO WHERE VGABE = '2'.

IT_EKBE-EBELN = IT_EKKO-EBELN.

IT_EKBE-EBELP = IT_EKKO-EBELP.

IT_EKBE-BELNR = IT_EKKO-MBLNR.

APPEND IT_EKBE.

CLEAR IT_EKBE.

ENDLOOP.

DELETE IT_EKKO WHERE VGABE = '2' .

LOOP AT IT_EKKO.

IT_FINAL-EBELN = IT_EKKO-EBELN.

IT_FINAL-AEDAT = IT_EKKO-AEDAT.

IT_FINAL-EBELP = IT_EKKO-EBELP.

IT_FINAL-MENGE = IT_EKKO-MENGE.

IT_FINAL-MBLNR = IT_EKKO-MBLNR.

IF IT_EKKO-BWART = '102' OR IT_EKKO-BWART = '122'.

IT_FINAL-BPMNG = 0 - IT_EKKO-BPMNG.

ELSE.

IT_FINAL-BPMNG = IT_EKKO-BPMNG.

ENDIF.

TEMP = TEMP + IT_FINAL-BPMNG.

IT_FINAL-DELVR = IT_FINAL-MENGE - TEMP.

IT_FINAL-BUZEI = IT_EKKO-BUZEI.

READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN

EBELP = IT_EKKO-EBELP

VGABE = '1'

ELIKZ = 'X' .

IF SY-SUBRC = 0.

IT_FINAL-ELIKZ = 'Yes'.

ELSE.

IT_FINAL-ELIKZ = 'No'.

ENDIF.

READ TABLE IT_EKBE WITH KEY EBELN = IT_EKKO-EBELN

EBELP = IT_EKKO-EBELP.

.

IF SY-SUBRC = 0.

LOOP AT IT_EKBE WHERE EBELN = IT_EKKO-EBELN AND

EBELP = IT_EKKO-EBELP.

IT_FINAL-BELNR = IT_EKBE-BELNR.

DELETE IT_EKBE INDEX SY-TABIX.

APPEND IT_FINAL.

CLEAR IT_FINAL-BELNR.

ENDLOOP.

ELSE.

APPEND IT_FINAL.

CLEAR IT_FINAL.

ENDIF.

AT END OF EBELP.

CLEAR TEMP.

ENDAT.

ENDLOOP.

ENDFORM. " GETDATA

&----


*& Form DISPDATA

&----


  • PERFORM TO DISPLAY DATA

----


FORM DISPDATA .

V_REPID = SY-REPID.

**DISPLAY OUTPUT

<b> CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE = ''

  • I_GRID_SETTINGS =

  • IS_LAYOUT = IT_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = GT_SORT

  • I_DEFAULT = 'X'

  • I_SAVE = 'U'

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

TABLES

T_OUTTAB = IT_FINAL

  • 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.</b>

ENDFORM. " DISPDATA

&----


*& Form FIELDCATALOG

&----


  • PEROFRM TO POPULATE FIELD CATALOG

----


FORM FIELDCATALOG USING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : T_FIELD_CAT TYPE SLIS_FIELDCAT_ALV.

DATA : V_CNT TYPE I.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'EBELN'.

T_FIELD_CAT-REF_TABNAME = 'EKKO'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'AEDAT'.

T_FIELD_CAT-REF_TABNAME = 'EKKO'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'EBELP'.

T_FIELD_CAT-OUTPUTLEN = 6.

T_FIELD_CAT-SELTEXT_L = 'PO Item'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'MBLNR'.

T_FIELD_CAT-OUTPUTLEN = 14.

T_FIELD_CAT-SELTEXT_L = 'Material Doc No'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'BUZEI'.

T_FIELD_CAT-OUTPUTLEN = 4.

T_FIELD_CAT-SELTEXT_L = 'Item'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'ELIKZ'.

T_FIELD_CAT-OUTPUTLEN = 14.

T_FIELD_CAT-REF_TABNAME = 'EKBE'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'MENGE'.

T_FIELD_CAT-OUTPUTLEN = 12.

T_FIELD_CAT-SELTEXT_L = 'Order Quan'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'BPMNG'.

T_FIELD_CAT-OUTPUTLEN = 12.

T_FIELD_CAT-SELTEXT_L = 'Delv Quan'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'DELVR'.

T_FIELD_CAT-OUTPUTLEN = 12.

T_FIELD_CAT-SELTEXT_L = 'Yet to Deliver'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'BELNR'.

T_FIELD_CAT-OUTPUTLEN = 20.

T_FIELD_CAT-SELTEXT_L = 'Invoice Number'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

ENDFORM. " FIELDCATALOG

&----


*& Form SUB_SORT

&----


  • PERFORM TO SORT

----


FORM SUB_SORT .

DATA L_CNT TYPE I.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'EBELN'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-UP = 'X'.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'MBLNR'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-UP = 'X'.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'ELIKZ'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

ENDFORM. " SUB_SORT

Read only

Former Member
0 Likes
651

Hi Sekar,

Just check these thing in your program.

1. Delcear TYPE-POOLS slis, and your data base tables for internal table.

2. DATA program LIKE sy-repid.

program = sy-repid.

3. fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.

4. Select query like this:

SELECT * INTO CORRESPONDING FIELDS OF TABLE t_mseg FROM mseg WHERE mblnr IN doc_no.

5. CLEAR fieldcattab before filling your table.

6. Than check you pass values like:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = program

i_callback_user_command = 'USERCOMMAND'

it_fieldcat = fieldcattab[]

TABLES

t_outtab = t_mseg[].

If you all the points is ok than there is any problum on filling ALV try it and tell me your problum is solve or not.

Ankur Garg.

Message was edited by: Ankur Garg

Read only

Former Member
0 Likes
651

Hi Sekar,

it seems to be some small part you missed out.

please paste your code here,so that we will help you.

Regards

srikanth.

Read only

Former Member
0 Likes
651

Hi Sekar,

This is a simple sample code using Internal table and using FM REUSE_ALV_GRID_DISPLAY.Try to check your code refering it.

REPORT ZALV .

Type-pools : slis.

types : begin of ty_tab,

matnr type mseg-matnr,

werks type mseg-werks,

charg type mseg-charg,

end of ty_tab.

data : it_fieldcat type slis_t_fieldcat_alv,

ls_fieldcat type slis_fieldcat_alv,

wa_tab type ty_tab,

itab type standard table of ty_tab with header line,

i_layout type slis_layout_alv,

gs_layout TYPE lvc_s_layo,

g_repid TYPE sy-repid,

g_hyperlink type LVC_T_HYPE.

parameters : p_mblnr like mseg-mblnr.

start-of-selection.

select matnr werks charg

into table itab

from mseg

where mblnr = p_mblnr.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-seltext_l = 'MATERIAL NUMBER'.

ls_fieldcat-outputlen = 25.

ls_fieldcat-hotspot = 'X'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'WERKS'.

ls_fieldcat-seltext_l = 'PLANT'.

ls_fieldcat-outputlen = 15.

ls_fieldcat-just = 'C'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'CHARG'.

ls_fieldcat-seltext_l = 'BATCH NUMBER'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO it_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = g_repid

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = i_layout

IT_FIELDCAT = it_fieldcat

TABLES

t_outtab = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.