SAP 进程:关于值与帮助请求
首先,如果您对屏幕流逻辑及其在 SAP 中的用法一无所知,我们建议您查看我们的对话程序教程。
现在,让我们详细了解 POH 和 POV。
帮助请求处理 (POH):F1 帮助
- 每当按下 F1 键时,就会执行指定数据元素的 POH 事件。
- 如果屏幕处理逻辑中不存在 PROCESS ON HELP-REQUEST 事件,则以 ABAP 字典中字段的文档为基础并显示。即使不存在,也不会显示帮助。
- 要显示字段帮助文档,您必须在 POH 事件中编写以下屏幕流逻辑:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- 如果字段
有屏幕专用数据元素文档,您可以通过指定其编号 来显示它。 - 编号
可以是字面量或变量。变量必须在相应的 ABAP 程序中声明和填充。 - 请注意,在 PROCESS ON HELP-REQUEST 事件中,FIELD 语句不会将屏幕字段
的内容传输到 ABAP 程序。它只显示帮助文档。仅此而已。
模块
HELP_OBJECT_SHOW_FOR_FIELD
- 此函数模块显示 ABAP 字典中任何结构或数据库表的组件的数据元素文档。
- 您将组件和结构或表的名称传递给导入参数 FIELD 和 TABLE。
HELP_OBJECT_SHOW
- 使用此函数模块显示任何 SAPscript 文档。
- 您必须将文档类别(例如,TX 用于通用文本,DE 用于数据元素文档)和文档名称传递给导入参数 DOKCLASS 和 DOKNAME。
- 出于技术原因,您还必须将一个空的、行类型为 TLINE 的内表传递给函数模块的 tables 参数。
值处理 (POV):F4
- 当用户选择“可能的值”(F4)功能时,系统会显示字段的可能输入值(值、检查表、匹配码),前提是它们已由开发人员存储。
- 如果用户调用了“可能的值”,则始终会处理 PROCESS ON VALUE-REQUEST 事件。
- 要定义屏幕字段的可能值,您需要在屏幕流逻辑的 POV 事件中定义以下内容:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- 对于可能的值,在上面定义的模块中,您应该使用通用函数模块 HELP_VALUES_GET_WITH_TABLE 从 ABAP 字典中获取可能的值。
还有其他一些函数也可以用于输入帮助:
F4IF_FIELD_VALUE_REQUEST
- 动态调用 ABAP 字典的输入帮助。
- 您可以将 ABAP 字典的结构或数据库表的组件名称传递给函数模块的导入参数 TABNAME 和 FIELDNAME。
- 该函数模块为该组件启动 ABAP 字典输入帮助。所有相关的屏幕字段都将被读取。
- 如果您指定导入参数 DYNPPROG、DYNPNR 和 DYNPROFIELD,则用户的选择将返回到屏幕上的相应字段。
- 如果您指定表参数 RETURN_TAB,则选择将返回到表中。
MODULE VALUE_CARRIER INPUT. CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING TABNAME = 'DEMOF4HELP' FIELDNAME = 'CARRIER1' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD= 'CARRIER'. ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- 此函数模块显示您在 ABAP 程序中创建的值列表。
- 值列表作为表参数 VALUE_TAB 传递给函数模块。
- 如果您指定导入参数 DYNPPROG、DYNPNR 和 DYNPROFIELD,则用户的选择将返回到屏幕上的相应字段。
- 如果您指定表参数 RETURN_TAB,则选择将返回到表中。
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
以上就是 POH 和 POV 的全部内容。如有任何疑问,请在评论区留言。