2007 Oct 24 9:08 AM
in alv grid display ,cant we use REUSE_ALV_FIELDCATALOG_MERGE if the o/p internal table is formed by joining 2 or more tables.
2007 Oct 24 9:12 AM
2007 Oct 24 9:12 AM
2007 Oct 24 9:13 AM
hi,
if u use the merge,
give the structure name in within quotes in capital letters
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = ' capital leteres'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = 'capital leteers'---strucyure name
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat =
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
regards
karthik
rewrads points if useful
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
2007 Oct 24 9:14 AM
2007 Oct 24 9:15 AM
Hi
U can use REUSE_ALV_FIELDCATALOG_MERGE for any internal table.
If u r gettin the error 'no field catalog found' try passing the program name in the exporting parameter INCLUDE_NAME.
Refer the foll code:
&----
*& Report ZALV *
*& *
&----
*& *
*& *
&----
REPORT zalv .
TYPE-POOLS SLIS.
TABLES: vbrk,
vbrp,
likp,
lips,
vbak,
vbap.
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: BEGIN OF tbl_inv OCCURS 10,
vbeln LIKE vbrk-vbeln,
erdat LIKE vbrk-erdat,
kunnr LIKE vbrk-kunrg,
sfakn LIKE vbrk-sfakn,
xblnr LIKE vbrk-xblnr,
posnr LIKE vbrp-posnr,
vgbel LIKE vbrp-vgbel,
vgpos LIKE vbrp-vgpos,
aubel LIKE vbrp-aubel,
aupos LIKE vbrp-aupos,
matnr LIKE vbrp-matnr,
arktx LIKE vbrp-arktx,
werks LIKE vbrp-werks,
END OF tbl_inv,
BEGIN OF tbl_sales OCCURS 10,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
END OF tbl_sales,
BEGIN OF tbl_lips OCCURS 10,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
lfimg LIKE lips-lfimg,
meins LIKE lips-meins,
END OF tbl_lips.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_werks FOR vbrp-werks OBLIGATORY.
PARAMETERS p_vkorg LIKE vbrk-vkorg OBLIGATORY. "Sales Organisation
SELECT-OPTIONS : s_vtweg FOR vbrk-vtweg,
"Distribution channel
s_spart FOR vbrk-spart, "Division
s_erdat FOR vbrk-erdat OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
IF s_vtweg IS INITIAL AND s_spart IS INITIAL.
SELECT p~vbeln
p~erdat
p~kunrg
p~sfakn
p~xblnr
q~posnr
q~vgbel
q~vgpos
q~aubel
q~aupos
q~matnr
q~arktx
q~werks
iNTO TABLE tbl_inv
FROM vbrk AS p
JOIN vbrp AS q
ON pvbeln = qvbeln
WHERE p~erdat IN s_erdat
AND p~vkorg = p_vkorg.
ELSEIF s_vtweg IS INITIAL.
SELECT p~vbeln
p~erdat
p~kunrg
p~sfakn
p~xblnr
q~posnr
q~vgbel
q~vgpos
q~aubel
q~aupos
q~matnr
q~arktx
q~werks
INTO TABLE tbl_inv
FROM vbrk AS p
JOIN vbrp AS q
ON pvbeln = qvbeln
WHERE p~erdat IN s_erdat
AND p~vkorg = p_vkorg
AND p~spart IN s_spart.
ELSEIF s_spart IS INITIAL.
SELECT p~vbeln
p~erdat
p~kunrg
p~sfakn
p~xblnr
q~posnr
q~vgbel
q~vgpos
q~aubel
q~aupos
q~matnr
q~arktx
q~werks
INTO TABLE tbl_inv
FROM vbrk AS p
JOIN vbrp AS q
ON pvbeln = qvbeln
WHERE p~erdat IN s_erdat
AND p~vkorg = p_vkorg
AND p~vtweg IN s_vtweg.
ELSE.
SELECT p~vbeln
p~erdat
p~kunrg
p~sfakn
p~xblnr
q~posnr
q~vgbel
q~vgpos
q~aubel
q~aupos
q~matnr
q~arktx
q~werks
INTO TABLE tbl_inv
FROM vbrk AS p
JOIN vbrp AS q
ON pvbeln = qvbeln
WHERE p~erdat IN s_erdat
AND p~vkorg = p_vkorg
AND p~vtweg IN s_vtweg
AND p~spart IN s_spart.
ENDIF.
WRITE 'Number of entries:'.
DESCRIBE TABLE tbl_lips LINES sy-tfill.
WRITE sy-tfill.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'ZALV'
I_INTERNAL_TABNAME = 'TBL_INV'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = 'ZALV'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZALV_68416'
TABLES
t_outtab = tbl_inv
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.
Message was edited by:
Vasudha L
2007 Oct 24 10:00 AM
Hi
In your case u have not defined fieldcatalog and we have to give that fieldcatalog name in FM REUSE_ALV_FIELDCATALOG_MERGE.
data FCAT type it_fieldcat type slis_t_fieldcat_alv.
Use FCAT In the FM.
Reward if useful.
Regards
Shibin
2007 Oct 24 10:06 AM
Hi,
Yes it is possible to give the output internal table which is formed by two tables.
Pass the Internal table with all field to FM.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'GT_FX_ENTRIES'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.Thanks,
Sriram Ponna.
2007 Oct 24 10:39 AM
hi sindhuri,
one thing u should take care is that whole using fieldcatalog merge,
the structure name and internal table name what ever u r passing it should be in the same case as that of declaration . better both in caps.