的下层。END-OF-SELECTION(页4–20)
处理完逻辑数据库提供的所有行之后的点。
下列主题说明这些事件的过程块。
处理和显示报表程序输出列表时,出现其他没有连接到逻辑数据库的事件。
可以用这些事件格式化输出列表,并使报表程序成为交互式的。
在适当的节中将继续说明这些事件。
处理报表程序输出列表时,出现下列事件:
事件关键字
事件
TOP-OF-PAGE
启动新页时,列表处理中的点
END-OF-PAGE
结束页时,列表处理中的点
可以用这些关键字改善输出列表的格式。
说明参见创建列表(页Error!
Notavalidlink.)。
下列事件出现在报表程序输出列表的显示中:
事件关键字
事件
ATLINE-SELECTION
用户在该点处选择行
ATUSER-COMMAND
用户在该点处按下功能键或在命令字段中输入命令
ATPF
用户在该点处按下有功能代码PF的功能键
可以使用这些关键字编写交互式报告的程序。
详情参见交互式列表(页Error!
Notavalidlink.)。
关于所有事件关键字的详细说明,参见事件关键字文档。
3INITIALIZATION
启动已定义选择屏幕的程序(在程序自身或在被链接的逻辑数据库程序中)时,系统通常首先处理此选择屏幕。
如果希望在处理选择屏幕之前执行过程块,可以把它分配到事件关键字INITIALIZATION。
在此块中,指定初始化选择屏幕的语句,例如通过更改参数或选择标准的默认值。
这只对在逻辑数据库中定义的参数或选择标准才有效。
对于选择标准,应该通过更改选择表的表头行并把它附加到表中,至少定义选择表的组件-SIGN、-OPTION、-LOW(参见选择表(页错误!
链接无效。
))。
否则,可能未定义部分选择标准。
如果希望通过检查逻辑数据库SAPDB自己(使用事务SLDB或通过选择“工具->ABAP/4开发工作台->开发->编程环境->逻辑数据库”),或通过检索字段的技术信息而更改内部字段,可以找到该字段的名称。
为此,在选择屏幕上选择输入字段,并按下F1。
然后,选择对话框中的“技术信息”。
在下列窗口的字段“屏幕字段”中,将会看到程序中使用的字段名称。
假定有链接到逻辑数据库F1S的报表程序:
REPORTSAPMZTST.
PARAMETERSFIRSTDAYLIKESY-DATUMDEFAULTSY-DATUM.
TABLESSPFLI.
启动此程序时,将自动出现下列选择屏幕:
在逻辑数据库F1S中定义有选择文本“承运方ID”的选择标准,以及有选择文本“从”和“到”的参数(参见选择文本(页错误!
链接无效。
))。
在程序自身中定义参数FIRSTDAY。
例如,现在选择“承运方ID”的第一个输入字段,按下F1,然后选择“技术信息”,以找到选择表的名称:
在字段“屏幕字段”中,将看到名称CARRID-LOW,它是对应于选择输入的选择表的组件。
从这里看到选择标准的名称是CARRID。
在上面所述的相同过程中,可以发现把输入字段“从”和“到”命名为CITY_FR和CITY_TO。
现在,可以按照下列方法更改报表程序:
REPORTSAPMZTST.
PARAMETERSFIRSTDAYLIKESY-DATUMDEFAULTSY-DATUM.
TABLESSPFLI.
INITIALIZATION.
CITY_FR='NEWYORK'.
CITY_TO='FRANKFURT'.
CARRID-SIGN='I'.
CARRID-OPTION='EQ'.
CARRID-LOW='AA'.
APPENDCARRID.
FIRSTDAY+6
(2)='01'.
启动SAPMZTST之后,选择屏幕如下:
更改了选择标准的默认值和所有参数。
4ATSELECTION-SCREEN
事件关键字ATSELECTION-SCREEN提供了好几种在系统处理选择屏幕时执行过程块的方法。
为了对处理选择屏幕时出现的不同事件都有效,关键字ATSELECTION-SCREEN有不同选项。
与PARAMETERS和SELCECT-OPTIONS语句的特殊选项一起,在使用选择屏幕(页错误!
链接无效。
)中显示了关键字AT-SELECTION屏幕的某些应用。
如果指定字段的关键字没有任何选项,则在系统处理完选择屏幕之后启动相应过程块。
如果从此过程块中发送ERRORMESSAGE,则系统将又显示选择屏幕,并且可以更改所有输入字段。
必须提供适当的ERRORMESSAGE。
例如,此方法可以输入字段命令,尽管没有在逻辑数据库程序中使用PARAMETERS或SELECT-OPTIONS语句的OBLIGATORY选项定义它们。
在表T100中存储和维护MESSAGE。
通过语言、两个字符的ID和三位数字对它们进行分组,可以从程序中以不同条件发送MESSAGE:
_A:
Abend,终止当前事务
_E:
错误,系统等待新输入数据
_I:
信息,处理ENTER之后,系统继续处理
_S:
确认,消息出现在下一屏上
_W:
警告,可以更改输入数据或通过按ENTER继续
必须在程序的REPORT或PROGRAM语句之后指定MESSAGE-ID。
通过ABAP/4编辑器,选择“编辑->插入语句...”,可以很容易地将MESSAGE包括到程序中。
也可以从这里更改MESSAGE。
关于报表中MESSAGE处理的详细信息,参见列表中的消息(页Error!
Notavalidlink.)。
将逻辑数据库F1S附加到下列报表程序:
REPORTSAPMZTSTMESSAGE-IDHB.
TABLESSPFLI.
ATSELECTION-SCREEN.
IFCARRID-LOWISINITIAL
ORCITY_FRISINITIAL
ORCITY_TOISINITIAL.
MESSAGEE000.
ENDIF.
此报表使用有IDHB的MESSAGE。
启动SAPMZTST之后,选择屏幕显示在逻辑数据库F1S中定义的内容。
一旦用户不把值输入到每个输入字段中,下列错误信息就将出现在屏幕的状态栏中。
在表T100中,以IDHB为此例子编写了MESSAGE000代码。
事件关键字ATSELECTION-SCREEN的选项使您能够在处理选择屏幕时为特定事件创建过程块。
在下列主题中说明这些事件:
在下列主题中即将介绍这些选项。
详细信息,参见关于ATSELECTION-SCREEN的关键字文档。
5处理特殊输入字段
要在处理选择屏幕的特殊输入字段之后启动过程块,请按照下列方法使用关键字ATSELECTION屏幕:
语法:
ATSELECTION-SCREENON.
系统处理了变量的输入字段之后,启动相应过程块。
如果从此过程块中发送ERRORMESSAGE,则系统再次显示选择屏幕,用户仅必须更改变量的输入字段。
将逻辑数据库F1S附加到下列报表程序。
REPORTSAPMZTSTMESSAGE-IDHB.
TABLESSPFLI.
ATSELECTION-SCREENONCITY_FR.
IFCITY_FRNE'NEWYORK'.
MESSAGEE010.
ENDIF.
如果用户没有在选择屏幕中的字段“从”中插入“NEWYORK”,则下列ERRORMESSAGE会出现在屏幕的状态栏中,
直到用户作出正确输入。
在表T100中,以此IDHB为例编写了MESSAGE010代码。
5处理多重选择
将特殊选择标准的复杂选择输入到选择屏幕的“多重选择”窗口,并处理此窗口之后(参见SELECT-OPTIONS语句的基本格式(页错误!
链接无效。
)中的例子),可以调用过程块,为此,请按照下列方法使用ATSELECTION-SCREEN语句:
语法
ATSELECTION-SCREENONENDOF.
在处理选择标准的“复杂选择”窗口结束处启动相应过程块。
可以使用这些选项检查内表中的条目。
将逻辑数据库F1S附加到下列报表程序中。
REPORTSAPMZTSTMESSAGE-IDHB.
TABLESSPFLI.
ATSELECTION-SCREENONENDOFCARRID.
LOOPATCARRID.
IFCARRID-HIGHNE''.
IFCARRID-LOWISINITIAL.
MESSAGEW020.
ENDIF.
ENDIF.
ENDLOOP.
启动SAPMZTST之后,如果用户在选择屏幕上单击箭头图标,然后在“多重选择”窗口中输入范围选择的上限,而不输入下限,则出现下列对话框,并发出警告:
在表T100中,以此IDHB为例编写了MESSAGE020代码。
6创建输入值列表
You通过按照下列方法使用ATSELECTION-SCREEN语句,可以为选择屏幕上的输入字段创建可能输入值的列表:
语法
ATSELECTION-SCREENONVALUE-REQUESTFOR.
如果使用此语句,在选择屏幕上选定参数或选择标准的输入字段时,会自动紧跟着该字段出现可能的登录按钮。
只可以在报表程序中使用此语句。
在逻辑数据库程序中,可以使用PARAMETERS和SELECT-OPTIONS语句的VALUE-REQUEST选项(参见关键字文档)。
必须在ATSELECTION-SCREENONVALUEREQUEST语句的过程块内为编写建议值列表程序。
用户单击可能的登录按钮或按下F4时,将显示此列表。
如何编写这种列表的代码是对话编程的范畴,并在编写字_-和值-帮助程序(页Error!
Notavalidlink.)中作了介绍。
PARAMETERSFIELD(10).
ATSELECTION-SCREENONVALUE-REQUESTFORFIELD.
参数如下:
如果为FIELD编写了建议值列表,并且用户单击了可能的登录按钮,则将显示它。
6创建输入字段的帮助
通过按照下列方法使用ATSELECTION-SCREEN语句,可以为选择屏幕上的输入字段创建自己的帮助:
语法
ATSELECTION-SCREENONHELP-REQUESTFOR.
如果使用此语句,用户在选择屏幕上选择的输入字段,并按下F1键时,将显示帮助文本。
只可以在报表程序中使用此语句。
在逻辑数据库程序中,使用PARAMETERS和SELECT-OPTIONS语句的HELP-REQUEST选项(参见关键字文档)。
必须在ATSELECTION-SCREENONHELPREQUEST语句的过程块内编写帮助文本的程序。
如何编写这种帮助的代码是对话编程的范畴,并在编写字_-和值-帮助程序(页Error!
Notavalidlink.)中作了介绍。
6处理单选按钮组
在选择屏幕上处理完单选按钮组之后(参见在选择屏幕上创建单选按钮组(页错误!
链接无效。
)),要启动过程块,请按照下列方法使用关键字ATSELECTION屏幕:
语法:
ATSELECTION-SCREENONRADIOBUTTONGROUP.
系统处理单选按钮组后启动相应过程块。
如果从过程块中发送ERRORMESSAGE,则系统又显示选择屏幕,用户只必须更改单选按钮的输入字段。
REPORTSAPMZTSTMESSAGE-IDHB.
PARAMETERS:
R1RADIOBUTTONGROUPRAD1DEFAULT'X',
R2RADIOBUTTONGROUPRAD1,
R3RADIOBUTTONGROUPRAD1.
ATSELECTION-SCREENONRADIOBUTTONGROUPRAD1.
IFR1='X'.
MESSAGEI030.
ENDIF.
如果用户没有更改选择屏幕上的单选按钮,将出现下列INFORMATIONMESSAGE:
在表T100中,以此IDHB为例编写了MESSAGE030代码。
7处理输入字段块
在选择屏幕上处理完元素块(参见创建元素块(页错误!
链接无效。
))之后启动过程块,请按照下列方法使用关键字ATSELECTION屏幕:
语法:
ATSELECTION-SCREENONBLOCK.
系统处理完元素块时启动相应过程块。
如果从此过程块中发送ERRORMESSAGE,则系统再次显示选择屏幕,用户只必须更改块的输入字段。
REPORTSAPMZTSTMESSAGE-IDHB.
SELECTION-SCREENBEGINOFBLOCKPART1
WITHFRAMETITLETEXT-001.
PARAMETERS:
NUMBER1TYPEI,
NUMBER2TYPEI,
NUMBER3TYPEI.
SELECTION-SCREENENDOFBLOCKPART1.
ATSELECTION-SCREENON
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
-
第104章
通过事件控制ABAP
104
通过
事件
控制
ABAP
冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。