在标准程序屏幕中,对于某些字段,旁边有一个按钮,您可以单击并搜索允许的值。
示例(程序 DEMO_DYNPRO_F4_HELP_DICTIONARY):
我可以对 ABAP 做同样的事情吗?它是 select-options 的附加功能还是其他功能?
屏幕字段右侧的这个小按钮告诉您有F4 帮助。您可以单击此按钮,也可以将光标放在字段中并按 F4(因此得名),然后将显示可能值的列表,您可以选择一个值。
有多种方法可以确定 F4 帮助应显示的内容。下面的列表显示了 ABAP 运行时如何决定调用 F4 帮助时要执行的操作,这应该足以让您在 Web 上获取更多信息(来源:SAP 库“搜索帮助调用的层次结构”)。
SAP 库用于提供下图(也可在此处获取)当用户显示给定字段的值列表时系统调用的内容,我将在下面详细介绍:
请注意,它涉及Dynpro 技术的所有类型的屏幕,选择屏幕是其中的一部分,但还有一个额外的层需要理解。
因此,我首先对 Dynpro 技术的所有类型屏幕的 F4 帮助进行一般性解释,然后专门介绍选择屏幕的一章。
调用 F4 帮助时会发生什么:
PROCESS ON VALUE-REQUEST),则调用该代码。
PROCESS ON VALUE-REQUEST在屏幕流逻辑的事件块中,使用FIELD <screenfieldname> MODULE <modulename>。MODULE <modulename>和ENDMODULE语句中定义 ABAP 代码。F4IF_INT_TABLE_VALUE_REQUEST。SFLIGHT-CARRID对应于CARRIDDDIC 表的列SFLIGHT),并且同时检查
屏幕字段属性“ DD field ”:DATS(日期字段),则会显示日历帮助。TIMS(时间字段),则会显示时钟帮助。(*)搜索帮助是一个存储库对象,它简化了处理经典 F4 帮助的开发。它指的是数据库表或视图,指示可能的输入和返回列、附加选择标准、显示列等。它通过事务代码进行维护SE11。
请查看您的ABAP系统中的那些演示程序:
选择屏幕是通用屏幕,其布局和流程逻辑通过ABAP语句描述,并在编译时生成相应的通用屏幕,而通用屏幕通过Screen Painter以图形方式设计。
以下 ABAP 语句用于处理选择屏幕中的 F4 帮助(但调用 F4 帮助时,ABAP 运行时的行为与上面相同):
AT SELECTION-SCREEN ON VALUE-REQUEST FOR <screen field name>必须使用 ABAP 语句。MATCHCODE OBJECT <searchhelpname>通过将单词添加到 ABAP 语句PARAMETERS和,可以将搜索帮助分配给选择屏幕字段SELECT-OPTIONS。请注意,不应手动更改选择屏幕,因为每次激活程序时都会重新生成选择屏幕,并且屏幕字段始终停用“DD Field”属性,因此 ABAP 运行时不会访问在DDIC。
例子:
以下选择屏幕语句:
PARAMETERS p_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
Run Code Online (Sandbox Code Playgroud)
生成选择屏幕(布局和流程逻辑):
PROCESS ON VALUE-REQUEST.
FIELD P_FILE MODULE %_P_FILE_VAL.
Run Code Online (Sandbox Code Playgroud)
以及程序中对开发人员隐藏的一些 ABAP 代码:
MODULE %_P_FILE_VAL INPUT.
MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
ENDMODULE.
Run Code Online (Sandbox Code Playgroud)