Abap 在正常的报表编程中,开始选择需要什么?

Abap 在正常的报表编程中,开始选择需要什么?,abap,Abap,我们可以在END-OF-SELECTION和初始化事件中编写select查询,那么START-OF-SELECTION需要什么呢。还有为什么我们不应该在初始化和选择结束?初始化事件块触发器在程序加载事件之后和选择屏幕处理块之前写入选择。 所以,如果您定义了标准选择屏幕,它将在执行后再次被调用,从而引发初始化事件。 如果您在初始化中写入选择语句,则会阻止它在执行后再次加载数据,这是没有用的 选择结束主要与可执行程序中的逻辑数据库关联,如果逻辑数据库已完全完成其工作, 它触发选择结束事件,否则在选择

我们可以在
END-OF-SELECTION
和初始化事件中编写select查询,那么
START-OF-SELECTION
需要什么呢。还有为什么我们不应该在
初始化
选择结束

初始化
事件块触发器在
程序加载
事件之后和选择屏幕处理块之前写入选择。 所以,如果您定义了标准选择屏幕,它将在执行后再次被调用,从而引发
初始化
事件。 如果您在
初始化
中写入
选择
语句,则会阻止它在执行后再次加载数据,这是没有用的

选择结束
主要与可执行程序中的逻辑数据库关联,如果逻辑数据库已完全完成其工作, 它触发
选择结束
事件,否则在
选择开始
之后直接触发。 它告诉服务器所有的数据库读取都已完成,不再进行进一步的读取,并释放对数据库的锁定。 这就是为什么它不被认为是好的实践,它主要用于显示输出

您可以查看文档:


如前所述,在加载程序时,在显示屏幕之前,会触发初始化。 必须使用该事件来准备要运行的程序。 当程序被要求运行(从选择屏幕)时,启动选择

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


无论如何,我相信使用它是一个很好的实践,因为它为您的代码添加了“准备就绪”:需要使用它的人将更容易知道流程从何处开始。

请不要使用SMS样式,写简单的文字:SOS->开始选择;EOS->选择结束。而且你的问题太宽泛了;首先阅读官方语言文档,然后问更多的问题,我喜欢。