TABLE CONTROL 行双击事件

1. 要在屏幕上自定义双击事件,首先把需要回应双击的字段的属性: 响应双击/Responds to Double-Click给勾选上.
2.在状态定义上给F2的功能键分配一个功能码,如DOUB.
3.编程实现,在USER-COMMAND中编写相关的代码,如:
CASE OK_CODE.
WHEN 'DOUB'.   "定义的功能码
CLEAR OK_CODE.
PERFORM GET_FIELD.
ENDCASE.
如果有多个字段需要回应的话,可以通过GET CURSOR FIELD V_FIELD VALUE V_TABNAME ,如果是在TABLE CONTROL中可以用GET CURSOR FIELD LINE 来捕捉鼠标双击了那个字段.
FORM GET_FIELD.
DATA:FID(20).
GET CURSOR FIELD FID.
IF FID = 'ITAB-BGRUP'.
SET PARAMETER ID 'BUK' FIELD P_BUKRS.
SET PARAMETER ID 'BLN' FIELD P_BELNR.
SET PARAMETER ID 'GJR' FIELD P_GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. "GET_FIELD

### 关于OOALV双击事件跳转的实现方法 在ABAP编程环境中,为了实现在对象导向的ALV(Object-Oriented ALV, OOALV)网格控件上处理双击事件并执相应的页面跳转操作,通常采用如下方式: #### 注册事件处理器 首先,在创建ALV实例时注册`ON_DOUBLE_CLICK`事件。这可以通过设置ALV Grid Table Control的相关参数来完成。 ```abap DATA: lo_alv TYPE REF TO cl_gui_alv_grid, ls_layout TYPE lvc_s_layo. lo_alv = NEW #( parent = gr_container ). ls_layout-cwidth_opt = 'X'. SET HANDLER on_double_click FOR lo_alv. ``` 此处定义了一个名为`on_double_click`的方法作为响应函数[^1]。 #### 编写双击事件处理逻辑 接着编写上述提到的`on_double_click`方法的具体实现。此方法会在用户双击表格时触发,并允许获取所选记录的信息用于后续处理。 ```abap METHOD on_double_click. DATA: lv_row TYPE i, lt_data TYPE TABLE OF zyour_table_type, wa_data LIKE LINE OF lt_data. " 获取当前点击号 lv_row = me->get_selected_row( ). IF sy-subrc EQ 0 AND lv_row NE 0. " 加载数据到内部表 SELECT * FROM zyour_table INTO CORRESPONDING FIELDS OF TABLE lt_data WHERE row_id = lv_row. READ TABLE lt_data INTO wa_data INDEX 1. IF sy-subrc EQ 0. " 执具体业务逻辑或导航至其他事务码/视图 PERFORM navigate_to_detail_screen USING wa_data-key_field. ENDIF. ENDIF. ENDMETHOD. ``` 这段代码展示了如何捕获用户的交互为以及基于选定的数据项采取动的过程[^2]。 #### 导航功能开发 最后一步涉及实际的界面切换动作。假设目标是从列表展示界面向详情查看界面转移,则可以在程序内通过调用特定的功能模块或者直接启动新的事务处理来进转换。 ```abap FORM navigate_to_detail_screen USING p_key_field TYPE string. CALL TRANSACTION 'ZDETAIL_TRANSACTION' AND SKIP FIRST SCREEN. SET PARAMETER ID 'KEY' FIELD p_key_field. ENDFORM. ``` 这里假定存在一个专门针对细节信息浏览而设计的事物代码`ZDETAIL_TRANSACTION`,并通过传递必要的键值参数达到精准定位的目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值