2006 Jul 14 11:16 AM
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
2006 Jul 14 11:18 AM
Hello Sekar,
Or U passing the Filedcat table to the Grid FM.
Check that.
If useful reward points.
2006 Jul 14 1:28 PM
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.
2006 Jul 14 11:18 AM
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
2006 Jul 14 12:29 PM
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
2006 Jul 14 12:37 PM
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.
2006 Jul 14 12:41 PM
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.