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、主程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | *& ---------------------------------------------------------------------* *& 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | * ----------------------------------------------------------------------* ***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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | * ----------------------------------------------------------------------* ***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 运行效果图
优质生活从拆开始
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-06-05 EBS:供应商详细信息之公司详细信息