我们可以在END-OF-SELECTION
和初始化事件中编写选择查询,因此START-OF-SELECTION
的需求是什么。还有为什么我们不应该在INITIALIZATION
和END-OF-SELECTION
中写select?
答案 0 :(得分:1)
INITIALIZATION
事件块在LOAD-OF-PROGRAM
事件之后和 SELECTION SCREEN 处理块之前触发。
因此,如果定义了标准选择屏幕,则在执行引发INITIALIZATION
事件的执行后将再次调用它。
而且,如果您在SELECT
块中编写INITIALIZATION
语句,则它会在执行后再次加载数据,这是没有用的。
END-OF-SELECTION
主要与可执行程序中的逻辑数据库相关联,如果逻辑数据库已完全完成其工作,
它会触发END-OF-SELECTION
事件,否则会在START-OF-SELECTION
之后立即触发。
它告诉服务器所有数据库读取已完成,并且不再进行读取并释放数据库锁定。
这就是为什么它不被认为是好的做法,它主要用于显示输出。
您可以检查文档: Report Events
答案 1 :(得分:0)
如上所述,初始化是在程序加载后且显示屏幕之前触发的。 该事件必须用于准备要运行的程序。 当要求运行程序(从“选择屏幕”中)时,将触发“开始选择”。
因此,如果您的程序没有选择屏幕,或者您没有使用先前的事件,则可以跳过START-OF-SELECTION,但是,如果您使用的是单个“ before”事件(INIT ,在“选择” ...),您必须告诉编译器(或其名称)程序真正开始的位置。
无论如何,我认为使用它是一个好习惯,因为它为您的代码增加了“准备”:需要使用它的人将更容易知道流程的开始位置。