zl程序教程

您现在的位置是:首页 >  其他

当前栏目

REUSE_ALV_GRID_DISPLAY_LVC-行选择功能详解编程语言

编程语言 详解 功能 选择 Grid ALV display reuse
2023-06-13 09:11:51 时间

ABAP程序中使用REUSE_ALV_GRID_DISPLAY_LVC显示alv,如何实现行选择功能?方法如下:

1,在输出内表中,定义一个C类型字段用来标记哪些行被选中,选中的为‘X’

2,在LVC_S_LAYO-BOX_FNAME 中指定1中定义的行选择字段

REUSE_ALV_GRID_DISPLAY_LVC-行选择功能详解编程语言


img >

完整代码:

REPORT ztest_alv_lvc_selmode. 

TYPES:BEGIN OF gty_ekko, 

 ebeln TYPE ekko-ebeln, 

 verkf TYPE ekko-verkf, 

 sel TYPE c, "用来标识行选择的字段 

 END OF gty_ekko. 

DATA:git_ekko TYPE STANDARD TABLE OF gty_ekko, 

 gwa_ekko TYPE gty_ekko. 

DATA:git_fcat TYPE lvc_t_fcat, 

 gwa_fcat LIKE LINE OF git_fcat, 

 gwa_layout TYPE lvc_s_layo. 

CONSTANTS: gco_callback_user_command TYPE slis_formname VALUE FRM_USER_COMMAND, 

 gco_callback_status TYPE slis_formname VALUE FRM_USER_STATUS. 

START-OF-SELECTION. 

 SELECT ebeln 

 verkf 

 INTO CORRESPONDING FIELDS OF TABLE git_ekko 

 FROM ekko 

 UP TO 10 ROWS. 

 PERFORM frm_set_catalog. 

 gwa_layout-zebra = X. 

 gwa_layout-box_fname = SEL. "指定行选择字段 

 gwa_layout-cwidth_opt = X. 

 CALL FUNCTION REUSE_ALV_GRID_DISPLAY_LVC 

 EXPORTING 

 i_callback_program = sy-repid 

 is_layout_lvc = gwa_layout 

 it_fieldcat_lvc = git_fcat 

 i_callback_pf_status_set = gco_callback_status 

 i_callback_user_command = gco_callback_user_command 

 TABLES 

 t_outtab = git_ekko[] 

 EXCEPTIONS 

 program_error = 1 

 OTHERS = 2. 

 IF sy-subrc = 0. 

 ENDIF. 

* ---------------------------------------------------------------------* 

* Form FRM_SET_PF_STATUS 

* ---------------------------------------------------------------------* 

* text 

*----------------------------------------------------------------------* 

* -- p1 text 

* -- p2 text 

*----------------------------------------------------------------------* 

FORM frm_user_status USING i_it_extab TYPE slis_t_extab. 

 SET PF-STATUS S0001 . 

ENDFORM. " FRM_SET_PF_STATUS 

FORM frm_user_command USING i_ucomm TYPE sy-ucomm 

 i_wa_selfield TYPE slis_selfield. 

 DATA:l_count TYPE n, 

 l_msg TYPE char100. 

 CASE i_ucomm. 

 WHEN POP. "click POP button in application toolbar 

 LOOP AT git_ekko TRANSPORTING NO FIELDS WHERE sel = X. 

 l_count = l_count + 1. 

 ENDLOOP. 

 CONCATENATE Select 

 l_count 

 rows 

 INTO l_msg 

 SEPARATED BY space. 

 MESSAGE l_msg TYPE I. 

 WHEN OTHERS. 

 ENDCASE. 

ENDFORM. 

* ---------------------------------------------------------------------* 

* Form FRM_SET_CATALOG 

* ---------------------------------------------------------------------* 

* text 

*----------------------------------------------------------------------* 

* -- p1 text 

* -- p2 text 

*----------------------------------------------------------------------* 

FORM frm_set_catalog . 

 DATA:l_pos TYPE i VALUE 1. 

 CLEAR: l_pos. 

 l_pos = l_pos + 1. 

 gwa_fcat-coltext = PO. 

 gwa_fcat-scrtext_l = PO. 

 gwa_fcat-scrtext_m = PO. 

 gwa_fcat-scrtext_s = PO. 

 gwa_fcat-fieldname = EBELN. 

 gwa_fcat-col_pos = l_pos. 

 gwa_fcat-outputlen = 10. 

 APPEND gwa_fcat TO git_fcat. 

 l_pos = l_pos + 1. 

 gwa_fcat-coltext = PO item. 

 gwa_fcat-scrtext_l = PO item. 

 gwa_fcat-scrtext_m = PO item. 

 gwa_fcat-scrtext_s = PO item. 

 gwa_fcat-fieldname = VERKF. 

 gwa_fcat-col_pos = l_pos. 

 gwa_fcat-outputlen = 20. 

 APPEND gwa_fcat TO git_fcat. 

ENDFORM.

为程序创建一个status,并在上面添加一个自定义按钮POPUP

REUSE_ALV_GRID_DISPLAY_LVC-行选择功能详解编程语言


img >

运行效果:

REUSE_ALV_GRID_DISPLAY_LVC-行选择功能详解编程语言


img >

以上。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19238.html

cjava