OO实现ALV TABLE 三:ALV的功能设计[转]
细心的读者肯定已经注意前面的两个例子少了点什么,少了ALV提供的标准功能,比如排序,过滤,汇总,等,以及用户可以在ALV的功能栏上加上自己自定义的功能按钮。
ALV的标准功能可以通过类CL_SALV_FUNCTIONS和CL_SALV_FUNCTION来设计,通过这两个类你可以对ALV提供的标准功能可见或不可见。也可以自己创建GUI STATUS设置自己的ALV功能,通过GUI STATUS来设置ALV的功能是通过类CL_SALV_TABLE的方法SET_SCREEN_STATUS来实现的。
1.首先我们要取得类CL_SALV_FUNCTIONS的实例,根据类CL_SALV_TABLE的方法get_functions可以取得功能实例。
lr_functions = gr_table->get_functions( ).
2根据类CL_SALV_TABLE的方法设置功能栏。
gr_table->set_screen_status(
3.自定义功能的实现。ALV的自定义功能的实现动作要通过类的事件来处理。
Ø
ENDCLASS.
Ø
CLASS lcl_handle_events IMPLEMENTATION.
ENDCLASS.
Ø
SET HANDLER lcl_handle_events=>on_user_command FOR lr_events.
下面是效果图
下面是程序的所有代码:
REPORT
*变量定义
TYPES ty_spfli TYPE spfli OCCURS 0.
DATA:
gr_table
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
ENDCLASS.
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
ENDCLASS.
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_alv DEFINITION.
ENDCLASS.
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.
*取得要显示的数据
*输出全屏网格列表的方法
*主方法,整合数据
ENDCLASS.
*报表执行
START-OF-SELECTION.

![OO实现ALV <wbr>TABLE <wbr>三:ALV的功能设计[转] OO实现ALV <wbr>TABLE <wbr>三:ALV的功能设计[转]](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
浙公网安备 33010602011771号