SAP ABAP 子屏幕教程:在 SAP 中调用子屏幕-010

SAP ABAP 子屏幕教程:在 SAP 中调用子屏幕-010

在阅读本教程之前,请确保您什么是对话程序…

子屏幕

  • 子屏幕是显示在另一个(“主”)屏幕区域中的独立屏幕。
  • 子屏幕允许您在运行时将一个屏幕嵌入到另一个屏幕中。您可以在主屏幕上包含多个子屏幕。
  • 术语“子屏幕”既适用于嵌入的屏幕,也适用于主屏幕上放置子屏幕的区域。本教程是关于子屏幕区域的。如果在屏幕属性中定义,则通过 SE51 事务创建的实际屏幕称为子屏幕。
  • 使用子屏幕时,嵌入屏幕的流逻辑也会嵌入到主屏的流逻辑中。因此,在屏幕上使用子屏幕就像在 ABAP 程序中使用包含一样。

要使用子屏幕,您必须遵循三个简单的步骤

  1. 定义屏幕上的子屏幕区域
  2. 定义合适的子屏幕
  3. 在子屏幕区域中包括子屏幕。

另外,您需要调整子屏幕和主屏幕的框架。您需要在字段名称字段中命名它。

此外,您还需要调整子屏幕中的字段,以使其显示在主屏幕中。
如果子屏幕被定义为大于主屏幕中的可用区域,则只有适合可用区域的子屏幕部分可见。
该区域始终从屏幕的左上角测量。因此,在定义子屏幕区域和创建子屏幕时,您应该格外小心。

例如,在这里,我们在主屏幕上定义了两个子屏幕区域,并将两个不同的子屏幕附加到相应的区域。每当调用主屏幕时,都会调用主屏幕的 PBO。但在显示之前,每个屏幕的PBO与主屏幕上的子屏幕区域相连,也称为PBO。
SAP ABAP 子屏幕教程:在 SAP 中调用子屏幕-010_第1张图片

您可以在主屏幕的流逻辑中使用 CALL 子屏幕语句包括子屏幕。

若要在主屏幕的子屏幕区域中包括子屏幕并调用其 PBO 流逻辑,请在主屏幕的 PBO 事件中使用以下语句:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN  INCLUDING [] .

此语句将编号为 dynp 的子屏幕分配给名为 area 的子屏幕区域。您还可以指定在其中定义子屏幕的程序(可选)。
如果未显式指定程序,系统将在与主程序相同的 ABAP 程序中查找子屏幕。
如果找不到相应的子屏幕,则会发生运行时错误。子屏幕的PBO流逻辑也包括在同一点上。
这可以调用定义子屏幕的 ABAP 程序的 PBO 模块。
在子屏幕 PBO 的末尾,程序中的全局字段将传递到子屏幕中任何同名的屏幕字段。
子屏幕的 PBO 流逻辑本身可以包括其他子屏幕。

必须直接输入子屏幕区域的名称<区域>,不得使用倒逗号。
您可以将名称 progdynp 指定为文本或变量。
如果使用变量,则必须在 ABAP 程序中声明并填充同名变量。屏幕编号 dynp长度必须为 4 个字符。
如果未将子屏幕分配给某个区域,则该区域将保持为空。

若要调用子屏幕的 PAI 流逻辑,请在主屏幕的 PAI 流逻辑中使用以下语句:

PROCESS AFTER INPUT.

CALL SUBSCREEN .

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

要记住的要点

  • 屏幕内子屏幕元素的名称应是唯一的
  • 您不应该在子屏幕中附加OK_CODE或FCODE。主屏幕本身的OK_CODE是子屏幕的OK_CODE
  • 子屏幕不能有任何包含设置标题栏、设置 PF 状态、设置屏幕、离开屏幕或离开屏幕的对话框模块。这将导致运行时错误。
  • 您需要在主屏幕的流逻辑(PBO 和 PAI)中调用它。
  • 在链中不允许调用子屏幕。ENDCHAIN 和 LOOP ENDLOOP 语句
  • 不能有 AT EXIT 命令模块
  • 您使用的字段是全局字段。它们必须在顶部声明,包括
  • 如果使用其他对话框程序中的子屏幕,则除非添加特定代码,否则不会进行数据传输。

参考:https://www.guru99.com/abap-subscreens.html

你可能感兴趣的:(SAP,ABAP,编程教程,SAP,abap,子屏幕)