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: 

ALV Field Catalog problem

Former Member
0 Kudos

Hello,

I have created a field catalogue using FM REUSE_ALV_FIELDCATALOG_MERGE. Field catalog gets generated but all the fields are not present in this. Can anyone tell me, why is this happening?

Here is my Delartion and Code.

Declaration :

BEGIN OF i_set_mseg_temp OCCURS 100,

kostl like csks-kostl,

ltext like cskt-ltext,

extsrvno like esll-extsrvno,

sites like setleaf-setname,

proj(5) type c,

phase(2) type c,

lifnr like mseg-lifnr,

ebeln like mseg-ebeln,

sgtxt like mseg-sgtxt,

sakto like mseg-sakto,

erfme like mseg-erfme,

perio(2) TYPE c,

blart like rbkp-blart,

belnr like rseg-belnr,

userf2_txt like esll-userf2_txt,

valfrom like setleaf-valfrom,

kokrs like mseg-kokrs,

bukrs like mseg-bukrs,

mblnr like mseg-mblnr,

mjahr like mseg-mjahr,

lfbnr like mseg-lfbnr,

lfpos like mseg-lfpos,

shkzg like mseg-shkzg,

ps_psp_pnr like mseg-ps_psp_pnr,

dmbtr like mseg-dmbtr,

menge like mseg-menge,

year(4) type c,

extrow like esll-extrow,

bsart like ekko-bsart,

posid like prps-posid,

packno like essr-packno,

budat like essr-budat,

sub_packno like esll-sub_packno,

userf2_num like esll-userf2_num,

peinh like esll-peinh,

gjahr like rseg-gjahr,

rshkzg like rseg-shkzg,

wrbtr like rseg-wrbtr,

rmenge like rseg-menge,

suserf2_num like esll-userf2_num,

sdmbtr like mseg-dmbtr,

swrbtr like rseg-wrbtr,

avg_price like rseg-wrbtr,

savg_price like rseg-wrbtr,

END OF i_set_mseg_temp.

Code :

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'I_SET_MSEG_TEMP'

  • i_structure_name =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = sy-repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_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.

1 ACCEPTED SOLUTION

former_member188685
Active Contributor
0 Kudos

it is working fine for me.

REPORT  ztest_fieldcatalog.

TYPE-POOLS: slis.

DATA: i_fldcat TYPE  slis_t_fieldcat_alv.

DATA: BEGIN OF i_set_mseg_temp OCCURS 0,
kostl LIKE csks-kostl,
ltext LIKE cskt-ltext,
extsrvno LIKE esll-extsrvno,
sites LIKE setleaf-setname,
proj(5) TYPE c,
phase(2) TYPE c,
lifnr LIKE mseg-lifnr,
ebeln LIKE mseg-ebeln,
sgtxt LIKE mseg-sgtxt,
sakto LIKE mseg-sakto,
erfme LIKE mseg-erfme,
perio(2) TYPE c,
blart LIKE rbkp-blart,
belnr LIKE rseg-belnr,
userf2_txt LIKE esll-userf2_txt,
valfrom LIKE setleaf-valfrom,
kokrs LIKE mseg-kokrs,
bukrs LIKE mseg-bukrs,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
lfbnr LIKE mseg-lfbnr,
lfpos LIKE mseg-lfpos,
shkzg LIKE mseg-shkzg,
ps_psp_pnr LIKE mseg-ps_psp_pnr,
dmbtr LIKE mseg-dmbtr,
menge LIKE mseg-menge,
year(4) TYPE c,
extrow LIKE esll-extrow,
bsart LIKE ekko-bsart,
posid LIKE prps-posid,
packno LIKE essr-packno,
budat LIKE essr-budat,
sub_packno LIKE esll-sub_packno,
userf2_num LIKE esll-userf2_num,
peinh LIKE esll-peinh,
gjahr LIKE rseg-gjahr,
rshkzg LIKE rseg-shkzg,
wrbtr LIKE rseg-wrbtr,
rmenge LIKE rseg-menge,
suserf2_num LIKE esll-userf2_num,
sdmbtr LIKE mseg-dmbtr,
swrbtr LIKE rseg-wrbtr,
avg_price LIKE rseg-wrbtr,
savg_price LIKE rseg-wrbtr,
END OF i_set_mseg_temp.


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = sy-repid
    i_internal_tabname     = 'I_SET_MSEG_TEMP'
    i_inclname             = sy-repid
  CHANGING
    ct_fieldcat            = i_fldcat[]
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.

    break-point.

9 REPLIES 9

Former Member
0 Kudos

Use the function module like below it works...

DATA : incl_name LIKE trdir-name VALUE '(Your program name )'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'I_SET_MSEG_TEMP'

i_inclname = incl_name

CHANGING

ct_fieldcat = i_fldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

Thanks,

Karthik

Former Member
0 Kudos

Check by including

i_inclname = sy-repid

in Export parameters...

Former Member
0 Kudos

Tried the provided solution but did not work.

Former Member
0 Kudos

It works for me ...

Why dont give us the exact error your getting...

Try changing the itab with occurs 0

like below this might workout

BEGIN OF i_set_mseg_temp OCCURS 0,

Thanks,

Karthik

Former Member
0 Kudos

I changed to to occurs 0 as well. Didnt work.

Exact problem being : I have approx 25 fields in my internal table(I_SET_MSEG_TEMP ) of which I have to fill in field catalalog. When I use FM REUSE_ALV_FIELDCATALOG_MERGE, only 5 fields are filled in field catalog. These five field are marked in bold,

kostl like csks-kostl,

ltext like cskt-ltext,

extsrvno like esll-extsrvno,

sites like setleaf-setname,

proj(5) type c,

phase(2) type c,

lifnr like mseg-lifnr,

ebeln like mseg-ebeln,

sgtxt like mseg-sgtxt,

sakto like mseg-sakto,

erfme like mseg-erfme,

perio(2) TYPE c,

blart like rbkp-blart,

belnr like rseg-belnr,

userf2_txt like esll-userf2_txt,

valfrom like setleaf-valfrom,

kokrs like mseg-kokrs,

bukrs like mseg-bukrs,

mblnr like mseg-mblnr,

mjahr like mseg-mjahr,

lfbnr like mseg-lfbnr,

lfpos like mseg-lfpos,

shkzg like mseg-shkzg,

ps_psp_pnr like mseg-ps_psp_pnr,

dmbtr like mseg-dmbtr,

menge like mseg-menge,

year(4) type c,

extrow like esll-extrow,

bsart like ekko-bsart,

posid like prps-posid,

packno like essr-packno,

budat like essr-budat,

sub_packno like esll-sub_packno,

userf2_num like esll-userf2_num,

peinh like esll-peinh,

gjahr like rseg-gjahr,

rshkzg like rseg-shkzg,

wrbtr like rseg-wrbtr,

rmenge like rseg-menge,

suserf2_num like esll-userf2_num,

sdmbtr like mseg-dmbtr,

swrbtr like rseg-wrbtr,

avg_price like rseg-wrbtr,

savg_price like rseg-wrbtr,

END OF i_set_mseg_temp.

I am not able to understand why other fields are not filled in field catalog.

former_member188685
Active Contributor
0 Kudos

it is working fine for me.

REPORT  ztest_fieldcatalog.

TYPE-POOLS: slis.

DATA: i_fldcat TYPE  slis_t_fieldcat_alv.

DATA: BEGIN OF i_set_mseg_temp OCCURS 0,
kostl LIKE csks-kostl,
ltext LIKE cskt-ltext,
extsrvno LIKE esll-extsrvno,
sites LIKE setleaf-setname,
proj(5) TYPE c,
phase(2) TYPE c,
lifnr LIKE mseg-lifnr,
ebeln LIKE mseg-ebeln,
sgtxt LIKE mseg-sgtxt,
sakto LIKE mseg-sakto,
erfme LIKE mseg-erfme,
perio(2) TYPE c,
blart LIKE rbkp-blart,
belnr LIKE rseg-belnr,
userf2_txt LIKE esll-userf2_txt,
valfrom LIKE setleaf-valfrom,
kokrs LIKE mseg-kokrs,
bukrs LIKE mseg-bukrs,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
lfbnr LIKE mseg-lfbnr,
lfpos LIKE mseg-lfpos,
shkzg LIKE mseg-shkzg,
ps_psp_pnr LIKE mseg-ps_psp_pnr,
dmbtr LIKE mseg-dmbtr,
menge LIKE mseg-menge,
year(4) TYPE c,
extrow LIKE esll-extrow,
bsart LIKE ekko-bsart,
posid LIKE prps-posid,
packno LIKE essr-packno,
budat LIKE essr-budat,
sub_packno LIKE esll-sub_packno,
userf2_num LIKE esll-userf2_num,
peinh LIKE esll-peinh,
gjahr LIKE rseg-gjahr,
rshkzg LIKE rseg-shkzg,
wrbtr LIKE rseg-wrbtr,
rmenge LIKE rseg-menge,
suserf2_num LIKE esll-userf2_num,
sdmbtr LIKE mseg-dmbtr,
swrbtr LIKE rseg-wrbtr,
avg_price LIKE rseg-wrbtr,
savg_price LIKE rseg-wrbtr,
END OF i_set_mseg_temp.


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = sy-repid
    i_internal_tabname     = 'I_SET_MSEG_TEMP'
    i_inclname             = sy-repid
  CHANGING
    ct_fieldcat            = i_fldcat[]
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.

    break-point.

Former Member
0 Kudos

it works for everybody other than you .... Hmmmmm I dont know why ?????????????

Former Member
0 Kudos

hi,

try this change and check it

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-cprog i_internal_tabname = 'I_SET_MSEG_TEMP'

i_inclname = sy-cprog

CHANGING

ct_fieldcat = i_fldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

regards

padma

0 Kudos

Hi there

Why don't you let the system do all the hard work using the RTTI (run time Information facility)



data   gv_rtti_struc type ref to cl_abap_structdescr .
data:  zog    like line of gv_rtti_struc->components .
data:  zogt   like table of zog,
data:  dref               type ref to data.

* field catalogs for the display
wa_it_fldcat       type lvc_s_fcat,
it_fldcat          type lvc_t_fcat,

create data dref type 'YOUR STRUCTURE'    can be any structure you like
 assign dref->* to <fs>.
 gv_rtti_struc ?= cl_abap_structdescr=>describe_by_data( <fs> ).

* get the structure details into a table.
* table zogt[] contains the structure details
* From which you can  can build your  field catalog

  zogt[]  = gv_rtti_struc->components.
  loop at zogt into zog.
    clear wa_it_fldcat.
    wa_it_fldcat-fieldname = zog-name .
    wa_it_fldcat-datatype = zog-type_kind.
    wa_it_fldcat-inttype = zog-type_kind.
    wa_it_fldcat-intlen = zog-length.
    wa_it_fldcat-decimals = zog-decimals.
    wa_it_fldcat-coltext = zog-name.
    wa_it_fldcat-lowercase = 'X'.
    append wa_it_fldcat to it_fldcat.
  endloop.
*

An extra advantage of doing it this way is that the number of lines in the table ZOGT is the number of elements in your structure which can be useful for manipulating parts of the structure at run time.

This method works for ANY structure so you could build a class to use in any program

call method go_fldcat->create_fld_cat

exporting

your_struct = <fs1>

changing

fld_cat = it_fldcat.

cheers

jimbo