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 Catlog

Former Member
0 Likes
601

Hi Everybody,

For Field Catlog Usaully I use the work area. For Example,

FORM f_cat1 USING text fname.

wa_fcat1-fieldname = fname.

wa_fcat1-scrtext_l = text.

APPEND wa_fcat1 TO f_cat1.

ENDFORM.

My Doubt is How will I create a field catlog with Internal Table ?

Thanks in Advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
576

Hi Vijay,

Use FM 'REUSE_ALV_FIELDCATALOG_MERGE' to create field catalog using an internal table or structure. See the sample code below:

DATA: p_repid type sy-repid,

p_repid = sy-repid.

Using Internal Table name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_internal_tabname = 'ITAB'

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

Using Structure name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_structure_name = <Structure Name>

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

Hi Vijay,

Use FM 'REUSE_ALV_FIELDCATALOG_MERGE' to create field catalog using an internal table or structure. See the sample code below:

DATA: p_repid type sy-repid,

p_repid = sy-repid.

Using Internal Table name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_internal_tabname = 'ITAB'

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

Using Structure name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_structure_name = <Structure Name>

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

4 REPLIES 4
Read only

Former Member
0 Likes
576

data : ifieldcat type slis_tfieldcat_alv,

wfieldcat type slis_fieldcat_alv.

here ifieldcat is without header line int table so you have to use explicit wa wfieldcat to appending the ifieldcat. actually you are passing aznd appending data in int table through wa only.

regards

shiba dutta

Read only

Former Member
0 Likes
576

Hi,

Use the field catalog as follows to display the no. of fields you want & display them with FM 'REUSE_ALV_GRID_DISPLAY' by mentioning the internal table there.

*For Field cat.

SFLD-FIELDNAME = 'SWERK'.

SFLD-SELTEXT_L = 'Division'.

SFLD-OUTPUTLEN = 9.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'MSGRP'.

SFLD-SELTEXT_L = 'Depot'.

SFLD-OUTPUTLEN = 10.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'BEZDT'.

SFLD-SELTEXT_L = 'Date'.

SFLD-OUTPUTLEN = 10.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'EQUNR'.

SFLD-SELTEXT_L = 'Pole No.'.

SFLD-OUTPUTLEN = 16.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'ATFLV1'.

SFLD-SELTEXT_L = 'Size(M)'.

SFLD-OUTPUTLEN = 7.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'PLTXT'.

SFLD-SELTEXT_L = 'Location'.

SFLD-OUTPUTLEN = 30.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'ATWRT2'.

SFLD-SELTEXT_L = 'Authority'.

SFLD-OUTPUTLEN = 16.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'KURZTEXT'.

SFLD-SELTEXT_L = 'Reason for change'.

SFLD-OUTPUTLEN = 17.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'ATFLV3'.

SFLD-SELTEXT_L = 'Wattage(W)'.

SFLD-OUTPUTLEN = 11.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'ATWRT4'.

SFLD-SELTEXT_L = 'Lamp Type'.

SFLD-OUTPUTLEN = 9.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

SFLD-FIELDNAME = 'COMMENTS'.

SFLD-SELTEXT_L = 'Comments'.

SFLD-OUTPUTLEN = 25.

  • SFLD-KEY = 'X'.

APPEND SFLD TO ITFLD.

CLEAR SFLD.

PERFORM BUILD_LAYOUT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = 'ZRPMSLM'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_CALLBACK_TOP_OF_PAGE = 'TOP'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = ITFLD[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB =<b> ITABMEL1</b> " internal table

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

Hope this helps.

Reward if helpful.

Regards,

Sipra .

Read only

Former Member
0 Likes
577

Hi Vijay,

Use FM 'REUSE_ALV_FIELDCATALOG_MERGE' to create field catalog using an internal table or structure. See the sample code below:

DATA: p_repid type sy-repid,

p_repid = sy-repid.

Using Internal Table name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_internal_tabname = 'ITAB'

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

Using Structure name:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = p_repid

i_structure_name = <Structure Name>

i_inclname = p_repid

changing

ct_fieldcat = it_fieldcat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

Read only

p291102
Active Contributor
0 Likes
576

Hi,

Herewith i am sending simple ALV report it will clear all your doubts man.

REPORT CODING:

REPORT YMS_TESTALV .

TYPE-POOLS: SLIS.

DATA: REPID LIKE SY-REPID,

X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

L_LAYOUT type slis_layout_alv,

  • x_events type slis_alv_event,

it_events type slis_t_event with header line. "SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

MALE type i,

female type i,

  • PLANE(10),

  • ACTUAL(10),

  • PLANE1(10),

  • ACTUAL1(10),

END OF ITAB.

START-OF-SELECTION.

REPID = SY-REPID.

SELECT VBELN POSNR FROM VBAP UP TO 20 ROWS INTO TABLE ITAB.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = text-020. "'Planned cost'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

X_FIELDCAT-OUTPUTLEN = 10 .

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = text-053. "'Actual cost '.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 2."1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'MALE'.

X_FIELDCAT-SELTEXT_L = 'MALE'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'FEMALE'.

X_FIELDCAT-SELTEXT_L = TEXT-T01. "'FEMALE'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

it_events-NAME = SLIS_EV_TOP_OF_PAGE.

it_events-FORM = 'TOP_OF_PAGE'.

APPEND iT_EVENTS.

CLEAR it_events .

L_LAYOUT-NO_COLHEAD = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

it_events = it_events[]

TABLES

T_OUTTAB = 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.

FORM TOP_OF_PAGE.

*-To display the headers for main list

FORMAT COLOR COL_HEADING.

WRITE: / SY-ULINE(143).

WRITE: / SY-VLINE,

(8) 'LAST YEAR' ,

  • SY-VLINE,

(10) ' ' ,

SY-VLINE,

  • (19) 'CURRENT YEAR'(020) centered,

(19) 'CURRENT YEAR'(020),

sy-vline.

WRITE: / SY-VLINE,

(8) 'PLANE'(053) ,

SY-VLINE,

(8) 'ACTUAL'(054) ,

SY-VLINE,

(8) 'MALE'(056) ,

sy-vline,

(9) 'FEMALE'(057) ,

sy-vline.

FORMAT COLOR OFF.

**

ENDFORM.

Thanks,

Shankar