ABAP ALV的理论知识

ALV

ALV是ABAP List Viewer 的缩写,是实际业务中查询数据或修改数据时经常使用的程序。

ALV的主要功能

  1. 过滤设置
  2. 变更列宽
  3. 变更布局
  4. ABC分析
  5. 下载excel及word文档的保存

ALV的类型

  1. Function ALV
  2. GRID ALV
  3. SALV

其中Function ALV 和Grid ALV内部含有相似的结构和功能,而SALV是之后出现的。他们出现的技术顺序依次为Function ALV > Grid ALV > SALV。

ALV功能的SAL包(SALV也称为New ALV)。SALV可以使用函数生成ALV一样不适用画面以全屏模式输出,也可以利用容器在画面上显示ALV。利用Grid的ALV不能以Batch Job登录后再后台运行,但SALV可正常运行。SALV与现有方法相比为开发提供了便利,集合了详细功能以及接口方式提供,但SALV的唯一缺点就是不支持编辑模式。

GRID ALV容器接口

ALV程序中使用的接口由参照cl_gui_alv_grid类的变量定义。用下列语句定义对像引用变量。如:

data:gs_grid type ret to cl_gui_alv_grid.

用create obejct语句调用类的构造函数并生成ALV GRID接口。
GRID ALV容器中拥有画面显示的所有信息,调用类方法可以重新定义或修改ALV画面属性。

GRID ALV容器的结构

要利用ALV显示数据,至少要经过两个步骤:

  1. 定义内表:定义显示在画面上的内表。在ALV上存储数据信息的内表叫输出表(Output Table)。
  2. 数据结构(字段目录):定义ALV GRID容器显示在画面上的结构。即拥有ALV GRID容器中心的数据结构、技术属性、描述等信息。一般利用ABAP数据字典的表,结构体或直接使用内表结构。

只要启动ALV GRID,则传递给ALV GRID容器中的输出表一直有效。输出表可以利用ABAP数据字典对象,但也可以只用字段目录创建ALV结构。字段目录(Field Catalog )是存储要显示在ALV画面上的字段信息的表。

SAP 容器

创建SAP容器及容器对象
若要显示ALV画面,必须要有连接屏幕与ALV GRID控件的SAP 容器控件。即SAP容器为了充当连接器,将SAP控件包含在容器中。SAP容器类型有SAP Tree、SAP Picture、SAP Textedit、SAP Spkitter控件等。SAP容器是包含其他控件的控件,也称为父控件(ParentControl)。SAP容器的位置如下:
在这里插入图片描述
SAP容器的类型

容器类型功能
SAP自定义控件SAP自定义控件 在使用屏幕编辑器的一般画面上定义领域类:CL_GUI_CUSTOM_CONTAINER
SAP对话框控件对话框或者在全画面上以对话框的形式显示类:CL_GUI_DIALOGBOX_CONTAINER
SAP Docking控件在画面领域的各边角可以调节其大小。是在ALV程序中经常与自定义控件一起使用的形态类:CL_GUI_DOCKING_CONTAINER
SAP拆分控件拆分容器时使用类:CL_GUI_SPLITTER_CONTAINER
SAP细拆分控件和Splitter控件功能相同,可以再拆分已被拆分的容器类:CL_GUI_EASY_SPLITTER_CONTAINER

创建引用变量
SAP自定义控件参数属性

容器属性功能
parent指定显示控件实例的上级控件
container_name指定在屏幕编辑中指定的自定义控件(即指定屏幕自定义控件名字)
style指定控件的外部样式
dynnr要追加到控件上的屏幕编号
repid要追加到控件上的程序ID
lifetime设置控件的生命周期(根据 LEAVE TRANSACTOIN,CALL TRANSACTION 等命令设置成非激活状态)
no_autodef_progid_gynnr自动指定程序ID和屏幕编号(设置成X则是OFF)

调用屏幕
其中屏幕1000到1100的屏幕已经被系统占用,因此自定义屏幕名不能在1000~1100之间。

call screen 100.

创建ALV GRID控件

data: gs_grid type ref to cl_gui_aiv_grid.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值