ABAP程序中调用REUSE_ALV_GRID_DISPLAY_LVC显示ALV,经常会有双击某行或某字段跳转到其他tcode的需求。下面简单介绍一下。
双击事件的ucomm是'&IC1'.
完整代码:
1REPORT ztest_alv_lvc_2click. 2 3TYPES:BEGIN OF gty_ekko, 4 ebeln TYPE ekko-ebeln, 5 verkf TYPE ekko-verkf, 6 END OF gty_ekko. 7DATA:git_ekko TYPE STANDARD TABLE OF gty_ekko, 8 gwa_ekko TYPE gty_ekko. 9 10DATA:git_fcat TYPE lvc_t_fcat, 11 gwa_fcat LIKE LINE OF git_fcat, 12 gwa_layout TYPE lvc_s_layo. 13CONSTANTS: gco_callback_user_command TYPE slis_formname VALUE 'FRM_USER_COMMAND'. 14 15START-OF-SELECTION. 16 17 SELECT ebeln 18 verkf 19 INTO CORRESPONDING FIELDS OF TABLE git_ekko 20 FROM ekko 21 UP TO 10 ROWS. 22 23 PERFORM frm_set_catalog. 24 25 gwa_layout-zebra = 'X'. 26 gwa_layout-sel_mode = 'A'. 27 gwa_layout-cwidth_opt = 'X'. 28 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' 29 EXPORTING 30 i_callback_program = sy-repid 31 is_layout_lvc = gwa_layout 32 it_fieldcat_lvc = git_fcat 33 i_callback_user_command = gco_callback_user_command 34 TABLES 35 t_outtab = git_ekko[] 36 EXCEPTIONS 37 program_error = 1 38 OTHERS = 2. 39 IF sy-subrc = 0. 40 41 ENDIF. 42FORM frm_user_command USING i_ucomm TYPE sy-ucomm 43 i_wa_selfield TYPE slis_selfield. 44 CASE i_ucomm. 45 WHEN '&IC1'. "Double click 46* if click on PO field, jump to me23n 47 IF i_wa_selfield-fieldname = 'EBELN'. 48 SET PARAMETER ID 'BES' FIELD i_wa_selfield-value. 49 CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN. 50 ENDIF. 51 WHEN OTHERS. 52 53 ENDCASE. 54 55ENDFORM. 56*&---------------------------------------------------------------------* 57*& Form FRM_SET_CATALOG 58*&---------------------------------------------------------------------* 59* text 60*----------------------------------------------------------------------* 61* --> p1 text 62* <-- p2 text 63*----------------------------------------------------------------------* 64FORM frm_set_catalog . 65 66 DATA:l_pos TYPE i VALUE 1. 67 CLEAR: l_pos. 68 l_pos = l_pos + 1. 69 gwa_fcat-coltext = 'PO'. 70 gwa_fcat-scrtext_l = 'PO'. 71 gwa_fcat-scrtext_m = 'PO'. 72 gwa_fcat-scrtext_s = 'PO'. 73 gwa_fcat-fieldname = 'EBELN'. 74 gwa_fcat-col_pos = l_pos. 75 gwa_fcat-outputlen = '10'. 76 APPEND gwa_fcat TO git_fcat. 77 l_pos = l_pos + 1. 78 gwa_fcat-coltext = 'PO item'. 79 gwa_fcat-scrtext_l = 'PO item'. 80 gwa_fcat-scrtext_m = 'PO item'. 81 gwa_fcat-scrtext_s = 'PO item'. 82 gwa_fcat-fieldname = 'VERKF'. 83 gwa_fcat-col_pos = l_pos. 84 gwa_fcat-outputlen = '20'. 85 APPEND gwa_fcat TO git_fcat. 86 87ENDFORM.
运行:
<img class="alignnone size-full wp-image-3993" src="http://www.baidusap.com/wp-content/uploads/2017-03-21\_9-40-23.png" alt="" width="371" height="312" />
跳转到me23n显示采购订单3000000100
<img class="alignnone size-full wp-image-3994" src="http://www.baidusap.com/wp-content/uploads/2017-03-21\_9-41-49.png" alt="" width="715" height="334" />
以上。

