第六章在屏幕中使 用表格.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章在屏幕中使用表格
概览
ABAP/4 提供了两种机理以便在屏幕中显示和使用表格数据。这两种机理
分别为“表格控制”和“步循环”。表格控制和步循环均为屏幕表格,您可
以在屏幕制作器中将此类屏幕表格添加到屏幕里。例如,下面的屏幕在底
部就含有表格控制。
内容
简介 (1)
使用LOOP 语句 (3)
在屏幕表格中直接循环 (3)
在内表中循环 (5)
使用表格控制 (8)
在ABAP/4 中声明表格控制 (8)
设置表格控制属性 (9)
示例事务:表格控制 (10)
使用步循环 (13)
本章讲述如何编制允许您使用屏幕表格的屏幕流逻辑和ABAP/4 代码。有
关使用屏幕表格的信息,参见:
简介(页1)
使用LOOP 语句(页3)
使用表格控制(页7)
使用步循环(页12)
示例事务:表格控制(页9)
简介
本节讲述如何在屏幕中使用表格显示,以便用户很快就能大略了解其概
况。
要想获取此处所概列的原理示例,请参阅事务TZ60 和TZ61,它们分别描
述了表格控制和步循环的使用。(TZ60 和TZ61 是同系统一起发布的开发
级别SDWA 中的样本事务。)
表格控制和步循环
表格控制和步循环是用于屏幕表格显示的对象,在屏幕制作器中用户可将
其添加到屏幕。从编程的角度来看,表格控制和步循环几乎完全一样。表
格控制只是增强了的步循环,此步循环可以使用桌面应用程序中表格工具的“Look”和“Feel”来显示数据。使用表格控制,用户可以:
沿着表格水平和竖直地滚动
重新调整某一栏的宽度
在字段内滚动(当字段内容比该字段宽时)
选择表格的行数或列数
重新规定栏的顺序
保存当前的显示设置以备后用
表格控制还提供使表格易于查看和使用的专用格式化功能(有些是自动的,有些是可选的)。例如:
当用户调整窗口时,自动进行表格调整(水平或竖直)
行与行之间和列与列之间的分隔线(水平和竖直)
所有列的列表头字段。
步循环的一个特点是它们的表行能够在屏幕上跨越多行。相反,表格控制中的行总是单行,但可以很长。(表格控制的行能够滚动。)
通常,表格控制所提供的许多特征由系统的SAPGUI 前端操纵,因此,不必在ABAP/4 事务中编制任何特征(除了竖直滚动)。
屏幕表格处理
屏幕表格是屏幕中重复的系列表格行。每一条目都包含一个或多个字段,并且所有的行都具有相同的字段结构。屏幕表格要么是表格控制要么是步循环。显示飞行数据的表格控制如下所示:
屏幕表格和LOOP 动态语句
如同在内表中循环来处理内表,用户也可以在屏幕表格中循环以处理屏幕表格。。为此,就必须在屏幕流逻辑中加入一条LOOP...ENDLOOP 动态语句。该循环通常要调用一次ABAP/4 模块,但也允许使用其它流逻辑命令。系统每次通过循环时就运行此模块。
LOOP 动态语句有多种格式。两个最重要的格式的功能如下:
只在屏幕表格中循环
同时在屏幕表格和内表中循环
屏幕表格和程序字段
可以将屏幕表格字段声明为数据库字段、内表字段、结构字段或其它程序字段。屏幕表格字段有时出现在屏幕字段列表中,有时出现在程序中。因此,屏幕表格中所有的行在程序中共用同一个字段集(类似“表头区域”)。在流逻辑的LOOP 过程中,系统将屏幕表格行的所有字段复制到相关的程序字段中或从中复制回来。
LOOP 语句的任务
LOOP 语句负责读取往返传递于屏幕和ABAP/4 程序之间的屏幕表格值。因此必须同时在PBO 和PAI 事件中为屏幕中的每一个表格编制LOOP 语句。至少在此应有一个空LOOP...ENDLOOP 语句。
LOOP 语句还用于驱动滚动。在PBO 事件中,LOOP 使用一个参数告诉从表格的何处开始循环。该参数因此导致下一个屏幕表格显示的更新(对于表格控制,该参数是表格控制结构中的TOP_LINE 字段;对于步循环,该参数为用于LOOP 语句的CURSOR 参数。)。ABAP/4 程序和系统都可以设置该参数。
注意,屏幕表格中所显示的行数可以改变。当屏幕表格可调整并且用户更改窗口的高度时就会出现这种情况。在这种情况下,PAI 中的下一个LOOP 就更改PAI 中传到ABAP/4 程序的表格行数。
使用LOOP 语句
LOOP...ENDLOOP 动态命令可在流逻辑中执行循环操作。可以使用该语句在表格控制和步循环中进行循环。在LOOP 和ENDLOOP 之间,可以使用FIELD、MODULE、SELECT、VALUES 和CHAIN 动态关键字。最为常见的是使用MODULE 语句来调用ABAP/4 模块。
必须同时在PBO 和PAI 事件中为屏幕的每个表格编制LOOP 语句。由于LOOP 语句导致在ABAP/4 程序和屏幕字段之间来回复制屏幕字段。因此,此处至少必须有一个空LOOP...ENDLOOP 语句。
LOOP 语句有两种重要的格式:
LOOP。
该语句在屏幕表格行中循环,同时在每个块和程序的对应
ABAP/4 字段之间往复传送数据。可以在ABAP/4 中将屏幕表
格字段声明为任何类型(数据库表格、结构或单个字段),
内表字段除外。
对于步循环,如果正在执行本身的滚动(例如,使用F21-
F24),则必须使用该语句。
LOOP AT
该语句可同时在内表和屏幕表格行中循环。常常将此屏幕表
格字段声明为内表字段,但不是非得如此。
对于该LOOP,步循环显示都带有滚动条。该滚动由系统自
动操纵。
有关不同LOOP 语句的详细信息,参见:
在屏幕表格中直接循环(页3)
在内表中循环(页4)
在屏幕表格中直接循环
使用LOOP 语句的简单格式