SAP Dialog屏幕开发(一)
所有的数据传递及管控都是通过屏幕逻辑流(Flow Logic)中的代码来实现的。下面主要介绍屏幕中输入数据的控制及屏幕的退出控制办法。介绍前先看看主要的屏幕组件及其功能描述。
|
Text field | 文本字段 |
|
Input/Output field | 输入域 |
|
CheckBox | 复选框 |
|
RadioButton | 单选按钮 |
|
PushButton | 按钮 |
|
Tabscrip control | TAB分页控件 |
|
Tabscript( with wizard ) | 通过向导创建TAB控件 |
|
Box | 框架控件 |
|
Subscreen area | 子屏幕区域 |
|
Table control | 数据表格控件 |
|
Table control( wizard ) | 通过向导创建数据表格控件 |
|
Customer control | 客制化容器,如ALV控件等 |
|
Status | 状态图标 |
按钮ICON | 按钮名称 |
控件功能描述 |
1.1.1、屏幕输入字段的检查 SAP中的屏幕会包含输入和输出,通过对话框模式所建立的屏幕控制也包含在两个过程中,在屏幕建立时逻辑流(Flow Logic)中初始化PBO和PAI两个过程。
● PBO:PROCESS BEFORE OUTPUT,主要用于控制屏幕输出前事件,例如数据初始化赋值一般都是通过该过程实现。
●PAI:PROCESS AFTER INPIT,用于控制屏幕输出后的事件,如屏幕中输入的文本字段所输入值的检查。
在屏幕中经常存在控制和屏幕输入数据的检查,在屏幕流的PAI过程中使用关键字FIELD,可以实现对屏幕中输入字段的检查,其扩展语法如下:
1)ON INPUT:指定某子工程只在给定字段具有非初始化值时才被调用。
FIELD <对象名> MODULE < 子过程 > ON INPUT.当在指定字段输入值时,则会触发对应的子程序,该事件适合于对屏幕新增数据的检查。
2)ON REQUEST:当屏幕中文本输入字段的值发生变化,(例如在原本空值的字段中输入数据源,或者修改某字段的值)会触发该程序所定义的子程序。该事件适合于屏幕中所有字段值的变化时检查更新。
3)CHAIN-INPUT | CHAIN-REQUEST :该语法可以同时控制屏幕中多个字段的输入事件。
倘若F1或者f2的任一一个字段有输入值时,都会触发子程序MOD1,不在CHAIN...ENDCHAIN中定义的屏幕字段在MOD1检查出现错误提示时会被锁定。
1.1.2、屏幕退出事件
在SAP标准事务代码操作中,很多用户应该有体验,当按键盘上的ESC键时,系统会退出或提示是否需要保存的提示。在程序中实现该类事件的方法及步骤如下:
STEP | 01 首先需要在程序中维护一个GUI的状态对象,并在该GUI的状态中为功能键定义命令名称(如果要通过ESC键触发的事件,请选择“退出”的功能键),双击这个功能键维护页面所对应的字段,系统将弹出功能键属性维护对话框。在属性对话框中定义其功能类型为“E”,表示在系统退出命令时调用。设置完成后注意保存并**对象。
STEP | 02 在屏幕流PAI事件中调用USER-COMMAND事件。
创建子程序,并为其分配代码
倘若屏幕中输入字段属性被设置成了必输,当这些字段未被维护时,程序是不允许退出的,倘若在程序中维护了退出命令,则能实现跳过必输项检查的退出事件。
1.1.3、屏幕中输入帮助的实现
输入帮助也称为F4帮助,在Dialog程序开发中实现输入字段F4帮助的方法有两种,第一种是通过参考数据字典对象来引用参考字段相关的帮助参数,第二种则可以通过代码来制定输入字段的帮助信息。
1.参考数据字典实现输入帮助
在定义屏幕对象时,可以直接在屏幕对象的“属性” | “词典” | “搜索帮助” 字段中维护需要实现的帮助对象。例如某屏幕中自定义了一个文本输入字段,在其“搜索帮助”属性栏位中维护物料的搜索帮助对象“MAT1”,那么该字段则可以实现在物料输入相关的搜索帮助功能。
2.使用代码控制的方法
第二种方法则可以在屏幕逻辑流中通过代码控制的办法来实现搜索帮助的控制,本例中自定义了一个屏幕文本输入字段LAB02,在逻辑流中首先要声明PROCESS ON VALUE-REQUEST事件,表示屏幕F4事件触发该事件。需要在该事件后指定具体的字段名及子程序名。