ABAP 普通ALV 选择屏幕字段根据按钮的选择动态变化代码如何实现
时间: 2023-09-23 18:08:36 浏览: 295
您可以使用以下代码来实现在普通 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 工具栏上的选择按钮。如果按钮被选中,则我们将屏幕字段设置为可见。否则,我们将屏幕字段设置为隐藏。
请注意,这只是一个示例代码,您需要根据自己的需求进行修改,以使其适合您的具体情况。
阅读全文
相关推荐


















