Abap 如何将一个选择屏幕包含到另一个屏幕中

Abap 如何将一个选择屏幕包含到另一个屏幕中,abap,dynpro,sap-selection-screens,Abap,Dynpro,Sap Selection Screens,我需要将给定程序的选择屏幕(ZPRG1)包含到另一个程序的(ZPRG2)子屏幕(100)中 当我运行下面的程序ZPRG2时,在显示任何屏幕之前,出现运行时错误DYNP\u错误的屏幕类型(错误的屏幕类型:屏幕定义不正确或使用不正确) ZPRG1(带有一个字段的选择屏幕1000测试): ZPRG2: REPORT zprg2. CALL SCREEN 100. MODULE pai INPUT. SET SCREEN 0. " close screen (all the time) ENDMOD

我需要将给定程序的选择屏幕(
ZPRG1
)包含到另一个程序的(
ZPRG2
)子屏幕(
100
)中

当我运行下面的程序
ZPRG2
时,在显示任何屏幕之前,出现运行时错误
DYNP\u错误的屏幕类型
(错误的屏幕类型:屏幕定义不正确或使用不正确)

ZPRG1(带有一个字段的选择屏幕1000
测试
):

ZPRG2

REPORT zprg2.
CALL SCREEN 100.
MODULE pai INPUT.
  SET SCREEN 0. " close screen (all the time)
ENDMODULE.
屏幕100:(ZPRG2的) 屏幕布局定义了子屏幕区域
子区域
,以及任意数量的元素,流程逻辑如下:

PROCESS BEFORE OUTPUT.
  CALL SUBSCREEN subarea INCLUDING 'ZPRG1' '1000'.
PROCESS AFTER INPUT.
  CALL SUBSCREEN subarea.
  MODULE pai.

如何防止运行时错误?

在dynpro技术中,要将屏幕“a”包含在屏幕“B”中,屏幕“a”必须定义为子屏幕,屏幕“B”必须定义“子屏幕区域”以包含屏幕“a”。屏幕“B”的开头必须包含语句,该语句指静态或通过全局变量包含的子屏幕编号

与普通屏幕一样,选择屏幕也可以定义为子屏幕,方法是将其定义为“独立选择屏幕”(将其元素包装在ABAP语句和
选择屏幕结束和
选择屏幕结束块
),并定义另一个包含此块的选择屏幕(ABAP语句) 下面是案例2的两个示例

示例1,带有默认选择屏幕(1000 cf脚注)

  • 之前:
  • 之后:
具有独立选择屏幕的示例2(1002,包括使用
调用子屏幕子区域,包括“ZPRG1”“1002”。

  • 之前:
  • 之后:
脚注:


(1) 选择屏幕参数未放置在屏幕开始的
选择屏幕中。。。屏幕结束…
是“默认选择屏幕”(
1000
)的隐式部分。请注意,使用屏幕1000的
SELECTION-SCREEN开头…
会导致语法错误。

选择屏幕的工作原理与任何其他屏幕相同。您的问题是“如何将选择屏幕定义为子屏幕”,还是“如何将子屏幕包含到子屏幕区域”或这两个问题?嗨,桑德拉,请让我知道如何将选择屏幕定义为子屏幕?我已重新编写了该问题,以使其符合更多堆栈溢出原则(尤其是添加一个)。请确认它是否适合您的问题,或编辑它。你好,桑德拉,这个问题符合我的要求。我收到了相同的运行时错误:(
PROCESS BEFORE OUTPUT.
  CALL SUBSCREEN subarea INCLUDING 'ZPRG1' '1000'.
PROCESS AFTER INPUT.
  CALL SUBSCREEN subarea.
  MODULE pai.
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
    PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1001.
REPORT zprg1.

PARAMETERS test AS CHECKBOX. " screen 1000 cf footnote
REPORT zprg1.

SELECTION-SCREEN BEGIN OF BLOCK b1000.
    PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1000.

SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
    SELECTION-SCREEN INCLUDE BLOCKS b1000.
SELECTION-SCREEN END OF SCREEN 1002.
REPORT zprg1.

SELECTION-SCREEN BEGIN OF SCREEN 1002.
    PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1002.
REPORT zprg1.

SELECTION-SCREEN BEGIN OF SCREEN 1002.
SELECTION-SCREEN BEGIN OF BLOCK b1002.
    PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1002.
SELECTION-SCREEN END OF SCREEN 1002.

SELECTION-SCREEN BEGIN OF SCREEN 1003 AS SUBSCREEN.
    SELECTION-SCREEN INCLUDE BLOCKS b1002.
SELECTION-SCREEN END OF SCREEN 1003.