Abap 如何显示屏幕字段的可能值

Abap 如何显示屏幕字段的可能值,abap,Abap,在标准程序屏幕中,对于某些字段,有一个按钮,您可以单击该按钮并搜索允许的值 示例程序DEMO\u DYNPRO\u F4\u帮助\u字典: 我可以对ABAP执行同样的操作吗?它是选择选项的附加功能还是其他功能?屏幕字段右侧的这个小按钮告诉您有F4帮助。单击此按钮,或者将光标放在字段中,然后按F4键(即名称),将显示可能值的列表,您可以选择一个值 有很多方法可以确定F4帮助应该显示什么。下面的列表显示了ABAP运行时如何决定调用F4帮助时要执行的操作,这应该足以让您获得有关Web源的更多信息: S

在标准程序屏幕中,对于某些字段,有一个按钮,您可以单击该按钮并搜索允许的值

示例程序DEMO\u DYNPRO\u F4\u帮助\u字典:


我可以对ABAP执行同样的操作吗?它是选择选项的附加功能还是其他功能?

屏幕字段右侧的这个小按钮告诉您有F4帮助。单击此按钮,或者将光标放在字段中,然后按F4键(即名称),将显示可能值的列表,您可以选择一个值

有很多方法可以确定F4帮助应该显示什么。下面的列表显示了ABAP运行时如何决定调用F4帮助时要执行的操作,这应该足以让您获得有关Web源的更多信息:

SAP库用于提供以下图表,以及当用户显示给定字段的值列表时系统调用的内容,我将在下面详细介绍:

注意,它涉及到的所有类型的屏幕,选择屏幕是其中的一部分,但还有一个额外的层需要理解

因此,我首先对Dynpro技术的所有类型的屏幕的F4帮助进行一般性解释,然后是专门介绍选择屏幕的一章

调用F4帮助时会发生什么情况:

如果某个ABAP代码在VALUE-REQUEST中显式分配给屏幕字段进程,则调用此代码。 在屏幕流逻辑的值请求的事件块处理中,使用字段模块。 在程序、MODULE和ENDMODULE语句中定义ABAP代码。 您可以实现任何屏幕解决方案来显示可能的值。一个常见的解决方案是调用函数模块F4IF\u INT\u TABLE\u VALUE\u REQUEST。 否则,如果屏幕字段显式分配了搜索帮助*,则会调用此搜索帮助。 否则,如果为屏幕字段分配了与DDIC组件相对应的名称,例如字段名SFLIGHT-CARRID与DDIC表SFLIGHT的列CARRID相对应,同时检查屏幕字段属性DD字段: 如果将搜索帮助分配给DDIC组件,则会调用此搜索帮助。 否则,如果DDIC组件有一个外键,该外键引用一个称为检查表的表: 如果检查表链接到搜索帮助,则会调用此搜索帮助。 否则,如果为检查表分配了文本表,则检查表将显示文本表中的文本。 否则将显示检查表。 否则,如果为DDIC列的数据元素分配了搜索帮助,则会调用此搜索帮助。 否则,如果DDIC列的数据元素引用具有某些固定值的域,则这些值将与其各自的文本一起显示。 否则,如果屏幕字段具有类型DATS date字段,则会显示日历帮助。 否则,如果屏幕字段具有类型TIMS time字段,则显示时钟帮助。 否则什么也不会发生。 *A是一个存储库对象,它简化了处理经典F4帮助的开发。它引用数据库表或视图,指示可能的输入和返回列、附加选择条件、显示列等。它通过事务代码SE11进行维护

请查看ABAP系统中的演示程序:

演示DYNPRO F4帮助字典:演示DYNPRO上ABAP字典的F4帮助 演示\u DYNPRO\u F4\u帮助\u DYNPRO:演示DYNPRO上的F4帮助 演示\u DYNPRO\u F4\u帮助\u模块:从对话框模块演示F4帮助 选择屏幕 这些是通用屏幕,其布局和流程逻辑通过ABAP语句进行描述,并在编译时生成相应的通用屏幕,而通用屏幕则通过屏幕画师进行图形化设计

有以下ABAP语句用于在选择屏幕中处理F4帮助,但调用F4帮助时,ABAP运行时的行为与上述相同:

要通过ABAP代码处理选择屏幕字段的F4帮助,必须使用ABAP语句。 通过将单词MATCHCODE对象添加到ABAP语句参数和SELECT-OPTIONS,可以将搜索帮助分配给选择屏幕字段。 请注意,不应手动更改选择屏幕,因为每次激活程序时都会重新生成该屏幕,并且屏幕字段始终禁用DD字段属性,因此ABAP运行时不会访问DDIC中定义的搜索帮助

例如:

以下选择屏幕语句:

PARAMETERS p_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
生成选择屏幕布局和流程逻辑:

PROCESS ON VALUE-REQUEST.
  FIELD P_FILE MODULE %_P_FILE_VAL.
以及程序中隐藏给开发人员的一些ABAP代码:

MODULE %_P_FILE_VAL INPUT.
  MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
ENDMODULE.

屏幕右侧的这个小按钮告诉您有一个F4帮助。单击此按钮,或者将光标放在字段中,然后按F4键(即名称),将显示可能值的列表,您可以选择一个值

那儿 确定F4帮助应该显示什么的方法有很多。下面的列表显示了ABAP运行时如何决定调用F4帮助时要执行的操作,这应该足以让您获得有关Web源的更多信息:

SAP库用于提供以下图表,以及当用户显示给定字段的值列表时系统调用的内容,我将在下面详细介绍:

注意,它涉及到的所有类型的屏幕,选择屏幕是其中的一部分,但还有一个额外的层需要理解

因此,我首先对Dynpro技术的所有类型的屏幕的F4帮助进行一般性解释,然后是专门介绍选择屏幕的一章

调用F4帮助时会发生什么情况:

如果某个ABAP代码在VALUE-REQUEST中显式分配给屏幕字段进程,则调用此代码。 在屏幕流逻辑的值请求的事件块处理中,使用字段模块。 在程序、MODULE和ENDMODULE语句中定义ABAP代码。 您可以实现任何屏幕解决方案来显示可能的值。一个常见的解决方案是调用函数模块F4IF\u INT\u TABLE\u VALUE\u REQUEST。 否则,如果屏幕字段显式分配了搜索帮助*,则会调用此搜索帮助。 否则,如果为屏幕字段分配了与DDIC组件相对应的名称,例如字段名SFLIGHT-CARRID与DDIC表SFLIGHT的列CARRID相对应,同时检查屏幕字段属性DD字段: 如果将搜索帮助分配给DDIC组件,则会调用此搜索帮助。 否则,如果DDIC组件有一个外键,该外键引用一个称为检查表的表: 如果检查表链接到搜索帮助,则会调用此搜索帮助。 否则,如果为检查表分配了文本表,则检查表将显示文本表中的文本。 否则将显示检查表。 否则,如果为DDIC列的数据元素分配了搜索帮助,则会调用此搜索帮助。 否则,如果DDIC列的数据元素引用具有某些固定值的域,则这些值将与其各自的文本一起显示。 否则,如果屏幕字段具有类型DATS date字段,则会显示日历帮助。 否则,如果屏幕字段具有类型TIMS time字段,则显示时钟帮助。 否则什么也不会发生。 *A是一个存储库对象,它简化了处理经典F4帮助的开发。它引用数据库表或视图,指示可能的输入和返回列、附加选择条件、显示列等。它通过事务代码SE11进行维护

请查看ABAP系统中的演示程序:

演示DYNPRO F4帮助字典:演示DYNPRO上ABAP字典的F4帮助 演示\u DYNPRO\u F4\u帮助\u DYNPRO:演示DYNPRO上的F4帮助 演示\u DYNPRO\u F4\u帮助\u模块:从对话框模块演示F4帮助 选择屏幕 这些是通用屏幕,其布局和流程逻辑通过ABAP语句进行描述,并在编译时生成相应的通用屏幕,而通用屏幕则通过屏幕画师进行图形化设计

有以下ABAP语句用于在选择屏幕中处理F4帮助,但调用F4帮助时,ABAP运行时的行为与上述相同:

要通过ABAP代码处理选择屏幕字段的F4帮助,必须使用ABAP语句。 通过将单词MATCHCODE对象添加到ABAP语句参数和SELECT-OPTIONS,可以将搜索帮助分配给选择屏幕字段。 请注意,不应手动更改选择屏幕,因为每次激活程序时都会重新生成该屏幕,并且屏幕字段始终禁用DD字段属性,因此ABAP运行时不会访问DDIC中定义的搜索帮助

例如:

以下选择屏幕语句:

PARAMETERS p_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
生成选择屏幕布局和流程逻辑:

PROCESS ON VALUE-REQUEST.
  FIELD P_FILE MODULE %_P_FILE_VAL.
以及程序中隐藏给开发人员的一些ABAP代码:

MODULE %_P_FILE_VAL INPUT.
  MESSAGE 'instead, display your F4 dialog' TYPE 'I'.
ENDMODULE.