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

本文介绍了一种在ABAP环境下实现ALV表格动态刷新的方法。具体步骤包括检查容器初始化状态、创建定制容器及ALV网格、设置双击事件处理器、布局配置与数据传递等。对于已初始化的情况,则通过调用特定方法完成ALV数据的更新显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做了这样的一个屏幕在下面的屏幕里通过批量维护调出上面的屏幕,录入要更改的数据,通过点击保存来动态改变下面屏幕的内容,开始得时候是在上面的屏幕中的保存按钮中调用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. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值