表控件和步骤循环是添加到屏幕刷中的屏幕的屏幕表显示的对象。
从编程的角度来看,表控件和步进循环几乎完全相同。表控件只是改进的步骤循环,用于显示具有与桌面应用程序中的表关联的外观的数据。
表控件还提供特殊的格式设置功能(一些是自动的,一些是可选的),使表更易于查看和使用。工作台控制提供 –
步骤循环的一个功能是其表行可以跨越屏幕上的多行。另一方面,表控件的一行必须始终包含在一行中(尽管可以进行滚动)。
通常,表控件提供的许多功能都由系统的 SAPgui 前端在本地处理,因此您无需自行编程。唯一值得注意的例外是垂直滚动。
示例(事务码:TZ60)
语法
若要处理 ABAP 程序中的表控件,必须使用以下语句在程序的声明部分为每个表控件声明一个控件:
CONTROLS TYPE TABLEVIEW USING SCREEN
其中ctrl
是 ABAP 程序中屏幕上的表控件的名称。该控件允许 ABAP 程序读取表控件的属性并影响控件。此处,scr
是加载表的初始值的屏幕编号。
可以通过以下方式设置表控件的游标位置:
在 PBO 中,您可以在表控件的特定行的特定字段上设置光标。
SET CURSOR FIELD LINE [OFFSET ]
使用可选的加法 OFFSET,可以在字段中输入光标的偏移量,如设置光标位置下所述。
在PAI中,您可以读取当前光标位置。
GET CURSOR FIELD LINE ...
除了“找出游标位置”下提供的信息外,字段 lin
还包含有关游标当前位于表控件的哪一行的信息。您还可以使用
GET CURSOR LINE .
以确定表控件的行。SY-SUBRC 允许您检查游标是否放置在表控件的行中。
要获取内部表的相应行:
GET CURSOR line .
ind = -top_line + - 1.
Read table index ind.
系统变量 stepl – 在循环中包含当前表行索引 …尾环。Loopc – 包含表中可见的行数
1.将表格控制元素添加到屏幕
2.为表控件命名。在 ABAP 程序中,声明具有相同结构( 控件 tcl
类型 TABLEVIEW USING SCREEN scrn
)
3.To 创建字段,请转到 Dict./Program 字段功能。
如果需要选择列,请选中属性中的相应复选框并为其命名。在 ABAP 程序中创建字段。
在PBO中,您应该有声明
LOOP at USING CONTROL .
ENDLOOP.
在PAI中,你应该有。
LOOP at .
ENDLOOP.
在循环中,数据传输发生在屏幕和内部表之间。填充内部表时,请使用 DESCRIBE TABLE itab
行cntrl_name
行来存储控件中的总行数。FIELD 语句可用于控制数据传输发生的时间
若要更改单个单元格的属性,请暂时更改 PBO 中的 SCREEN 表。您可以更改由 CONTROLS 语句创建的结构的属性
-fixed_cols etc are the attributes of the control
-cols-index etc are the attributes of the columns.
-cols-screen-invisible etc are the screen attributes of each column.
参考:https://www.guru99.com/abap-table-controls.html