Skip to Content
0
Former Member
Jan 08, 2008 at 06:28 AM

Using 'REUSE_ALV_FIELDCATALOG_MERGE'

35 Views

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