ALV报表是我们再SAP经常需要用到的一种报表格式,除此之外还有list报表以及report的报表,他们之间可以相互的替换,但是ALV自带的函数会更多一些。
通常我们在使用ALV报表的时候有三种方式,分别是funtion 通常是指:REUSE_ALV_GRID_DISPLAY[ _LVC];然后OO ALV则会用到object:CL_GUI_ALV_GRID;OO SALV则会用到 CL_SALV_TABLE等一系列Object。
Function ALV:function一般有grid和list两种,grid以网格显示,list以表格显示,两者的工具栏有一点不同。
OO ALV:使用面向对象的方法创建的ALV,需要创建一个容器,然后将cl_gui_alv_grid分配给这个容器,它存在很多的事件,这些实现需要注册这些事件处理方法,但是ALV的布局参数不用依靠Object来设置,和function一样,还是依靠函数。
OO SALV:也是面向对象创建ALV的一种方式,但不提供编辑的功能,(当你需要编辑的时候,可以通过SALV适配器调用CL_GUI_ALV_GRID修改为编辑模式),一般情况下SALV是不需要创建容器的,但是ALV的布局也是需要通过Object老控制。
总结:需求非常简单,仅仅是作为报表使用的话可以使用function alv,需要触发动作但是ALV布局的设置不高的时候,而且不需要编辑的时候可以使用SALV,其他情况下尽量使用ALV,个人更偏爱使用OO ALV。(注:当download excel有特殊需求的时候,可以有限考虑SALV,在往期文章download excel中有介绍)。