Skip to Content
0
Former Member
Nov 06, 2012 at 10:43 AM

REUSE_ALV_FIELDCATALOG_MERGE - error Field catalog not found

1184 Views

Hi at all,

I didn´t understand why my program doesn´t work... Every time that I process the program the following error show me:

Field catalog not found

My code is follow:

TYPE-POOLS: slis.

DATA: alv TYPE REF TO cl_salv_table,

BEGIN OF str_acc OCCURS 0,

codeCompany LIKE BKPF-bukrs,

fiscalYear LIKE BKPF-gjahr,

docNumber LIKE BKPF-belnr,

textDocument LIKE BKPF-bktxt,

onlineBook LIKE bsid-buzei,

putData LIKE bsid-cpudt,

amountCurrency LIKE bsid-dmbtr,

currency LIKE bsid-waers,

name LIKE adrc-name1,

street LIKE adrc-street,

postCode LIKE adrc-post_code1,

country LIKE adrc-country,

city LIKE adrc-city1,

comment(20) TYPE c,

END OF str_acc.

DATA: itab_acc LIKE STANDARD TABLE OF str_acc,

i_fieldcat TYPE slis_t_fieldcat_alv,

gv_title TYPE lvc_title.

DATA: wa_fieldcat TYPE slis_fieldcat_alv,

wa_layout TYPE slis_layout_alv,

wa_repid LIKE SY-REPID.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002 .

PARAMETERS: p_year TYPE GJAHR DEFAULT 2008.

PARAMETERS: p_code TYPE BUKRS DEFAULT 1000.

SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.

PERFORM get_data.

PERFORM fill_fieldcatalog.

PERFORM display_alv.

FORM get_data.

SELECT ad~bukrs ad~gjahr ad~belnr ad~bktxt c~buzei c~cpudt c~dmbtr c~waers adrc~name1

adrc~street adrc~post_code1 adrc~country adrc~city1

INTO TABLE itab_acc

FROM ( ( ( BKPF AS ad

INNER JOIN BSID AS c ON ad~bukrs = c~bukrs AND

ad~belnr = c~belnr AND

ad~gjahr = c~gjahr )

INNER JOIN kna1 AS k ON k~kunnr = c~kunnr )

INNER JOIN adrc ON adrc~addrnumber = k~adrnr )

WHERE ad~bukrs = p_code AND

ad~gjahr = p_year .

ENDFORM.

*FROM BKPF JOIN BSID on (BKPF~bukrs = BSID~gjahr) INTO TABLE itab_acc

* WHERE BKPF~bukrs = p_code AND BKPF~gjahr = p_year.

*IF itab_acc IS INITIAL.

* WRITE: 'nothing in table.'.

*ELSE.

* cl_salv_table=>factory(

* EXPORTING list_display = 'X'

* IMPORTING r_salv_table = alv

* CHANGING t_table = itab_acc ).

* alv->display( ).

*ENDIF.

*---------------------------------------------------------------------*

* FORM FILL_FIELDCATALOG *

*---------------------------------------------------------------------*

* Fill ALV fieldcatalog *

*---------------------------------------------------------------------*

*

*

FORM fill_fieldcatalog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = SY-REPID

i_structure_name = 'STR_ACC'

i_internal_tabname = 'ITAB_ACC'

CHANGING

ct_fieldcat = i_fieldcat.

* wa_fieldcat-fieldname = 'MANDT'. " Fieldname in the data table

* wa_fieldcat-ref_fieldname ='MANDT'.

* wa_fieldcat-seltext_m = 'Mandt'. " Column description in the output

* APPEND wa_fieldcat TO i_fieldcat.

ENDFORM.

*---------------------------------------------------------------------*

* FORM DISPLAY_ALV *

*---------------------------------------------------------------------*

* And show all *

*---------------------------------------------------------------------*

FORM display_alv.

wa_layout-colwidth_optimize = 'X'.

*

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = i_fieldcat

i_grid_title = gv_title

TABLES

t_outtab = itab_acc.

ENDFORM. "display_alv


I understand that the problem occurs when try to fill field catalog but I didn´t understand why.

Someone can help me??


Thank you in advance.