SAP: SALV 利用控制器的模式

samrv發表於2024-06-05

SAP : SALV 例子

利用控制器的模式

利用控制器的SALV方法與實際業務中最常用的利用GRID顯示ALV的方法其步驟一樣。

為了在畫面上顯示ALV事例,必須要存在連線畫面和ALV GRID控制元件的SAP容器控制元件。

SAP控制器為了充當 LINKER將SAP控制元件包含於自己的領域。SAP控制元件包含SAP Tree、

SAP PICTURE、SAP TEXTEDIT、 SAP SPLITTER控制元件等。

3

4、主程式:

*&---------------------------------------------------------------------*
*& Report  Z17_04
*&
*&---------------------------------------------------------------------*
*& 全屏Classic List模式
*& LIST_DISPLAY : 用SALV顯示與傳統式REUSE_ALV_LIST_DISPLAY函式輸出ALV
*& 一樣效果的報表。
*&---------------------------------------------------------------------*

REPORT Z17_04.

DATA: gt_itab type table of sflight.
DATA: gr_table TYPE REF TO CL_SALV_TABLE.
DATA: gr_function type ref to cl_salv_functions_list." 應用工具欄
DATA: gr_container type ref to cl_gui_custom_container.
DATA: OK_CODE type syucomm.

SELECT * FROM  SFLIGHT INTO CORRESPONDING FIELDS OF TABLE
  gt_itab up to 25 rows.

*& #REGION: 用 螢幕100代替
*cl_salv_table=>factory(
*  EXPORTING
*    list_display = abap_true
*  IMPORTING
*    r_salv_table = gr_table
*  CHANGING
*    t_table = gt_itab
*      ).
*
**& #region:  應用工具欄
*gr_function = gr_table->get_functions( ).
*gr_function->set_default( ).
**& #endregion:  應用工具欄
*
*gr_table->display( ).
*& #ENDREGION: 用 螢幕100代替

*& 呼叫自定義的螢幕100
CALL SCREEN 0100.


*& 螢幕輸出後事件 子程式
INCLUDE z17_04_pbo.

*& 螢幕的輸入前事件 子程式
INCLUDE z17_04_pai.

  

4.1 子程式 Z17_04_PAI

*----------------------------------------------------------------------*
***INCLUDE Z17_04_PAI.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  0100_PAI  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE 0100_PAI INPUT.
  CASE OK_CODE.
    WHEN 'BACK' OR 'EXIT' OR  'CANC'.
      SET SCREEN 0.
      LEAVE SCREEN.
  ENDCASE.
ENDMODULE.                 " 0100_PAI  INPUT

  

4.2 子程式 Z17_04_PBO

*----------------------------------------------------------------------*
***INCLUDE Z17_04_PBO.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  0100_PBO  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE 0100_PBO OUTPUT.
  SET PF-STATUS '0100'.

  IF gr_container is not bound.


*& 1. Create Container
    CREATE OBJECT gr_container
     exporting
       container_name = 'CONTAINER'.

*& 2. CREATE ALV
    cl_salv_table=>factory(
      exporting
        r_container = gr_container
        container_name = 'CONTAINER'
      IMPORTING
        r_salv_table = gr_table
      CHANGING
        t_table = gt_itab
    ).

*& 3. SET ALV BUTTON
    gr_function = gr_table->get_functions( ).
    gr_function->set_all( abap_true ). " 追加ALV所有功能 

*& 4. Call alv
    gr_table->display( ).
  ENDIF.
ENDMODULE.                 " 0100_PBO  OUTPUT

4.3 執行效果圖

  

相關文章