如何解决双击显示ALV表行详细信息吗?
说我有一个与客户有关的表,该表显示在 alv-grid 中,如下所示:
**BEFORE THIS: Set up parameters,SQL Select,Table etc.
CREATE OBJECT gr_alv_grid
EXPORTING
i_parent = cl_gui_custom_container=>default_screen
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
others = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.
ENDIF.
gr_alv_grid->set_table_for_first_display(
EXPORTING
i_structure_name = 'ZDebcdstest'
CHANGING
it_outtab = lt_debis
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
我想拥有的选项是双击任何给定的行,并更详细地了解其中包含的对象,例如在 SE16 中完成的操作。我已经设置了一个事件处理程序来侦听双击,该方法有效,但是我还没有弄清楚如何连续获取所有相关数据并详细显示所选对象。
非常感谢您的帮助。
解决方法
这是原始示例,说明如何使其“像在SE16中完成的工作一样”
METHOD handle_double_click.
DATA: ls_sflight LIKE LINE OF gt_sflight,ls_layout TYPE lvc_s_layo.
DATA: lt_fieldcatalog TYPE lvc_t_fcat,ls_fieldcatalog TYPE lvc_s_fcat.
DATA: details_outtab TYPE lvc_t_detm,ls_detail TYPE lvc_s_detm,lt_detail_tab TYPE lvc_t_deta,ls_detail_tab TYPE lvc_s_deta.
READ TABLE gt_sflight INDEX e_row-index INTO ls_sflight.
ls_fieldcatalog-fieldname = 'COLUMNTEXT'.
ls_fieldcatalog-ref_table = 'LVC_S_DETA'.
ls_fieldcatalog-key = 'X'.
ls_fieldcatalog-seltext = 'Field'.
ls_fieldcatalog-outputlen = 30.
APPEND ls_fieldcatalog TO lt_fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'VALUE'.
ls_fieldcatalog-ref_table = 'LVC_S_DETA'.
ls_fieldcatalog-seltext = 'Field value'.
ls_fieldcatalog-outputlen = 20.
APPEND ls_fieldcatalog TO lt_fieldcatalog.
ls_layout-no_toolbar = 'X'.
LOOP AT gt_fieldcat ASSIGNING FIELD-SYMBOL(<field>).
ls_detail_tab-columntext = <field>-scrtext_l.
ASSIGN COMPONENT sy-tabix OF STRUCTURE ls_sflight TO FIELD-SYMBOL(<col>).
ls_detail_tab-value = <col>.
APPEND ls_detail_tab TO lt_detail_tab.
ENDLOOP.
ls_detail-detailtab = lt_detail_tab.
APPEND ls_detail TO details_outtab.
CALL FUNCTION 'LVC_ITEM_DETAIL'
EXPORTING
i_title = 'Row details'
it_fieldcatalog = lt_fieldcatalog
is_layout = ls_layout
TABLES
t_outtab = details_outtab.
ENDMETHOD. "handle_double_click
在以上代码段中
gt_sflight -您要从中捕获行详细信息的主表
gt_fieldcat -该表的字段目录,在触发事件之前必须填充该表
如果您不知道如何将此方法应用于ALV,请搜索关于事件实现的some tutorial。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。