OO实现ALV TABLE 一:最简单的ALV显示
2008-08-19 09:01
549 查看
以前都是通过函数“REUSE_ALV_GRID_DISPLAY”来显示列表,这种方式是面向过程的,现在有另外一种面向对象化的方式来显示列表,函数REUSE_ALV_GRID_DISPLAY可以做到的它也能够做到。它主要是通过一个类CL_SALV_TABLE来实现的.
下面让我们来实现最简单的ALV列表。
1取得要显示的数据。
SELECT * INTO TABLE lt_tab FROM spfli
2.调用类CL_SALV_TABLE的静态方法Factory()创建类的实例。
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lr_table
CHANGING
t_table = lt_tab
).
CATCH cx_salv_msg.
ENDTRY.
3.取得实例之后再调用方法Display()显示列表.
lr_table->display( ).
处理过程完成,最后让我们看一下显示结果。
下面是报表的所有源代码:
REPORT y_xin_002.
*变量定义
TYPES ty_spfli TYPE spfli OCCURS 0.
*----------------------------------------------------------------------*
* CLASS lcl_alv DEFINITION
*----------------------------------------------------------------------*
* ALV操作类(定义)
*----------------------------------------------------------------------*
CLASS lcl_alv DEFINITION.
PUBLIC SECTION.
METHODS: getdata "取得要显示的数据
RETURNING value(lt_tab) TYPE ty_spfli,
alv_process "ALV处理方法
IMPORTING value(lt_tab) TYPE ty_spfli,
main. "主方法
PRIVATE SECTION.
DATA gr_table TYPE REF TO cl_salv_table.
ENDCLASS. "lcl_alv DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_alv IMPLEMENTATION
*----------------------------------------------------------------------*
* ALV操作类(实现)
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.
*取得要显示的数据
METHOD getdata.
SELECT * INTO TABLE lt_tab FROM spfli.
ENDMETHOD. "getdata
*ALV处理方法
METHOD alv_process.
"创建实例
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = lt_tab
).
CATCH cx_salv_msg.
ENDTRY.
"显示列表
gr_table->display( ).
ENDMETHOD. "alv_process
*主方法,整合数据
METHOD main.
DATA: lt_tab TYPE TABLE OF spfli.
"取得要显示的数据
lt_tab = me->getdata( ).
"处理数据
me->alv_process( lt_tab ).
ENDMETHOD. "main
ENDCLASS. "lcl_alv IMPLEMENTATION
*报表执行
start-of-selection.
data lr_alv type ref to lcl_alv.
create object lr_alv.
lr_alv->main( ).
关于ALV的最全文档可以参考SAP Helphttp://help.sap.com/saphelp_nw70/helpdata/EN/5e/88d440e14f8431e10000000a1550b0/content.htm
下面让我们来实现最简单的ALV列表。
1取得要显示的数据。
SELECT * INTO TABLE lt_tab FROM spfli
2.调用类CL_SALV_TABLE的静态方法Factory()创建类的实例。
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lr_table
CHANGING
t_table = lt_tab
).
CATCH cx_salv_msg.
ENDTRY.
3.取得实例之后再调用方法Display()显示列表.
lr_table->display( ).
处理过程完成,最后让我们看一下显示结果。
下面是报表的所有源代码:
REPORT y_xin_002.
*变量定义
TYPES ty_spfli TYPE spfli OCCURS 0.
*----------------------------------------------------------------------*
* CLASS lcl_alv DEFINITION
*----------------------------------------------------------------------*
* ALV操作类(定义)
*----------------------------------------------------------------------*
CLASS lcl_alv DEFINITION.
PUBLIC SECTION.
METHODS: getdata "取得要显示的数据
RETURNING value(lt_tab) TYPE ty_spfli,
alv_process "ALV处理方法
IMPORTING value(lt_tab) TYPE ty_spfli,
main. "主方法
PRIVATE SECTION.
DATA gr_table TYPE REF TO cl_salv_table.
ENDCLASS. "lcl_alv DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_alv IMPLEMENTATION
*----------------------------------------------------------------------*
* ALV操作类(实现)
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.
*取得要显示的数据
METHOD getdata.
SELECT * INTO TABLE lt_tab FROM spfli.
ENDMETHOD. "getdata
*ALV处理方法
METHOD alv_process.
"创建实例
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = lt_tab
).
CATCH cx_salv_msg.
ENDTRY.
"显示列表
gr_table->display( ).
ENDMETHOD. "alv_process
*主方法,整合数据
METHOD main.
DATA: lt_tab TYPE TABLE OF spfli.
"取得要显示的数据
lt_tab = me->getdata( ).
"处理数据
me->alv_process( lt_tab ).
ENDMETHOD. "main
ENDCLASS. "lcl_alv IMPLEMENTATION
*报表执行
start-of-selection.
data lr_alv type ref to lcl_alv.
create object lr_alv.
lr_alv->main( ).
关于ALV的最全文档可以参考SAP Helphttp://help.sap.com/saphelp_nw70/helpdata/EN/5e/88d440e14f8431e10000000a1550b0/content.htm
相关文章推荐
- OO实现ALV TABLE 一:最简单的ALV显示
- OO实现ALV TABLE 四:ALV的显示样式
- OO 技术实现简单的ALV显示
- OO实现ALV TABLE 四:ALV的显示样式
- Function实现ALV Table一:最简单的ALV显示
- OO实现ALV TABLE 十一:ALV的聚合,排序,过滤
- OO实现ALV TABLE 三:ALV的功能设计
- OO实现ALV TABLE 三:ALV的功能设计
- OO实现ALV TABLE 五:ALV的栏位属性
- OO实现ALV TABLE 八:ALV的布局功能
- OO实现ALV TABLE 十:ALV的页眉页脚
- ALV显示OO实现
- OO实现ALV TABLE 十:ALV的页眉页脚
- OO实现ALV TABLE 二:ALV显示的三种形式
- OO实现ALV TABLE 五:ALV的栏位属性
- OO实现ALV TABLE 九:ALV的事件
- Function实现ALV Table一:最简单的ALV显示
- OO ALV 实现方式 ALV TABLE 之 三合一
- OO实现ALV TABLE 八:ALV的布局功能
- OO实现ALV TABLE 七:ALV的选择功能