Как получить значение поля 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.

person Taurine    schedule 14.07.2021    source источник
comment
У вас вопрос о том, как узнать, какая именно ячейка нажата, или как что-то отобразить? Только один вопрос на вопрос, пожалуйста.   -  person Sandra Rossi    schedule 14.07.2021


Ответы (2)


вы можете использовать с этой функцией: 'POPUP_TO_INFORM' например: CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'XXXXX' txt1 = Строка нажата txt2 = 'XXXXXXXX'.

person sharon    schedule 14.07.2021

У вас есть параметр column для события 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.
person RaTiO    schedule 15.07.2021