Application Development and Automation 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: 
Read only

Field catalog not found message

Former Member
0 Likes
1,834

Hi Experts,

This is the diagnosis of the message.

The field catalog cannot be determined because the output table structure name was not specified.

*i am trying to display the internal table of my program in the ALV grid..pls rectify the error and also tell me how to optimize this code..

<u>code:</u>

&----


*& Report ZBHPPURORDER *

*& *

&----


*& *

*& *

&----


REPORT ZBHPPURORDER.

TYPE-POOLS : slis.

TYPES:BEGIN OF HEADER,

V_ebeln like ekko-ebeln,

V_AEDAT like ekko-aedat,

V_reswk like ekko-reswk,

V_knumv like ekko-knumv,

V_bsart like ekko-bsart,

V_lifnr like ekko-lifnr,

END OF HEADER.

TYPES:BEGIN OF ITEMS,

V_ebeln like ekpo-ebeln,

V_ebelp like ekpo-ebelp,

V_werks like ekpo-werks,

V_matnr like ekpo-matnr,

V_menge like ekpo-menge,

V_netpr like ekpo-netpr,

V_peinh like ekpo-peinh,

V_netwr like ekpo-netwr,

END OF ITEMS.

TYPES:BEGIN OF MASTER,

V_Knumv like konv-knumv,

V_Kposn like konv-kposn,

V_Kschl like konv-kschl,

V_Kwert like konv-kwert,

END OF MASTER.

TYPES:BEGIN OF VENMASTER,

V_lifnr like lfa1-lifnr,

V_name1 like lfa1-lifnr,

END OF VENMASTER.

DATA:BEGIN OF ITAB,

V_EBELN like EKKO-EBELN,

V_AEdat like ekko-AEdat,

V_knumv like ekko-knumv,

V_EBELP like EKPO-EBELP,

V_RESWK like EKKO-RESWK,

V_BSART like EKKO-BSART,

V_WERKS like EKPO-WERKS,

V_LIFNR like EKKO-LIFNR,

V_NAME1 like LFA1-NAME1,

V_MATNR like EKPO-MATNR,

V_MEINS like EKPO-MEINS,

V_MENGE like EKPO-MENGE,

V_NETPR like EKPO-NETPR,

V_PEINH like EKPO-PEINH,

V_NETWR like EKPO-NETWR,

  • (Condition –SKTO )

V_KWERT like KONV-KWERT,

Tot like EKPO-NETWR,

END OF ITAB.

DATA: LV_AEDAT TYPE ekko-aedat,

LV_LIFNR TYPE ekKo-lifnr,

PO_HEADER TYPE STANDARD TABLE OF HEADER,

PO_HEAD_WA TYPE HEADER,

PO_ITEMS TYPE STANDARD TABLE OF ITEMS,

PO_ITEMS_WA TYPE ITEMS,

CON_MASTER TYPE STANDARD TABLE OF MASTER,

CON_MASTER_WA TYPE MASTER,

VEN_MASTER TYPE STANDARD TABLE OF VENMASTER,

VEN_MASTER_WA TYPE VENMASTER,

ALV_ITAB LIKE STANDARD TABLE OF ITAB,

ALV_WA LIKE ITAB.

data: gt_outtab type standard table of itab.

DATA: gt_fldcat TYPE slis_t_fieldcat_alv.

data:g_repid type sy-repid.

SELECT-OPTIONS: s_aedat FOR LV_AEDAT,

s_lifnr FOR LV_LIFNR OBLIGATORY.

AT SELECTION-SCREEN ON S_LIFNR.

SELECT SINGLE LIFNR FROM LFA1 INTO LV_LIFNR WHERE LIFNR IN S_LIFNR.

IF SY-SUBRC NE 0.

MESSAGE E000(ZBHPMSG) WITH S_LIFNR.

ENDIF.

START-OF-SELECTION.

SELECT ebeln

AEDAT

reswk

knumv

bsart

lifnr FROM EKKO INTO TABLE PO_HEADER

WHERE aedat IN s_aedat and lifnr IN s_lifnr.

SELECT ebeln

ebelp

werks

matnr

menge

netpr

peinh

netwr FROM EKPO INTO TABLE PO_ITEMS

FOR ALL ENTRIES IN PO_HEADER WHERE EBELN EQ PO_HEADER-V_EBELN.

SELECT Knumv

Kposn

Kschl

Kwert FROM KONV INTO TABLE CON_MASTER FOR ALL ENTRIES IN

PO_HEADER WHERE KNUMV EQ PO_HEADER-V_KNUMV AND

Kschl = 'SKTO'.

SELECT LIFNR NAME1 FROM LFA1 INTO TABLE VEN_MASTER FOR ALL ENTRIES IN

PO_HEADER WHERE LIFNR EQ PO_HEADER-V_LIFNR.

LOOP AT PO_HEADER INTO PO_HEAD_WA.

MOVE PO_HEAD_WA-V_EBELN TO ALV_WA-V_EBELN.

ALV_WA-V_RESWK = PO_HEAD_WA-V_RESWK.

ALV_WA-V_BSART = PO_HEAD_WA-V_BSART.

ALV_WA-V_LIFNR = PO_HEAD_WA-V_LIFNR.

APPEND ALV_WA TO ALV_ITAB.

ENDLOOP.

LOOP AT PO_ITEMS INTO PO_ITEMS_WA.

loop at con_master into con_master_wa.

PO_ITEMS_WA-V_NETWR = ( PO_ITEMS_WA-V_NETPR / PO_ITEMS_WA-V_PEINH ) *

PO_ITEMS_WA-V_MENGE.

ALV_WA-TOT = PO_ITEMS_WA-V_NETWR + CON_MASTER_WA-V_KWERT.

ALV_WA-V_EBELP = PO_ITEMS_WA-V_EBELP.

ALV_WA-V_WERKS = PO_ITEMS_WA-V_WERKS.

ALV_WA-V_MATNR = PO_ITEMS_WA-V_MATNR.

*ALV_WA-V_MEINS = PO_ITEMS_WA-V_MEINS.

ALV_WA-V_MENGE = PO_ITEMS_WA-V_MENGE.

ALV_WA-V_NETPR = PO_ITEMS_WA-V_NETPR.

ALV_WA-V_PEINH = PO_ITEMS_WA-V_PEINH.

ALV_WA-V_NETWR = PO_ITEMS_WA-V_NETWR.

APPEND ALV_WA TO ALV_ITAB.

ENDLOOP.

ENDLOOP.

end-of-selection.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = g_repid

I_INTERNAL_TABNAME = 'ITAB'

if i use I_STRUCTURE_NAME, I DONT GET THE ERROR BUT I SIMPLY GET A GRID WITH COLUMNS KEY AND FUNCTIONAL PART..

  • I_STRUCTURE_NAME = 'ITAB'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = g_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = gt_fldcat

  • 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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = g_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 = 'alv_itab'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = gt_fldcat

TABLES

t_outtab = ALV_ITAB

  • 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.

Thanks in Advance..

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,178

Hi,

The field <b>g_repid</b> doesnot caontain the program name. Check in Debug mode .

Declare like this

Data : g_repid type sy-repid value 'Program name'.

Then ur code will work.

Regards,

Balavardhan.K

4 REPLIES 4
Read only

Former Member
0 Likes
1,178

put like this

IT_FIELDCAT = gt_fldcat[].

, where is urFLDCAT?

u have maintain like this .

<b>fcat1-fieldname = 'WERKS'.

fcat1-key = 'X'.

fcat1-outputlen = '4'.

fcat1-just = 'C'.

fcat1-seltext_m = 'PLANT'.

fcat1-ddictxt = 'M'.

fcat1-inttype = 'C'.

fcat1-datatype = 'CHAR'.

append fcat1.

clear fcat1.</b>

Regards

Prabhu

Read only

Former Member
0 Likes
1,178

Assign a value to g_repid before calling REUSE_ALV_FIELDCATALOG_MERGE.

Use

g_repid = sy-repid.

Hope this helps.

Regards,

Manoj

Read only

Former Member
0 Likes
1,179

Hi,

The field <b>g_repid</b> doesnot caontain the program name. Check in Debug mode .

Declare like this

Data : g_repid type sy-repid value 'Program name'.

Then ur code will work.

Regards,

Balavardhan.K

Read only

Former Member
0 Likes
1,178

here is your Field catalog.

Build fieldcat something like this.

i_repid = sy-repid.

PERFORM fr_build_catalog.

PERFORM fr_grid_dispaly.

&----


*& Form to build field catalog

&----


--


Populating field catalog.--

FORM fr_build_catalog .

lw_fieldcat-col_pos = 1.

lw_fieldcat-fieldname = 'BELNR'.

lw_fieldcat-tabname = 'LT_FINAL'.

lw_fieldcat-seltext_l = text-001.

APPEND lw_fieldcat TO lt_fieldcat.

lw_fieldcat-col_pos = 2.

lw_fieldcat-fieldname = 'BUKRS'.

lw_fieldcat-tabname = 'LT_FINAL'.

lw_fieldcat-seltext_l = text-002.

APPEND lw_fieldcat TO lt_fieldcat.

;

.

.

ENDFORM. " fr_build_catalog

&----


*& Form fr_list_dispaly

&----


  • Report display according to user request.

----


FORM fr_list_dispaly.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_top_of_page = 'TOP_OF_PAGE'

it_sort = gt_sort

is_layout = gs_layout

it_fieldcat = lt_fieldcat[]

i_default = 'X'

i_save = 'X'

  • IS_VARIANT = gs_variant

TABLES

t_outtab = lt_final

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