SAP: SALV 利用控制器的模式

SAP : SALV 例子

利用控制器的模式

利用控制器的SALV方法与实际业务中最常用的利用GRID显示ALV的方法其步骤一样。

为了在画面上显示ALV事例,必须要存在连接画面和ALV GRID控件的SAP容器控件。

SAP控制器为了充当 LINKER将SAP控件包含于自己的领域。SAP控件包含SAP Tree、

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

 

3

 3、屏幕的逻辑流:

PROCESS BEFORE OUTPUT.

MODULE 0100_PBO.

PROCESS AFTER INPUT.

MODULE 0100_PAI.

 

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 运行效果图

 

  

posted @ 2024-06-05 21:22  samrv  阅读(16)  评论(0编辑  收藏  举报