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

Fieldcatalog

Former Member
0 Likes
1,480

Hi I want to have the structure of my internal table gt_list in the fieldcatalog. How can I do that?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,447

check this example ..

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

**********************************

  • TABLES *

**********************************

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

**********************************

***TYPE-POOLS *

**********************************

type-pools : slis.

**********************************

*WORK AREAS *

**********************************

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

***********************************

*INTERNAL TABLES *

***********************************

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

******************

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

****************

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

****************

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

********************

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

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

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • 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 = itab1

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. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

*-- callling a transaction code by passing the initial screen value.

&----


*& Form USER_COMMAND

&----


form user_command using p_ucomm like sy-ucomm

p_selfield type slis_selfield.

data : l_index like sy-index,

l_refbn like cooi-refbn.

l_index = p_selfield-tabindex. " holds the selected table index

clear l_refbn.

case p_ucomm.

when '&IC1'.

clear l_refbn.

read table it_outtab index l_index.

if sy-subrc eq 0.

l_refbn = it_outtab-refbn.

if not l_refbn is initial.

set parameter id 'BES' field l_refbn.

call transaction 'ME23' and skip first screen.

endif.

else.

message e999 with text-014.

endif.

endcase.

endif.

Thansk

Mahesh

Hi I want to have the structure of my internal table gt_list in the fieldcatalog. How can I do that?

11 REPLIES 11
Read only

Former Member
0 Likes
1,448

check this example ..

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

**********************************

  • TABLES *

**********************************

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

**********************************

***TYPE-POOLS *

**********************************

type-pools : slis.

**********************************

*WORK AREAS *

**********************************

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

***********************************

*INTERNAL TABLES *

***********************************

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

******************

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

****************

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

****************

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

********************

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

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

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • 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 = itab1

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. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

*-- callling a transaction code by passing the initial screen value.

&----


*& Form USER_COMMAND

&----


form user_command using p_ucomm like sy-ucomm

p_selfield type slis_selfield.

data : l_index like sy-index,

l_refbn like cooi-refbn.

l_index = p_selfield-tabindex. " holds the selected table index

clear l_refbn.

case p_ucomm.

when '&IC1'.

clear l_refbn.

read table it_outtab index l_index.

if sy-subrc eq 0.

l_refbn = it_outtab-refbn.

if not l_refbn is initial.

set parameter id 'BES' field l_refbn.

call transaction 'ME23' and skip first screen.

endif.

else.

message e999 with text-014.

endif.

endcase.

endif.

Thansk

Mahesh

Read only

amit_khare
Active Contributor
0 Likes
1,447

If you are using REUSE Fm to display list then you have to manually create the Fieldcatalog.

If you are using OOPS then call FM LVC_FIELDCATALOG_MERGE.

Regards,

Amit

Reward all helpful replies.

Read only

Former Member
0 Likes
1,447

hi,

You can use REUSE_ALV_FIELDCATALOG_MERGE.

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
1,447

Hi,

Can do it in two ways:

First:

data w_fieldcat type slis_fieldcat_alv.

type-pools : slis.

tables : sflight.

data : i_fieldcat type slis_T_fieldcat_alv.

data v_repid like sy-repid.

data : begin of i_sflight occurs 0,

carrid like sflight-carrid,

connid like sflight-connid,

fldate like sflight-fldate,

end of i_sflight.

w_fieldcat-tabname = 'I_SFLIGHT'.

w_fieldcat-fieldname = 'CARRID'.

w_fieldcat-outputlen = '10'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

w_fieldcat-seltext_l = 'Carrie ID'.

w_fieldcat-seltext_M = 'Carrie ID'.

w_fieldcat-seltext_S = 'Carrie ID'.

w_fieldcat-HOTSPOT = 'X'.

append w_fieldcat to i_fieldcat.

clear w_fieldcat.

w_fieldcat-tabname = 'I_SFLIGHT'.

w_fieldcat-fieldname = 'CONNID'.

w_fieldcat-outputlen = '10'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

w_fieldcat-seltext_l = 'CONNI ID'.

w_fieldcat-seltext_M = 'CONNI ID'.

w_fieldcat-seltext_S = 'CONNIID'.

w_fieldcat-HOTSPOT = 'X'.

append w_fieldcat to i_fieldcat.

clear w_fieldcat.

w_fieldcat-tabname = 'I_SFLIGHT'.

w_fieldcat-fieldname = 'FLDATE'.

w_fieldcat-outputlen = '10'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

w_fieldcat-seltext_l = 'FLDATE.

w_fieldcat-seltext_M = 'FLDATE'.

w_fieldcat-seltext_S = 'FLDATE'.

w_fieldcat-HOTSPOT = 'X'.

append w_fieldcat to i_fieldcat.

clear w_fieldcat.

Second:

data w_fieldcat type slis_fieldcat_alv.

type-pools : slis.

tables : sflight.

data : i_fieldcat type slis_T_fieldcat_alv.

data v_repid like sy-repid.

data : begin of i_sflight occurs 0,

carrid like sflight-carrid,

connid like sflight-connid,

fldate like sflight-fldate,

end of i_sflight.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'I_SFLIGHT'

i_inclname = v_repid

changing

ct_fieldcat = I_fieldcatalog_TYPE.

The second is better since you can pass your structure to build a field catalog.

Sri

Read only

Former Member
0 Likes
1,447

Hello Stripes,

No need to do this.

Field catalog means...

Field Catalog: We use another internal table to define specifications on how the fields of our list will be displayed. This internal table is called the “field catalog”. The field catalog must comprise some technical and additional information about display options for each column to be displayed. There are three procedures to generate the field catalog as “Automatic generation”, “Semi-automatic generation”, and “Manual generation”. The internal table for the field catalog must be referenced to the dictionary type “LVC_T_FCAT”.

This field catalog contains fields like internal table field, internal table, database field, reference database table.. etc... check the structure of LVC_T_FCAT...

Reward If Useful.

Regards

--

Sasidhar Reddy Matli.

Read only

Former Member
0 Likes
1,447

Hi,

use the function module 'REUSE_ALV_FIELDCATALOG_MERGE' and pass your internal table to it

----


  • FORM MERGE_FIELDCATALOG *

----


  • ........ *

----


form merge_fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = syrepid

i_internal_tabname = 'ITAB1'

  • i_structure_name = 'COLORSTRUCT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = syrepid

changing

ct_fieldcat = fieldcatalog[]

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

endform. " MERGE_FIELDCATALOG

Regards

Sudheer

Read only

Former Member
0 Likes
1,447

Hi

refer to this program

reward if useful

*&---------------------------------------------------------------------*
*& Report  Z_ALV_EXAMPLE2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_ALV_EXAMPLE2.

tables : scarr , sbook.

data : begin of itab occurs 0,
       carrid like scarr-carrid,
       carrname like scarr-carrname,
       connid like sbook-connid,
       luggweight like sbook-luggweight,
       end of itab.

type-pools : slis.

data : itab1 type slis_t_fieldcat_alv.
data : wa type slis_fieldcat_alv.


*wa-col_pos = 1.
wa-fieldname = 'carrid'.
wa-seltext_s = 'Airline id'.
wa-tabname = 'itab'.
append wa to itab1.

*wa-col_pos = 2.
*wa-fieldname = 'carrname'.
*wa-seltext_s = 'Airline name'.
*wa-tabname = 'itab'.
*append wa to itab1.
*
*wa-col_pos = 3.
*wa-fieldname = 'connid'.
*wa-seltext_s = 'connection id'.
*wa-tabname = 'itab'.
*append wa to itab1.
*
*wa-col_pos = 4.
*wa-fieldname = 'luggweight'.
*wa-seltext_s = 'luggage weight'.
*wa-tabname = 'itab'.
*append wa to itab1.


select sc~carrid sc~carrname sb~connid sb~luggweight into corresponding fields of table itab
       from scarr as sc
       inner join sbook as sb
       on sc~carrid = sb~carrid where sc~carrid = 'AA'.

*PERFORM BUILD_FIELD_CATELOG CHANGING itab1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_PROGRAM                = ' '
*   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                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
     IT_FIELDCAT                       = itab1
*   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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  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 BUILD_FIELD_CATELOG CHANGING itab TYPE slis_t_fieldcat_alv.
*
*data : wa type slis_fieldcat_alv.
*
*wa-col_pos = 1.
*wa-fieldname = 'carrid'.
*wa-seltext_s = 'Airline id'.
**wa-tabname = 'itab'.
*append wa to itab1.
*
*wa-col_pos = 2.
*wa-fieldname = 'carrname'.
*wa-seltext_s = 'Airline name'.
**wa-tabname = 'itab'.
*append wa to itab1.
*
*wa-col_pos = 3.
*wa-fieldname = 'connid'.
*wa-seltext_s = 'connection id'.
**wa-tabname = 'itab'.
*append wa to itab1.
*
*wa-col_pos = 4.
*wa-fieldname = 'luggweight'.
*wa-seltext_s = 'luggage weight'.
**wa-tabname = 'itab'.
*append wa to itab1.
*ENDFORM.

Read only

Former Member
0 Likes
1,447

I have the following structure:

data:

begin of gt_list occurs 0,

matnr like mara-matnr,

ernam like mara-ernam,

ersda like mara-ersda,

maktx like makt-maktx,

end of gt_list.

I want to pass it to the fieldcataloge you can see below, but it gives me a program termination with CALL_FUNCTION_CONFLICT_TYPE.

FORM prepare_field_catalog CHANGING P_GT_FIELDCAT type slis_t_fieldcat_alv.

DATA ls_fcat type slis_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = 'MY_PROGRAM'

I_INTERNAL_TABNAME = gt_list

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_INCLNAME =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = p_gt_fieldcat

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3

Read only

0 Likes
1,447

Hi,

1. This parameter is wrong.

We have to pass the name of the internal table, in capital letters.

I_INTERNAL_TABNAME = gt_list

It should be

I_INTERNAL_TABNAME = 'MYITAB'.

regards,

amit m.

Read only

0 Likes
1,447

Hi,

Pass the table in between single inverted commas and in caps.

So yours should be 'GT_LIST'.

eg:

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'I_SFLIGHT'

i_inclname = v_repid

changing

ct_fieldcat = I_fieldcatalog_TYPE.

Sri

Read only

Former Member
0 Likes
1,447

Thanks for the helps.