知识点
1,Screen(屏幕)
2,PBO(PROCESS BEFORE OUTPUT.)
3,PAI(PROCESS AFTER INPUT)
4,Module
5,GUI Title
6,GUI Status
一点点理解
1,上述6个对象都从属于程序(Report XXXXX),在Report定义的变量上述对象均能访问。
REPORT ZBC_LCL_DIALOG001.
*定义类是内表的结构用以承接数据
TABLES spfli.
*定义ucommn类型字段,承接按钮事件
DATA OK_CODE TYPE sy-ucomm.
PARAMETERS p_carr TYPE spfli-CARRID.
parameters p_conn TYPE spfli-CONNID.
call screen 100.
INCLUDE zbc_lcl_dialog001_100_pbo.
INCLUDE zbc_lcl_dialog001_100_pai.
2,Report调用Screen是通过屏幕号Call。屏幕元素可以通过设置断点方式查看。屏幕元素均有是否可见、命名、显示名称、是否只读等属性,还可以设置Gourp1/2/3/4属性,方便分组设置(比如多个字段一起只读)。屏幕元素赋值,可以通过在主程序(Report)中设置同名字段或者同名结构来赋值。
3,操作屏幕需定义PBO和PAI程序块,分别代表屏幕运行前加载和屏幕操作后执行代码。SAP提供快速子程序或者Module程序块生成方法。
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
MODULE GETDATA.
Module SETSCREEN.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
MODULE EXIT.
4,Module可以放在不同的INCLUDE文件中,建议是按PBO和PAI区分放置,再在主程序中通过INCLUDE引入文件。
*----------------------------------------------------------------------*
***INCLUDE ZBC_LCL_DIALOG001_100_PAI.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.
LEAVE TO SCREEN 0 .
ENDMODULE. " EXIT INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
case ok_code.
when 'MOD'.
write 'MOD'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
5,Title定义比较简单,在对象浏览器中右键创建即可,需要注意的是需要单独激活,可以右键选择激活也可以双击后在屏幕上激活。定义好的Title可以被PBO文件中的Module执行,例如“SET TITLEBAR 'TITLE_100'.”。当然这个Module已经在屏幕的flow logic调用。
6,GUI Status 在对象浏览器中右键创建,可以定义成应用工具栏或者菜单中,详细定义见下图,需要注意的是需要单独激活,可以右键选择激活也可以双击后在屏幕上激活。定义好的Status 可以被PBO文件中的Module执行,例如“SET TITLEBAR 'Status _100'.”。当然这个Module已经在屏幕的flow logic调用。