如何提取交互式 ALV 的用户命令(单击)字段的值?

How to extract the value of the field on user-command(click) for interactive ALV?

下面的代码是点击启用热点字段后将弹出新 window 的表单。我想打印被点击的字段(启用热点)的值。

FORM user_command USING r_ucomm TYPE sy-ucomm
                    rs_selfield TYPE slis_selfield.
ENDFORM.

我猜你说的是 ALV 网格。因此,您使用名为 REUSE_ALV_GRID_DISPLAY 的 FM。有一个名为 I_callback_user_command 的导出参数。在此参数中,您必须设置程序的表单名称。例如:

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_bypassing_buffer      = 'X'
    it_fieldcat             = lt_fieldcat
    i_callback_program      = sy-repid
    i_save                  = 'A'
    i_callback_user_command = 'USER_COMMAND'
    is_variant              = ls_variant
  TABLES
    t_outtab                = lt_qmel_mat
  EXCEPTIONS
    program_error           = 1
    OTHERS                  = 9.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

和表格:

FORM user_command USING rf_ucomm LIKE sy-ucomm
                    selfield TYPE slis_selfield.
 DATA: lv_qmnum      TYPE qmnum.
 CASE selfield-fieldname.
  WHEN 'QMNUM'.
   "Code
 ENDCASE.
ENDFORM.

希望对你有帮助。