选择开始触发

Start of selection triggered

我理解 START-OF-SELECTION 是在用户执行程序时触发的(在选择屏幕之后),但仍然缺少一些东西。 例子: 如果我有代码:

gv_var = 2.
INITIALIZATION.
gv_var = 1.

初始化代码会先执行,但是如果我有:

gv_var = 2.
START-OF-SELECTION.
gv_var = 1.

Start-of-selection不会是用户执行后最先执行的。 所以我的问题是:如果 START-OF-SELECTION 不是选择屏幕后执行的第一件事,那么它到底有什么意义? 难道只是为了让程序更易读吗?

您可能想刷新您对 Event Blocks in Executable Programs 的了解。 INITIALIZATIONSTART-OF-SELECTION早运行,甚至在选择画面显示之前。其他重要信息是

In an executable program, any non-declarative statements that occur between the REPORT or PROGRAM statement and the first processing block are also processed in the START-OF-SELECTION block.

(描述 here