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.