gpt4 book ai didi

abap - 为什么 inline-declared itab 没有在 AT SELECTION SCREEN OUTPUT 中初始化?

转载 作者:行者123 更新时间:2023-12-01 21:56:30 25 4
gpt4 key购买 nike

我有以下一段代码。

REPORT YYY.

TYPES: BEGIN OF t_test,
test TYPE c LENGTH 4,
END OF t_test,
tth_test TYPE HASHED TABLE OF t_test WITH UNIQUE KEY test.

DATA(g_tab_test) = VALUE tth_test( ( test = 'AAAA' ) ( test = 'BBBB' )
( test = 'CCCC' ) ( test = 'DDDD' ) ).

PARAMETERS:
p_x1 TYPE abap_bool,
p_x2 TYPE abap_bool,
p_x3 TYPE abap_bool.

CLASS lcl_main DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
main.
ENDCLASS.

CLASS lcl_main IMPLEMENTATION.
METHOD main.
ENDMETHOD.
ENDCLASS.

AT SELECTION-SCREEN OUTPUT.
LOOP AT screen.
MODIFY SCREEN.
ENDLOOP.
BREAK-POINT. "<-- why is the table g_tab_test not initialsed here yet?

AT SELECTION-SCREEN ON p_x1.
ASSERT 1 = 1.

尽管有定义,AT SELECTION-SCREEN OUTPUT 中中断点处的表是空的。为什么会这样,是否有记录在案的行为?

最佳答案

我相信这是一个记录在案的行为。

https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-US/abapstart-of-selection.htm

In an executable program, the following statements are assigned to an implicit START-OF-SELECTION event block, which is inserted by an explicit START-OF-SELECTION event block if one exists:

All statements that are not declaration and are listed before the first explicit processing block.

All functional statements in the program if it does not contain any explicit processing blocks,

代码是“悬而未决”的,不是在确切的事件下显式的,这意味着内部表的初始化将仅使用隐式 START-OF-SELECTION 运行。

代码段需要在INITIALIZATION下(或LOAD-OF-PROGRAM,具体取决于具体需要)

关于abap - 为什么 inline-declared itab 没有在 AT SELECTION SCREEN OUTPUT 中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56700870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com