Application Development 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: 

'Field Catalog not Found' - ALV Grid using CustomContainer+Fcat

Former Member
0 Kudos

The Following piece of code throws 'Field Catalgo not found'

Please give me necessary changes in the code.

Thanks & Regards

Harsha Ch.

&----


*& Report ZCHK_ALV_CUSCONT1 *

*& *

&----


*& *

*& *

&----


REPORT zchk_alv_cuscont1 .

DATA itab LIKE STANDARD TABLE OF mara WITH HEADER LINE.

SELECT matnr meins mbrsh FROM mara INTO CORRESPONDING FIELDS OF TABLE itab UP TO 10 ROWS.

CALL SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

DATA fcat1 TYPE lvc_t_fcat WITH HEADER LINE.

DATA fcat TYPE STANDARD TABLE OF lvc_s_fcat.

DATA: c1 TYPE REF TO cl_gui_custom_container.

DATA: a1 TYPE REF TO cl_gui_alv_grid.

CREATE OBJECT c1 EXPORTING container_name = 'CC_ALV'.

CREATE OBJECT a1 EXPORTING i_parent = c1.

PERFORM populate_fcat.

PERFORM generate_grid.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Form POPULATE_FCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM populate_fcat .

fcat1-reptext = 'MATNR'.

fcat1-fieldname = 'MATNR'.

fcat1-col_pos = '1'.

APPEND fcat1.

CLEAR fcat1.

fcat1-reptext = 'MEINS'.

fcat1-fieldname = 'MEINS'.

fcat1-col_pos = '2'.

APPEND fcat1.

CLEAR fcat1.

fcat1-reptext = 'MBRSH'.

fcat1-fieldname = 'MBRSH'.

fcat1-col_pos = '3'.

APPEND fcat1.

CLEAR fcat1.

ENDFORM. " POPULATE_FCAT

&----


*& Form GENERATE_GRID

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM generate_grid .

CALL METHOD a1->set_table_for_first_display

  • EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

I_STRUCTURE_NAME = 'MARA'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

  • IS_LAYOUT =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = itab[]

  • IT_FIELDCATALOG = fcat

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

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. " GENERATE_GRID

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

I looks like you have named the field catalog parameter incorrectly, shouldn't it be fcat1 in your example?

CALL METHOD a1->set_table_for_first_display

EXPORTING 
I_BUFFER_ACTIVE = 
I_BYPASSING_BUFFER = 
I_CONSISTENCY_CHECK = 
I_STRUCTURE_NAME = 'MARA'

IS_VARIANT = 
I_SAVE = 
I_DEFAULT = 'X' 
IS_LAYOUT = 
IS_PRINT = 
IT_SPECIAL_GROUPS = 
IT_TOOLBAR_EXCLUDING = 
IT_HYPERLINK = 
IT_ALV_GRAPHICS = 
IT_EXCEPT_QINFO = 
CHANGING
it_outtab = itab[]

IT_FIELDCATALOG = fcat   *<------------ this should be FCAT1*
IT_SORT = 
IT_FILTER = 
EXCEPTIONS 
INVALID_PARAMETER_COMBINATION = 1 
PROGRAM_ERROR = 2 
TOO_MANY_LINES = 3 
others = 4

Darren

4 REPLIES 4

Former Member
0 Kudos

Hi,

I looks like you have named the field catalog parameter incorrectly, shouldn't it be fcat1 in your example?

CALL METHOD a1->set_table_for_first_display

EXPORTING 
I_BUFFER_ACTIVE = 
I_BYPASSING_BUFFER = 
I_CONSISTENCY_CHECK = 
I_STRUCTURE_NAME = 'MARA'

IS_VARIANT = 
I_SAVE = 
I_DEFAULT = 'X' 
IS_LAYOUT = 
IS_PRINT = 
IT_SPECIAL_GROUPS = 
IT_TOOLBAR_EXCLUDING = 
IT_HYPERLINK = 
IT_ALV_GRAPHICS = 
IT_EXCEPT_QINFO = 
CHANGING
it_outtab = itab[]

IT_FIELDCATALOG = fcat   *<------------ this should be FCAT1*
IT_SORT = 
IT_FILTER = 
EXCEPTIONS 
INVALID_PARAMETER_COMBINATION = 1 
PROGRAM_ERROR = 2 
TOO_MANY_LINES = 3 
others = 4

Darren

Former Member
0 Kudos

hi,

in method:

u have declared ur fieldcatalog as fcat1 and in method a1->set_table_for_first_display ,u r passing fcat.

plz check

Former Member
0 Kudos

hi ,

Please pass the correct field catalog into the function module. fcat1.

regards,

avi.

Former Member
0 Kudos

Hi

This works fine:

*&---------------------------------------------------------------------
*& Report ZCHK_ALV_CUSCONT1 *
*&
*&---------------------------------------------------------------------
*& *
*&
*&---------------------------------------------------------------------


DATA ITAB LIKE STANDARD TABLE OF MARA WITH HEADER LINE.
DATA FCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA FCAT TYPE STANDARD TABLE OF LVC_S_FCAT.

DATA: C1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: A1 TYPE REF TO CL_GUI_ALV_GRID.

START-OF-SELECTION.



  SELECT MATNR MEINS MBRSH FROM MARA INTO CORRESPONDING FIELDS OF TABLE
  ITAB UP TO 10 ROWS.

  CALL SCREEN 100.
*&---------------------------------------------------------------------
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------
* TEXT
*----------------------------------------------------------------------
MODULE STATUS_0100 OUTPUT.

*  PERFORM POPULATE_FCAT.

  PERFORM GENERATE_GRID.

ENDMODULE. " STATUS_0100 OUTPUT

*---------------------------------------------------------------------*
*       FORM POPULATE_FCAT                                            *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM POPULATE_FCAT .

  FCAT1-REPTEXT = 'MATNR'.
  FCAT1-FIELDNAME = 'MATNR'.
  FCAT1-COL_POS = '1'.
  APPEND FCAT1.
  CLEAR FCAT1.

  FCAT1-REPTEXT = 'MEINS'.
  FCAT1-FIELDNAME = 'MEINS'.
  FCAT1-COL_POS = '2'.
  APPEND FCAT1.
  CLEAR FCAT1.

  FCAT1-REPTEXT = 'MBRSH'.
  FCAT1-FIELDNAME = 'MBRSH'.
  FCAT1-COL_POS = '3'.
  APPEND FCAT1.
  CLEAR FCAT1.

ENDFORM. " POPULATE_FCAT

*---------------------------------------------------------------------*
*       FORM GENERATE_GRID                                            *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM GENERATE_GRID .

  CHECK C1 IS INITIAL.

  CREATE OBJECT C1 EXPORTING CONTAINER_NAME = 'CC_ALV'.
  CREATE OBJECT A1 EXPORTING I_PARENT = C1.



  CALL METHOD A1->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      I_STRUCTURE_NAME = 'MARA'
    CHANGING
      IT_OUTTAB = ITAB[].

ENDFORM. " GENERATE_GRID

Max