在正常的报告编程中,开始选择的需求是什么?

时间:2018-06-26 05:49:28

标签: sap abap

我们可以在END-OF-SELECTION和初始化事件中编写选择查询,因此START-OF-SELECTION的需求是什么。还有为什么我们不应该在INITIALIZATIONEND-OF-SELECTION中写select?

2 个答案:

答案 0 :(得分:1)

INITIALIZATION 事件块在LOAD-OF-PROGRAM事件之后和 SELECTION SCREEN 处理块之前触发。 因此,如果定义了标准选择屏幕,则在执行引发INITIALIZATION事件的执行后将再次调用它。 而且,如果您在SELECT块中编写INITIALIZATION语句,则它会在执行后再次加载数据,这是没有用的。

END-OF-SELECTION 主要与可执行程序中的逻辑数据库相关联,如果逻辑数据库已完全完成其工作, 它会触发END-OF-SELECTION事件,否则会在START-OF-SELECTION之后立即触发。 它告诉服务器所有数据库读取已完成,并且不再进行读取并释放数据库锁定。 这就是为什么它不被认为是好的做法,它主要用于显示输出。

您可以检查文档: Report Events

Event Flow Process

Logical Databases - Associated with Executable Programs

答案 1 :(得分:0)

如上所述,初始化是在程序加载后且显示屏幕之前触发的。 该事件必须用于准备要运行的程序。 当要求运行程序(从“选择屏幕”中)时,将触发“开始选择”。

因此,如果您的程序没有选择屏幕,或者您没有使用先前的事件,则可以跳过START-OF-SELECTION,但是,如果您使用的是单个“ before”事件(INIT ,在“选择” ...),您必须告诉编译器(或其名称)程序真正开始的位置。

无论如何,我认为使用它是一个好习惯,因为它为您的代码增加了“准备”:需要使用它的人将更容易知道流程的开始位置。