动态修改alv grid的内容的一个问题

来源:互联网 发布:阿里云ecs连接ftp 编辑:程序博客网 时间:2024/04/26 20:08

最近做了这样的一个屏幕在下面的屏幕里通过批量维护调出上面的屏幕,录入要更改的数据,通过点击保存来动态改变下面屏幕的内容,开始得时候是在上面的屏幕中的保存按钮中调用alv grid control的刷新方法,发现只有第一次点保存的时候才能修改alv grid中的内容,后来在下面的屏幕的PBO中添加了如下代码,功能好使了:

  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container EXPORTING
                  container_name = 'CONT01'.
    CREATE OBJECT alv_grid EXPORTING
                  i_parent = g_custom_container.
    CREATE OBJECT alv_dbclick.
    SET HANDLER alv_dbclick->on_dbclick FOR alv_grid.
    PERFORM frm_set_layout.
    PERFORM frm_transfer_data.
  ELSE.
    PERFORM frm_refresh_alv.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  frm_refresh_alv
*&---------------------------------------------------------------------*
*       刷新ALV数据
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM frm_refresh_alv.
  CALL METHOD alv_grid->refresh_table_display
*               EXPORTING
*                  IS_STABLE      =
*                  I_SOFT_REFRESH =
                EXCEPTIONS
                  FINISHED       = 1
                  others         = 2.
  CALL METHOD cl_gui_control=>set_focus EXPORTING control = alv_grid.
  CALL METHOD cl_gui_cfw=>flush.
*  CALL METHOD alv_grid->set_table_for_first_display
*              EXPORTING is_layout = gs_layout
*                        i_structure_name = 'ZSTYGINFO'
*              CHANGING  it_outtab = it_yginfo.

  IF SY-SUBRC <> 0.
  ENDIF.
ENDFORM. 

原创粉丝点击