OO实现ALV TABLE 四:ALV的显示样式 [转]

OO实现ALV TABLE 四:ALV的显示样式 [转]

通过类CL_SALV_DISPLAY_SETTINGS我们可以设置ALV的显示样式,主要包括ALV表头名称,列表颜色间隔显示,水平线是否显示,竖线是否显示等。

1.首先我们要取得类CL_SALV_DISPLAY_SETTINGS的实例,根据类CL_SALV_TABLE的方法get_display_settings可以取得显示样式的实例。

lr_display = gr_table->get_display_settings( ).

2然后通过类CL_SALV_DISPLAY_SETTINGS的方法设置显示属性。

lr_display = gr_table->get_display_settings( ).

lr_display->set_striped_pattern( 'X' ). "设置颜色间隔显示

lr_display->set_list_header( 'Xin''s ALV' ). "设置ALV的抬头

lr_display->set_horizontal_lines( '' ). "设置水平线是否显示

lr_display->set_vertical_lines( '' ). "设置垂直线是否显示

下面是效果图

OO实现ALV <wbr>TABLE <wbr>四:ALV的显示样式 <wbr>[转]

下面是程序的所有代码:

REPORT y_xin_002.

*变量定义

TYPES ty_spfli TYPE spfli OCCURS 0.

DATA: gr_table TYPE REF TO cl_salv_table.

*----------------------------------------------------------------------*

* CLASS lcl_alv DEFINITION

*----------------------------------------------------------------------*

* ALV操作类(定义)

*----------------------------------------------------------------------*

CLASS lcl_alv DEFINITION.

PUBLIC SECTION.

METHODS: getdata "取得要显示的数据

RETURNING value(lt_tab) TYPE ty_spfli,

alv_full "全屏Grid列表处理方法

IMPORTING value(lt_tab) TYPE ty_spfli,

main. "主方法

ENDCLASS. "lcl_alv DEFINITION

*----------------------------------------------------------------------*

* CLASS lcl_alv IMPLEMENTATION

*----------------------------------------------------------------------*

* ALV操作类(实现)

*----------------------------------------------------------------------*

CLASS lcl_alv IMPLEMENTATION.

*取得要显示的数据

METHOD getdata.

SELECT * INTO TABLE lt_tab FROM spfli.

ENDMETHOD. "getdata

*输出全屏网格列表的方法

METHOD alv_full.

DATA: lr_functions TYPE REF TO cl_salv_functions,

lr_display TYPE REF TO cl_salv_display_settings.

data boolean type c.

"创建实例

TRY.

cl_salv_table=>factory(

IMPORTING

r_salv_table = gr_table

CHANGING

t_table = lt_tab

).

CATCH cx_salv_msg.

ENDTRY.

"显示ALV的标准功能

lr_functions = gr_table->get_functions( ).

lr_functions->set_all( 'X' ).

"设置ALV的显示样式

lr_display = gr_table->get_display_settings( ).

lr_display->set_striped_pattern( 'X' ). "设置颜色间隔显示

lr_display->set_list_header( 'Xin''s ALV' ). "设置ALV的抬头

lr_display->set_horizontal_lines( '' ). "设置水平线是否显示

lr_display->set_vertical_lines( '' ). "设置垂直线是否显示

"显示列表

gr_table->display( ).

ENDMETHOD. "alv_full

*主方法,整合数据

METHOD main.

DATA: lt_tab TYPE TABLE OF spfli.

"取得要显示的数据

lt_tab = me->getdata( ).

me->alv_full( 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( ).

posted @ 2011-10-05 14:16  VerySky  阅读(1026)  评论(0)    收藏  举报