ALV家族简介

这里主要简单介绍目前存在的ALV工具以及将来要扩展的功能,以便对想要使用的ABAPer有所帮助。

使用正确的ALV工具

如果准备使用ALV,首先要确定使用哪个ALV工具合适。首先最好使用ALV FULLSCREEN而不是ALV GRID。因为前者按照系统需求可以切换为ALV LIST,这种切换是系统级别的与应用无关。

下面是几种ALV工具:

l         ALV LIST在自己的屏幕上显示简单的ALV列表

l         ALV FULL SCREEN: 是基于控制的ALV GRIDg工具,在自己的屏幕上显示简单的列表

l         ALV GRIDCL_GUI_ALV_GRID,基于控件的ALV,定位在屏幕容器上的简单列表

l         ALV TREE: CL_GUI_ALV_TREE,基于控件的ALV,定位在屏幕容器上的树形结构。

一般情况下ALV FULL SCREEALV GRID,由于他们是基于控件的,所以他们在界面上要更优于ALV LISTALVHierSeq

 功能比较

由于对着四种ALV工具来说功能基本是一样的,主要的区别又一下几点:

l         多于一个表的数据:如果你要显示不止一个表的数据,你需要在屏幕上定位不同的ALV GRID。不过他们是建立在不同实例基础之上的。

l         字段的大小:基于列表的alv list只能显示不多于90个字段的表的数据,基于控件的ALV GRIDALV FULLSCREEN每个格只能显示不多于128个字符。

l         格合并:基于控件的alv gridalv fullscreen,排序的列相同的值就会被合并。这对于基于列表的alv list是不可能的。

l         多行显示:对于基于列表的alv list你可以用屏幕上三行显示表中的一行数据。这对于基于控件的alv gridalv fullscreen是不可能的。

l         交互性:ALV不能感知数据表之外的任何信息。与alv的交互,对于alv grid通过控件事件和方法调用实现,而对于基于列表的alv则通过call back来实现。

l         前导空格:前导空格在alv gridalv fullscreen中会自动消失,

使用ALV

l         数据:ALV并不清楚应用程序将会发生什么,你只能够在与alv显示的数据一致的表上工作,数据表就象是alv的指针。那么在alv grid的处理中,必须保证数据表是可见的,尤其是对于本地变量数据表。

l         FIELDCATALOG:fieldcatalog用来描述数据表本身,即你不能通过设置fieldcatalog来改变字段内在属性。

l         PRINT基于控件的alv gridalv fullscreen不能被直接打印。也就是说只有转换成alv list才能被打印。ALV GRID不能在他所在的屏幕上打印,而只能在其独立的屏幕上打印。

l         列头:列头在alv中有着重要的作用,包括排序,汇总等,没有列头也就没有了这些功能。列头只有一行,即不存在多行的列头。

l         汇总:ALV有一些列的汇总功能,如求和,最大值,计数等等。但是不支持根应用程序相关的功能。

l         CALLBACKS: 可以用来写write语句。但是尽量避免使用。

l         Batch processing:

grid切换到list

在大量数据的情况下切换到grid可能是必要的。如果使用已有的alv工具,使用alv fullscreen会减少工作量。

ALV TREE

ALV TREE也是基于控件的这样的它与GRID便有相似之处。不过也有一些特性需要考虑。以下适用于ALV TREEFULLSCREEN TREE

l         字段的大小:每格最多支持128个字符

l         格合并:不支持格合并

l         Batch:不支持batch inputCATT

l         Filter:没有过滤功能

l         Download:不能下载到其他系统。

其他信息

Alv的帮助文档:Controls-ALV GRID CONTROL

Alv example BCALV_* especial BCALV_TEST_*

重要信息

有些情况并不适合alv,在从list转换到alv时应考虑到以下几点:

l         大量数据:alv并不适合做大量数据的处理。他只是一种显示工具并把所显示的数据保留在内存中。更具体的说alv可以显示大容量数据,实际中可以到10000个数据集,不过在大量数据处理时一定要考虑资源的消耗。

Alv tree有更严格的限制,它只能显示1000个节点。

l         DEEP STRUCTUREALV TREE只支持flat table。所以你需要把deep table转换为flat table

l         Page oriented output: not possible

l         Batch input: batch input not possible

l         列之间的关系:除货币和数量字段外。ALV不支持建立列之间的关系。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值