日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OO实现ALV TABLE 八:ALV的布局功能

發(fā)布時(shí)間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OO实现ALV TABLE 八:ALV的布局功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在ALV的輸出結(jié)果中,我們可以利用ALV提供的標(biāo)準(zhǔn)功能(過濾,排序,匯總)對(duì)輸出結(jié)果正行操作。比如說我們對(duì)一個(gè)結(jié)果進(jìn)行了排序和過濾等的動(dòng)作,下次再運(yùn)行這個(gè)報(bào)表的時(shí)候可以選擇一個(gè)功能直接運(yùn)行這些動(dòng)作。這就需要布局(Layout)的功能了。

?

1.?????? 首先我們?cè)O(shè)置布局的功能按鈕。

ls_key-report = sy-repid.

??? lr_layout = gr_table->get_layout( ).

??? lr_layout->set_key( ls_key ).

??? lr_layout->set_save_restriction(l_restrict ).

??? lr_layout->set_default( 'X' ).

??? IF p_lay IS NOT INITIAL.

????? lr_layout->set_initial_layout( p_lay).

ENDIF.

2.??????設(shè)置前臺(tái)選項(xiàng)頁面。

SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.

PARAMETERS: p_lay LIKE disvariant-variant.

SELECTION-SCREEN SKIP.

PARAMETERS: p_save1 RADIOBUTTON GROUP rg DEFAULT 'X',

??????????? p_save2RADIOBUTTON GROUP rg,

??????????? p_save3RADIOBUTTON GROUP rg.

SELECTION-SCREEN END OF BLOCK blk.

3.?????? 設(shè)置前臺(tái)布局選項(xiàng)功能搜索幫助

DATA: ls_layout TYPE salv_s_layout_info,

????????? ?ls_key???TYPE salv_s_layout_key,

????????? ?l_restrict TYPE salv_de_layout_restriction.

??? l_restrict = get_restrict( ).

??? ls_key-report = sy-repid.

??? ls_layout =cl_salv_layout_service=>f4_layouts(

??? s_key???= ls_key

???restrict = l_restrict ).

layout = ls_layout-layout.

?

?

?

?

?

?

?

?

?

?

下面是效果圖

?



下面是程序的所有代碼:

REPORT? y_xin_002.

?

*變量定義

TYPES: BEGIN OF gs_spfli,

??????? mandt?????? TYPE spfli-mandt,

??????? carrid????? TYPE spfli-carrid,

??????? connid????? TYPE spfli-connid,

??????? countryfr?? TYPE spfli-countryfr,

??????? cityfrom??? TYPE spfli-cityfrom,

??????? airpfrom??? TYPE spfli-airpfrom,

??????? countryto?? TYPE spfli-countryto,

??????? cityto????? TYPE spfli-cityto,

??????? airpto????? TYPE spfli-airpto,

??????? fltime????? TYPE spfli-fltime,

??????? deptime???? TYPE spfli-deptime,

??????? arrtime???? TYPE spfli-arrtime,

??????? distance??? TYPE spfli-distance,

??????? distid????? TYPE spfli-distid,

??????? fltype????? TYPE spfli-fltype,

??????? period????? TYPE spfli-period,

END OF gs_spfli.

TYPES? ty_spfli TYPE gs_spfli OCCURS 0.

?

*選擇屏幕

SELECTION-SCREEN BEGIN OF BLOCKblk WITH FRAME.

PARAMETERS: p_lay LIKEdisvariant-variant.

SELECTION-SCREEN SKIP.

PARAMETERS: p_save1 RADIOBUTTONGROUP rg DEFAULT 'X',

??????????? p_save2 RADIOBUTTON GROUP rg,

??????????? p_save3 RADIOBUTTON GROUP rg.

SELECTION-SCREEN END OF BLOCKblk.

?

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

*?????? CLASS lcl_alv DEFINITION

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

*?????? ALV操作類定義

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

CLASS lcl_alv DEFINITION.

? PUBLIC SECTION.

??? METHODS: getdata?????????????? "取得要顯示的數(shù)據(jù)

?????????????? RETURNING value(lt_tab) TYPEty_spfli,

???????????? alv_full????????????? "全屏Grid列表處理方法

????????? ?????IMPORTING value(lt_tab) TYPE ty_spfli.

??? CLASS-METHODS: f4_layout?????? "布局選項(xiàng)的搜索幫助

??????????????????? EXPORTINGvalue(layout)?? TYPE disvariant-variant,

?????????????????? get_restrict??? "取得約束選項(xiàng)的值

???????????????????? RETURNING value(restrict)TYPE salv_de_layout_restriction.

? PRIVATE SECTION.

??? DATA: gr_table TYPE REF TO cl_salv_table.

ENDCLASS.??????????????????? "lcl_alv DEFINITION

?

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

*?????? CLASS lcl_alv IMPLEMENTATION

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

*?????? ALV操作類(實(shí)現(xiàn))

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

CLASS lcl_alvIMPLEMENTATION.

*取得要顯示的數(shù)據(jù)

? METHOD getdata.

??? SELECT * INTO CORRESPONDING FIELDS OF TABLElt_tab FROM spfli.

? ENDMETHOD.??????????????????? "getdata

?

*輸出全屏網(wǎng)格列表的方法

? METHOD alv_full.

??? DATA: lr_functions? TYPE REF TO cl_salv_functions_list,

????????? lr_selections TYPE REF TO cl_salv_selections,

????????? lr_layout???? TYPE REF TO cl_salv_layout,

????????? ls_key??????? TYPE salv_s_layout_key,

????????? l_restrict??? TYPE salv_de_layout_restriction.

?

??? l_restrict = lcl_alv=>get_restrict( ).

?

??? "創(chuàng)建實(shí)例

??? TRY.

??????? cl_salv_table=>factory(

????????? IMPORTING

??????????? r_salv_table = gr_table

????????? CHANGING

??????????? t_table????? = lt_tab

??????? ).

????? CATCH cx_salv_msg.

??? ENDTRY.

??? "設(shè)置布局功能按鈕

??? ls_key-report = sy-repid.

??? lr_layout = gr_table->get_layout( ).

??? lr_layout->set_key( ls_key ).

??? lr_layout->set_save_restriction(l_restrict ).

??? lr_layout->set_default( 'X' ).

??? IF p_lay IS NOT INITIAL.

????? lr_layout->set_initial_layout( p_lay).

??? ENDIF.

??? "顯示ALV的標(biāo)準(zhǔn)功能

??? lr_functions = gr_table->get_functions().

??? lr_functions->set_all( 'X' ).

??? "

??? "顯示列表

??? gr_table->display( ).

? ENDMETHOD.??????????????????? "alv_full

?

*前臺(tái)布局選項(xiàng)搜索幫助

? METHOD f4_layout.

??? DATA: ls_layout TYPE salv_s_layout_info,

????????? ls_key??? TYPE salv_s_layout_key,

????????? l_restrict TYPEsalv_de_layout_restriction.

?

??? l_restrict = get_restrict( ).

?

??? ls_key-report = sy-repid.

?

??? ls_layout =cl_salv_layout_service=>f4_layouts(

????? s_key???= ls_key

????? restrict = l_restrict ).

?

??? layout = ls_layout-layout.

? ENDMETHOD.???????????????????????????????????????????????"f4_layout

?

*取得約束選項(xiàng)的值

? METHOD get_restrict.

??? CASE 'X'.

????? WHEN p_save1.

??????? restrict =if_salv_c_layout=>restrict_none.

????? WHEN p_save2.

??????? restrict =if_salv_c_layout=>restrict_user_dependant.

????? WHEN p_save3.

??????? restrict =if_salv_c_layout=>restrict_user_independant.

??? ENDCASE.

? ENDMETHOD.????? ??????????????"constructor

ENDCLASS.??????????????????? "lcl_alvIMPLEMENTATION

?

*&---------------------------------------------------------------------*

*&????? Form?f_main

*&---------------------------------------------------------------------*

*?????? 整合數(shù)據(jù)執(zhí)行

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

FORM f_main.

? DATA: lt_tab TYPE ty_spfli,

??????? lr_alv TYPE REF TO lcl_alv.

?

? CREATE OBJECT lr_alv.

?

? "取得要顯示的數(shù)據(jù)

? lt_tab = lr_alv->getdata( ).

?

? lr_alv->alv_full( lt_tab ).

ENDFORM.??????????????????? "f_main

?

*布局搜索幫助

AT SELECTION-SCREEN ONVALUE-REQUEST FOR p_lay.

? CALL METHOD lcl_alv=>f4_layout

??? IMPORTING

????? layout = p_lay.

?

*執(zhí)行動(dòng)作

START-OF-SELECTION.

? PERFORM f_main.

總結(jié)

以上是生活随笔為你收集整理的OO实现ALV TABLE 八:ALV的布局功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。