ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件

本文介绍了如何在ABAP中处理REUSE_ALV_GRID_DISPLAY的双击事件,通过定义命令处理Form 'USER_COMMAND',在双击事件中获取选中行的数据并调用函数进行操作。此外,还展示了如何设置和调用ALV网格显示的相关参数。

1 定义命令处理Form
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                  RS_SELFIELD TYPE SLIS_SELFIELD.

  DATA: VBELN1 LIKE L_SPETAB-VBELN, VBTYP1 LIKE L_SPETAB-VBTYP.
  RS_SELFIELD-REFRESH = 'X'.     "控制grid产生新屏幕
  CASE R_UCOMM.
    WHEN  'BEAN' OR '&IC1'.  "双击事件
      LOOP AT L_SPETAB WHERE SELK = 'X' .
        VBELN1 = L_SPETAB-VBELN.
        VBTYP1 = L_SPETAB-VBTYP.
        CALL FUNCTION 'RV_CALL_CHANGE_TRANSACTION'
          EXPORTING
            VBELN = VBELN1
     &nbs

文档中仅提及了“REUSE_ALV_GRID_DISPLAY_LVC - 双击事件’&IC1′”,但未给出具体的使用方法和实现方式。不过结合SAP ALV开发的一般知识,在使用`REUSE_ALV_GRID_DISPLAY_LVC`函数时实现双击事件通常需要以下步骤: 1. 定义回调函数:需要定义一个回调函数来处理双击事件。这个函数会在用户双击ALV网格中的某一行时被调用。 2. 在调用`REUSE_ALV_GRID_DISPLAY_LVC`函数时指定回调函数:在调用`REUSE_ALV_GRID_DISPLAY_LVC`函数时,需要通过相应的参数指定处理双击事件的回调函数。 以下是一个简单的示例代码框架: ```abap REPORT ztest_alv_double_click. TABLES: mara. DATA: gt_outtab TYPE TABLE OF mara, gs_outtab TYPE mara. DATA: i_layout_lvc TYPE lvc_s_layo, i_fieldcat_lvc TYPE lvc_t_fcat, gs_fieldcat_lvc TYPE lvc_s_fcat. * 填充数据内表 SELECT * FROM mara INTO CORRESPONDING FIELDS OF TABLE gt_outtab. * 定义字段目录 gs_fieldcat_lvc-fieldname = 'MATNR'. gs_fieldcat_lvc-seltext_m = 'Material Number'. APPEND gs_fieldcat_lvc TO i_fieldcat_lvc. gs_fieldcat_lvc-fieldname = 'MAKTX'. gs_fieldcat_lvc-seltext_m = 'Material Description'. APPEND gs_fieldcat_lvc TO i_fieldcat_lvc. * 定义布局 i_layout_lvc-zebra = 'X'. * 定义双击事件的回调函数 FORM frm_double_click USING es_row TYPE slis_datatab_line. DATA: lv_matnr TYPE mara-matnr. READ LINE OF es_row INTO gs_outtab. lv_matnr = gs_outtab-matnr. WRITE:/ 'You double clicked on material number:', lv_matnr. ENDFORM. * 调用REUSE_ALV_GRID_DISPLAY_LVC函数 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid i_callback_user_command = 'FRM_DOUBLE_CLICK' is_layout_lvc = i_layout_lvc it_fieldcat_lvc = i_fieldcat_lvc i_save = 'X' TABLES t_outtab = gt_outtab EXCEPTIONS program_error = 1 OTHERS = 2. ``` ### 代码解释: - 首先,定义了数据内表`gt_outtab`用于存储从`mara`表中查询的数据。 - 然后,定义了字段目录`i_fieldcat_lvc`和布局`i_layout_lvc`。 - 接着,定义了处理双击事件的回调函数`frm_double_click`,在这个函数中可以获取用户双击行的数据。 - 最后,调用`REUSE_ALV_GRID_DISPLAY_LVC`函数,并通过`i_callback_user_command`参数指定处理双击事件的回调函数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值