Hi,
I am facing problem with 'REUSE_ALV_FIELDCATALOG_MERGE'. when i execute the following code, IO get the message ' Field Catalog Not Found'. What could be the problem?
&----
*& Report Y_NORMAL_ALV2
*&
&----
*&
*&
&----
REPORT y_normal_alv2.
TABLES : equi.
TYPE-POOLS : slis.
SELECT-OPTIONS : opt1 FOR equi-equnr,
opt2 FOR equi-ernam.
TYPES : BEGIN OF t_equi ,
equnr LIKE equi-equnr,
ernam LIKE equi-ernam,
erdat LIKE equi-erdat,
brgew LIKE equi-brgew,
END OF t_equi.
DATA : i_equi TYPE standard table of t_equi ,
wa_equi TYPE t_equi,
lt_fieldcat TYPE slis_t_fieldcat_alv,
ls_layout TYPE slis_layout_alv,
i_repid LIKE sy-repid.
START-OF-SELECTION.
PERFORM get_data.
PERFORM build_layout.
PERFORM build_fieldcat.
PERFORM display_data.
END-OF-SELECTION.
&----
*& Form get-data
&----
text
----
FORM get_data.
SELECT * FROM equi INTO corresponding fields of TABLE i_equi WHERE equnr IN opt1 OR ernam IN opt2.
ENDFORM. "get-data
&----
*& Form build_layout
&----
text
----
FORM build_layout.
ls_layout-colwidth_optimize = 'X'.
ls_layout-window_titlebar = 'WOW'.
ENDFORM. "build_layout
&----
*& Form build_fieldcat
&----
text
----
FORM build_fieldcat.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = i_repid
i_internal_tabname = 'I_EQUI'
I_STRUCTURE_NAME = 'EQUI'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = i_repid
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = lt_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.
DATA : ls_fieldcat TYPE slis_fieldcat_alv.
*
*
CONSTANTS: cons_l_tab TYPE char8 VALUE 'I_EQUI',
cons_l_1 TYPE char1 VALUE '1',
cons_l_2 TYPE char1 VALUE '2',
cons_l_3 TYPE char1 VALUE '3',
cons_l_4 TYPE char1 VALUE '4',
cons_l_equnr TYPE char5 VALUE 'EQUNR',
cons_l_ernam TYPE char5 VALUE 'ERNAM',
cons_l_erdat TYPE char5 VALUE 'ERDAT',
cons_l_brgew TYPE char5 VALUE 'BRGEW'.
*
REFRESH: lt_fieldcat1.
*
ls_fieldcat-tabname = cons_l_tab.
ls_fieldcat-col_pos = cons_l_1.
ls_fieldcat-fieldname = cons_l_equnr.
ls_fieldcat-ref_tabname = 'EQUI'.
ls_fieldcat-ref_fieldname = 'EQUNR'.
ls_fieldcat-seltext_m = 'Equipment Number'.
APPEND ls_fieldcat TO lt_fieldcat1.
CLEAR ls_fieldcat.
*
ls_fieldcat-tabname = cons_l_tab.
ls_fieldcat-col_pos = cons_l_2.
ls_fieldcat-fieldname = cons_l_ernam.
ls_fieldcat-ref_tabname = 'EQUI'.
ls_fieldcat-ref_fieldname = 'ERNAM'.
ls_fieldcat-seltext_m = 'Created By'.
APPEND ls_fieldcat TO lt_fieldcat1.
CLEAR ls_fieldcat.
*
ls_fieldcat-tabname = cons_l_tab.
ls_fieldcat-col_pos = cons_l_3.
ls_fieldcat-fieldname = cons_l_erdat.
ls_fieldcat-ref_tabname = 'EQUI'.
ls_fieldcat-ref_fieldname = 'ERDAT'.
ls_fieldcat-seltext_m = 'Creation Date'.
APPEND ls_fieldcat TO lt_fieldcat1.
CLEAR ls_fieldcat.
*
ls_fieldcat-tabname = cons_l_tab.
ls_fieldcat-col_pos = cons_l_4.
ls_fieldcat-fieldname = cons_l_brgew.
ls_fieldcat-ref_tabname = 'EQUI'.
ls_fieldcat-ref_fieldname = 'BRGEW'.
ls_fieldcat-seltext_m = 'Wazan'.
APPEND ls_fieldcat TO lt_fieldcat1.
CLEAR ls_fieldcat.
*
ENDFORM. "build_fieldcat
&----
*& Form display_data
&----
text
----
FORM display_data.
CHECK NOT i_equi IS INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'i_repid'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = ls_layout
it_fieldcat = lt_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_equi
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.
ENDFORM. "display_data