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

interactive alv report

Former Member
0 Likes
546

could any one send me a basic program hw to develop an interactive alv report..

or assist me what functions to use....

2 REPLIES 2
Read only

Former Member
0 Likes
381

<b>INTERACTIVE ALV</b>

REPORT Z50651_ALV_INTERACTIVE MESSAGE-ID ZMSG_50651

LINE-SIZE 100

LINE-COUNT 60

NO STANDARD PAGE HEADING.

******************TABLES DECLARATION*****************

TABLES : VBAP,MARA.

*****************TYPE POOLS**************************

TYPE-POOLS : SLIS.

****************INTERNAL TABLES**********************

DATA : BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN, "SALES DOCUMENT

POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM

MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER

END OF IT_VBAP.

****************TEMPORARY VARIABLES******************

DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT

DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE

*****************FIELD CATALOG***********************

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

****************LAYOUT*******************************

DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

***************VARIANT*******************************

DATA : G_VARIANT LIKE DISVARIANT.

****************SAVE*********************************

DATA : G_SAVE(1) TYPE C.

*****************EVENTS******************************

DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,

G_EVENTS TYPE SLIS_T_EVENT.

******************PF STATUS**************************

DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.

******************USER COMMAND************************

DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',

R_UCOMM LIKE SY-UCOMM.

****************SELECTION SCREEN************************

SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.

***************AT SELECTION SCREEN*********************

AT SELECTION-SCREEN.

PERFORM VALIDATE.

**************START-OF-SELECTION**************************

START-OF-SELECTION.

PERFORM GET_DETAILS.

PERFORM FIELDCAT.

PERFORM LAYOUT.

PERFORM VARIANT.

PERFORM SAVE.

PERFORM EVENTS.

PERFORM ALV_DISPLAY.

*********************FORMS*******************************************

&----


*& Form validate

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE .

SELECT SINGLE VBELN

FROM VBAP

INTO V_VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'enter valid vbeln'.

ENDIF.

ENDFORM. " validate

&----


*& Form get_details

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DETAILS .

SELECT VBELN

POSNR

MATNR

FROM VBAP

INTO TABLE IT_VBAP

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'no details found'.

ENDIF.

ENDFORM. " get_details

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELDCAT .

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-OUTPUTLEN = 10.

WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-OUTPUTLEN = 6.

WA_FIELDCAT-SELTEXT_L = 'ITEM'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-OUTPUTLEN = 18.

WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " fieldcat

&----


*& Form LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LAYOUT .

WA_LAYOUT-ZEBRA = 'X'.

ENDFORM. " LAYOUT

&----


*& Form VARIANT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VARIANT .

CLEAR G_VARIANT.

G_VARIANT-REPORT = SY-REPID.

ENDFORM. " VARIANT

&----


*& Form SAVE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SAVE .

CLEAR G_SAVE.

G_SAVE = 'A'.

ENDFORM. " SAVE

&----


*& Form EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENTS .

CLEAR XS_EVENTS.

XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENTS-FORM = 'TOP_OF_PAGE'.

APPEND XS_EVENTS TO G_EVENTS.

ENDFORM. " EVENTS

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

WRITE 😕 ' INTELLI GROUP'.

ENDFORM. "TOP_OF_PAGE

&----


*& Form ALV_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_DISPLAY .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = PF_STATUS

I_CALLBACK_USER_COMMAND = USER_COMMAND

  • I_STRUCTURE_NAME =

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

I_SAVE = G_SAVE

IS_VARIANT = G_VARIANT

IT_EVENTS = G_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 = IT_VBAP

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

&----


*& Form SET_PF_STATUS

&----


  • text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'Z50651_PFSTATUS' EXCLUDING EXTAB.

ENDFORM. "SET_PF_STATUS

&----


*& Form SET_USER_COMMAND

&----


  • text

----


FORM SET_USER_COMMAND USING R_UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN 'DC'.

READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

SELECT SINGLE MTART

FROM MARA

INTO V_MTART

WHERE MATNR = IT_VBAP-MATNR.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.

ELSE.

WRITE 😕 'MATERIAL NO :',IT_VBAP-MATNR.

WRITE 😕 'MATERIAL TYPE :' , V_MTART.

ENDIF.

ENDIF.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

WHEN 'EXIT'.

LEAVE TO SCREEN 0.

WHEN 'CLOSE'.

CALL TRANSACTION 'SE38'.

ENDCASE.

ENDFORM. "SET_USER_COMMAND

Please reward points if useful to u.

Regards

Vasu

Read only

Former Member
0 Likes
381

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.