繁体   English   中英

如何修改双击 ALV 事件?

[英]How to modify double click on ALV event?

嗨,大家好!

当我双击 ALV 上的“CARRID”单元格时,我在 Internet 上找到了一个运行行详细信息的程序。 如何重写此代码,以便无论我单击表格中的哪个单元格,而不仅仅是在“CARRID”中,都可以显示详细信息?

CLASS lcl_handle_dc DEFINITION.
  PUBLIC SECTION.
  METHODS double_click
        FOR EVENT double_click OF if_salv_gui_table_display_opt
        IMPORTING ev_field_name eo_row_data.
ENDCLASS.

CLASS lcl_handle_dc IMPLEMENTATION.
  METHOD double_click.
    DATA: ls_sflight TYPE sflight.
   CHECK ev_field_name = 'CARRID'.
* read the row data
   eo_row_data->get_row_data(
     EXPORTING
       iv_request_type = if_salv_gui_selection_ida=>cs_request_type–all_fields
     IMPORTING
       es_row = ls_sflight ).
* Display the row data
cl_salv_ida_show_data_row=>display( iv_text = 'Flight Row Info' is_data = ls_sflight ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
DATA: lr_salv TYPE REF TO if_salv_gui_table_ida,
      lr_handle TYPE REF TO lcl_handle_dc.
cl_salv_gui_table_ida=>create(
  EXPORTING
    iv_table_name       =  'SFLIGHT'
  RECEIVING
    ro_alv_gui_table_ida = lr_salv ).

DATA(lr_disp) = lr_salv->display_options( ).
* Enable double click
lr_disp->enable_double_click( ).
CREATE OBJECT lr_handle.
SET HANDLER lr_handle->double_click FOR ALL INSTANCES.

* Display ALV
lr_salv->fullscreen( )->display( ).

删除下面的代码行。

CHECK ev_field_name = 'CARRID'.

CHECK语句确保后面的逻辑表达式在继续执行下一个语句之前计算为abap_true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM