如何在双击事件中获取 SALV ALV 字段值?

问题描述

我使用 cl_salv_table ALV 来处理 sflight 表数据。我想获取双击的字段的值,然后在弹出窗口中显示它。我用适当的方法定义了 lcl_handle_events 类。双击有效,例如当我双击任何行时,我可以显示消息,但我不知道如何显示双击的值。如何在弹出窗口中显示双击的单元格?

DATA schedule TYPE STANDARD TABLE OF sflight.

CLASS lcl_handle_events DEFinitioN.

  PUBLIC SECTION.
    METHODS:
     on_double_click FOR EVENT double_click OF cl_salv_events_table
      IMPORTING row column.

ENDCLASS.

CLASS lcl_handle_events IMPLEMENTATION.

  METHOD on_double_click.

    DATA value TYPE sflight.
    READ TABLE schedule INTO value INDEX row.
    
*    MESSAGE 'Row clicked.' TYPE 'I'.

  ENDMETHOD.
ENDCLASS.

解决方法

您可以使用此功能: 'POPUP_TO_INFORM' 例如: 调用函数'POPUP_TO_INFORM' 出口 标题 = 'XXXXX' txt1 = 单击的行 txt2 = 'XXXXXXXX'。

,

您有 double_click 事件的“”参数。它包含字段名称,因此您可以使用字段符号访问该值:

FIELD-SYMBOLS: <clicked_field> TYPE any.
READ TABLE schedule INTO value INDEX row.
IF sy-subrc = 0.
  ASSIGN COMPONENT lv_column of STRUCTURE value to <clicked_field>.
  MESSAGE |Value of clicked field { <clicked_field> }| TYPE 'I'.
ENDIF.