微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在ALV网格中选择整行?

如何解决如何在ALV网格中选择整行?

我需要使用 cl_gui_alv_grid 返回代码中 ALV 中的特定行。我使用 set_current_cell_via_id,它有效,但只选择了一个单元格。如何以编程方式选择整行?

result of cl_gui_alv_grid set_current_cell_via_id

谢谢

完整代码

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid.
DATA gt_t005t TYPE TABLE OF t005t.
ParaMETERS dummy.

AT SELECTION-SCREEN OUTPUT.
  IF gr_alvgrid IS NOT BOUND.
    CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent = cl_gui_container=>screen0.
    SELECT * FROM t005t INTO TABLE gt_t005t WHERE spras = 'E'.
    gr_alvgrid->set_table_for_first_display(
        EXPORTING i_structure_name = 'T005T'
        is_layout = VALUE #( sel_mode = 'D' )
        CHANGING it_outtab = gt_t005t ).
  ENDIF.
  DATA sroid TYPE lvc_s_roid.
  DATA irow TYPE i VALUE 2.
  SROID-ROW_ID = iRow.
  CALL METHOD gr_alvgrid->set_current_cell_via_id
    EXPORTING
      IS_ROW_NO = SROID.

解决方法

使用方法SET_SELECTED_ROWS来实现这个结果:

result of method SET_SELECTED_ROWS of cl_gui_alv_grid

完整代码:

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid.
DATA gt_t005t TYPE TABLE OF t005t.
PARAMETERS dummy.

AT SELECTION-SCREEN OUTPUT.
  IF gr_alvgrid IS NOT BOUND.
    CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent = cl_gui_container=>screen0.
    SELECT * FROM t005t INTO TABLE gt_t005t WHERE spras = 'E'.
    gr_alvgrid->set_table_for_first_display(
        EXPORTING i_structure_name = 'T005T'
        is_layout = VALUE #( sel_mode = 'D' )
        CHANGING it_outtab = gt_t005t ).
  ENDIF.
  gr_alvgrid->set_selected_rows( it_row_no = VALUE lvc_t_roid( ( row_id = 2 ) ) ).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。