ABAP:ALV修改字段值后自动刷新ALV自适应宽度

DATA:lv_grid TYPE REF TO cl_gui_alv_grid,
ls_layout TYPE lvc_s_layo.

DATA: ls_stbl TYPE lvc_s_stbl.

ls_stbl-row = ‘X’. "基于行的稳定刷新
ls_stbl-col = ‘X’. "基于列稳定刷新

  • 得到当前屏幕上的ALV的句柄
    CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
    IMPORTING
    e_grid = lv_grid.

  • 监听ALV数据的详细的改变信息
    CALL METHOD lv_grid->check_changed_data.

  • 获取ALV变化过后的布局参数
    CALL METHOD lv_grid->get_frontend_layout
    IMPORTING
    es_layout = ls_layout.

  • 重新回写自适应宽度
    ls_layout-cwidth_opt = ‘X’.

  • 回写ALV变化过后的布局参数
    CALL METHOD lv_grid->set_frontend_layout
    EXPORTING
    is_layout = ls_layout.

  • 刷新ALV布局
    CALL METHOD lv_grid->refresh_table_display
    EXPORTING
    is_stable = ls_stbl.

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用以下代码来实现在普通 ABAP ALV 中根据按钮选择动态变化屏幕字段的功能: 1. 首先,在屏幕上添加一个选择按钮(例如,单选按钮或复选框)。 2. 在 ABAP 程序中,使用函数模块 "REUSE_ALV_GRID_DISPLAY" 显示 ALV 并将屏幕字段添加到输出中。 3. 接下来,您需要编写一些代码来检测选择按钮的状态并根据需要显示或隐藏屏幕字段。以下是示例代码: ``` DATA: lt_fieldcatalog TYPE lvc_t_fcat, lt_alv_data TYPE STANDARD TABLE OF <table_type>. * Build field catalog lt_fieldcatalog = cl_gui_alv_grid=>mc_fc_itab. * Add screen field to field catalog APPEND VALUE #( fieldname = 'SCREEN_FIELD' seltext_l = 'Screen Field' outputlen = 10 ) TO lt_fieldcatalog. * Display ALV grid CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = ls_layout TABLES t_outtab = lt_alv_data t_fieldcat = lt_fieldcatalog EXCEPTIONS program_error = 1 OTHERS = 2. * Handle button selection MODULE handle_toolbar INPUT. DATA: lr_toolbar TYPE REF TO cl_gui_alv_toolbar, lr_function TYPE REF TO cl_gui_alv_function. lr_toolbar = e_object->get_toolbar( ). lr_function = lr_toolbar->get_function( 'SELECT' ). IF lr_function IS NOT INITIAL AND lr_function->get_checked( ) = abap_true. e_object->set_screen_field_visible( abap_true ). ELSE. e_object->set_screen_field_visible( abap_false ). ENDIF. ENDMODULE. ``` 在这个例子中,我们假设屏幕字段与一个名为 "SCREEN_FIELD" 的 ALV 列相关联,并且我们已经在 ALV 中绑定了一个名为 <table_type> 的表格。 在处理程序中,我们使用 MODULE 语句来处理 ALV 工具栏上的选择按钮。如果按钮被选中,则我们将屏幕字段设置为可见。否则,我们将屏幕字段设置为隐藏。 请注意,这只是一个示例代码,您需要根据自己的需求进行修改,以使其适合您的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值