ABAP 子屏幕使用的相关注意事项

时间:2022-08-13 01:04:38

导读:在使用子屏幕展示报表数据时,遇到了不少问题,在此做一个较为简单的介绍子屏幕的相关知识点。

一、子屏幕的定义。

  • 子屏幕是一个独立的屏幕,显示在另一个(“主”)屏幕的区域中。(如下称主屏幕)

  • 子屏幕允许您在运行时将一个屏幕嵌入另一个屏幕。 您可以在主屏幕上包括多个子屏幕。

  • 子屏幕一词既适用于您嵌入的屏幕,也适用于您将其放置在主屏幕上的区域。

  • 使用子屏幕时,嵌入式屏幕的流逻辑也嵌入在主屏幕的流逻辑中。因此,在屏幕上使用子屏幕就像在 ABAP 程序中使用 include 一样。

二、使用子屏幕的三个简单步骤

  • 在主屏幕上定义子屏幕区域

  • 定义合适的子屏幕

  • 将子屏幕包括在主屏幕的子屏幕区域中

(注:创建子屏幕的过程和创建正常的主屏幕过程一样,只是显示在主屏幕的子屏幕区域内。)

三、主屏幕调用子屏幕的语法

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

四、注意要点。

同样的,子屏幕和主屏幕一样,都拥有PBOPAI模块,但是需要注意的是如下几点与主屏幕不同的地方。

  1. 子屏幕上不应附带 OK_CODEFCODE。 主屏幕本身的 OK_CODE 是子屏幕的 OK_CODE,但是子屏幕也有PAI模块,因此可以借用主屏幕的OK_CODE在子屏幕的PAI模块进行相关的业务逻辑判断。

  1. 子屏幕不能有任何包含 SET TITLEBARSET PF-STATUSSET SCREENLEAVE SCREEN LEAVE TO SCREEN 的对话框模块。 这将导致运行时错误。子屏幕和主屏幕共享一个标题和状态工具栏,因此在子屏幕中不允许出现子屏幕的标题与状态工具栏,相关操作应在主屏幕的工具栏和标题定义。

  1. 需要在主屏幕的流程逻辑(PBO 和 PAI)中调用它。

  1. CHAIN..ENDCHAINLOOP ENDLOOP 语句中不允许使用 CALL SUBSCREEN

  1. 不能有 AT EXIT-COMMAND 模块

  1. 如果使用的字段是全局字段。 必须在顶部包括中声明它们

  1. 如果使用另一个对话框程序的子屏幕,则除非添加特定代码,否则不会进行数据传输。