OO实现ALV TABLE 四:ALV的显示样式
通過類CL_SALV_DISPLAY_SETTINGS我們可以設(shè)置ALV的顯示樣式,主要包括ALV表頭名稱,列表顏色間隔顯示,水平線是否顯示,豎線是否顯示等。
?
1.首先我們要取得類CL_SALV_DISPLAY_SETTINGS的實例,根據(jù)類CL_SALV_TABLE的方法get_display_settings可以取得顯示樣式的實例。
lr_display = gr_table->get_display_settings( ).
2然后通過類CL_SALV_DISPLAY_SETTINGS的方法設(shè)置顯示屬性。
lr_display = gr_table->get_display_settings( ).
??? lr_display->set_striped_pattern( 'X' ). "設(shè)置顏色間隔顯示
??? lr_display->set_list_header( 'Xin''s ALV' ). "設(shè)置ALV的抬頭
??? lr_display->set_horizontal_lines( '' ).?"設(shè)置水平線是否顯示
??? lr_display->set_vertical_lines( '' ).??? "設(shè)置垂直線是否顯示
?
下面是效果圖
?
?
下面是程序的所有代碼:
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???????? "取得要顯示的數(shù)據(jù)
?????????????? 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操作類(實現(xiàn))
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.
*取得要顯示的數(shù)據(jù)
? METHOD getdata.
??? SELECT * INTO TABLE lt_tab FROM spfli.
? ENDMETHOD.??????????????????? "getdata
?
*輸出全屏網(wǎng)格列表的方法
? 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.
?
??? "創(chuàng)建實例
??? TRY.
??????? cl_salv_table=>factory(
????????? IMPORTING
??????????? r_salv_table = gr_table
????????? CHANGING
??????????? t_table????? = lt_tab
??????? ).
???? ?CATCH cx_salv_msg.
??? ENDTRY.
?
??? "顯示ALV的標(biāo)準(zhǔn)功能
??? lr_functions = gr_table->get_functions( ).
??? lr_functions->set_all( 'X' ).
?
??? "設(shè)置ALV的顯示樣式
??? lr_display = gr_table->get_display_settings( ).
??? lr_display->set_striped_pattern( 'X' )."設(shè)置顏色間隔顯示
?? ?lr_display->set_list_header( 'Xin''s ALV' ). "設(shè)置ALV的抬頭
??? lr_display->set_horizontal_lines( '' ).? "設(shè)置水平線是否顯示
??? lr_display->set_vertical_lines( '' ).???"設(shè)置垂直線是否顯示
?
??? "顯示列表
??? gr_table->display( ).
? ENDMETHOD.??????????????????? "alv_full
?
*主方法,整合數(shù)據(jù)
? METHOD main.
??? DATA: lt_tab TYPE TABLE OF spfli.
?
??? "取得要顯示的數(shù)據(jù)
??? lt_tab = me->getdata( ).
?
??? me->alv_full( lt_tab ).
? ENDMETHOD.??????????????????? "main
ENDCLASS.??????????????????? "lcl_alv IMPLEMENTATION
?
*報表執(zhí)行
START-OF-SELECTION.
? DATA? lr_alv?? TYPE REF TO lcl_alv.
? CREATE OBJECT lr_alv.
? lr_alv->main( ).總結(jié)
以上是生活随笔為你收集整理的OO实现ALV TABLE 四:ALV的显示样式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OO实现ALV TABLE 六:ALV的
- 下一篇: OO实现ALV TABLE 三:ALV的