首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从可编辑ALV检索内容

从可编辑ALV检索内容
EN

Stack Overflow用户
提问于 2018-12-19 16:25:26
回答 2查看 1.8K关注 0票数 0

我正在开发一个显示和编辑ALV的报告。

我设置了PF-状态,添加了一个“进程”按钮。当按下此按钮时,应检索并处理用户在ALV中引入的内容。

我就是这样建立我的ALV的:

代码语言:javascript
复制
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
  i_callback_program       = sy-repid "program name
  i_callback_user_command  = 'USER_COMMAND' "user command subroutine name
  i_callback_pf_status_set = 'SUB_PF_STATUS'
  it_fieldcat              = it_fieldcat
  i_save                   = 'X'
TABLES
  t_outtab                 = it_input
EXCEPTIONS
  program_error            = 1
  OTHERS                   = 2.

然而,我这样做的方式,检索是空的。我该如何解决这个问题?

下面是我的代码片段,当涉及到'Process‘时。

代码语言:javascript
复制
IF r_ucomm EQ '&PROC'.

 LOOP AT it_input INTO ls_input.
   PERFORM process_data USING ls_input.
 ENDLOOP.

ENDIF.
EN

回答 2

Stack Overflow用户

发布于 2018-12-25 23:35:40

获取ALV网格实例之后,运行其方法'check_changed_data',如下所示。

代码语言:javascript
复制
DATA lo_grid TYPE REF TO cl_gui_alv_grid.

IF r_ucomm EQ '&PROC'.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
            e_grid = lo_grid.

    IF lo_grid IS NOT INITIAL.
        lo_grid->check_changed_data( ).
    ENDIF.

 LOOP AT it_input INTO ls_input.
   PERFORM process_data USING ls_input.
 ENDLOOP.

ENDIF.

您可以使用'set_table_for_first_display‘方法直接创建ALV网格,而不需要函数模块'REUSE_ALV_GRID_DISPLAY’。

代码语言:javascript
复制
DATA go_grid TYPE REF TO cl_gui_alv_grid.

CREATE OBJECT go_grid
    EXPORTING
        i_parent = cl_gui_custom_container=>default_screen.

go_grid->set_table_for_first_display(
    CHANGING
       it_outtab       = it_input
       it_fieldcatalog = it_fieldcat ).

...

IF r_ucomm EQ '&PROC'.
    go_grid->check_changed_data( ).
    LOOP AT it_input INTO ls_input.
        PERFORM process_data USING ls_input.
    ENDLOOP.
ENDIF.
票数 1
EN

Stack Overflow用户

发布于 2018-12-20 05:31:34

请删除行刷新it_input。,这是删除it_input的内容,因此检索是空的。您可以使用下面的代码而不需要刷新it_input

代码语言:javascript
复制
IF r_ucomm EQ '&PROC'.

 LOOP AT it_input INTO ls_input.
   PERFORM process_data USING ls_input.
 ENDLOOP.

ENDIF.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53855339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档