头图

语句 CALL SUBSCREEN 可用于以子屏幕的形式将其他屏幕布局直接包含在 dynpro 的屏幕布局中。这里,必须首先在当前 dynpro 的屏幕布局中定义子屏幕区域。每个子屏幕区域都有一个唯一的名称,并且可以配置为支持屏幕尺寸的更改。如果定义了后者,则当前 GUI 窗口中的每次大小更改都会引发 PAI 事件。

例如,在主动态程序的 PBO 事件中使用以下语句:

PROCESS BEFORE OUTPUT.  输出前的处理。
...
   CALL SUBSCREEN area INCLUDING prog dynp.

1.png

该语句将编号为 dynp 的子屏幕 dynpro 分配给称为区域的子屏幕区域。 prog 必须指定定义子屏幕 dynpro 的 ABAP 程序。如果找不到相应的子屏幕 dynpro,则会发生运行时错误。子屏幕 dynpro 的 PBO 流程逻辑也包含在同一点上。这可以调用定义了子屏幕 dynpro 的 ABAP 程序的 PBO 模块。在子屏幕 PBO 的末尾,程序中的全局字段将传递到子屏幕 dynpro 中任何同名的字段。子屏幕动态程序的 PBO 流程逻辑本身可以包括其他子屏幕动态程序。

子屏幕区域的名称区域必须直接输入,不带引号。名称 prog 和 dynp 可以指定为文字或变量。如果使用变量,则必须在ABAP程序中声明并填充相同名称的变量。 dynpro 编号 dynp 的长度必须为四位数字。如果子屏幕 dynpro 未分配给子屏幕区域,则它保持为空。

为了调用子屏幕dynpro的PAI流程逻辑,在主dynpro的PAI流程逻辑中使用以下语句:

PROCESS AFTER INPUT.  输入后的处理。
...
   CALL SUBSCREEN area.

该语句包含PBO事件中子屏幕区域中包含的子屏幕dynpro的PAI流程逻辑。这可以调用ABAP程序的PAI模块,其中定义了子屏幕dynpro。当触发 PAI 事件时,或者在子屏幕 dynpro 的 PAI 流逻辑中相应的 FIELD 语句之后,数据在子屏幕 dynpro 和 ABAP 程序中的同名字段之间传输。


注销
1k 声望1.6k 粉丝

invalid