SAP ABAP 表控制与示例-07

SAP ABAP 表控制与示例-07

表控件和步骤循环是添加到屏幕刷中的屏幕的屏幕表显示的对象。

从编程的角度来看,表控件和步进循环几乎完全相同。表控件只是改进的步骤循环,用于显示具有与桌面应用程序中的表关联的外观的数据。

使用表控件,用户可以:

  • 垂直和水平滚动浏览表格
  • 调整列的宽度
  • 在字段中滚动(当字段内容比字段宽时)
  • 选择表行或列
  • 对列的顺序重新排序
  • 保存当前显示设置以供将来使用

表控件还提供特殊的格式设置功能(一些是自动的,一些是可选的),使表更易于查看和使用。工作台控制提供 –

  • 当用户调整窗口大小时自动调整表大小(垂直和水平)
  • 行之间和列之间的分隔线(垂直和水平)
  • 所有列的列标题字段

步骤循环的一个功能是其表行可以跨越屏幕上的多行。另一方面,表控件的一行必须始终包含在一行中(尽管可以进行滚动)。

通常,表控件提供的许多功能都由系统的 SAPgui 前端在本地处理,因此您无需自行编程。唯一值得注意的例外是垂直滚动

示例(事务码:TZ60)

SAP ABAP 表控制与示例-07_第1张图片

语法

若要处理 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 字段功能。

  • 输入所需字段的结构的名称。(如果您希望它从程序的字典中选取它,请单击相关的puhbutton)。
  • 在字段列表中选择所需的字段,然后选择“确定”。
  • 在表控制区域中单击

如果需要选择列,请选中属性中的相应复选框并为其命名。在 ABAP 程序中创建字段。

在PBO中,您应该有声明

LOOP at  USING CONTROL .

ENDLOOP.

在PAI中,你应该有。

LOOP at .

ENDLOOP.

在循环中,数据传输发生在屏幕和内部表之间。填充内部表时,请使用 DESCRIBE TABLE itabcntrl_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

你可能感兴趣的:(SAP,ABAP,编程教程,SAP,abap,表操作)