SAP ABAP 表控制与示例-07

SAP ABAP 表控制与示例-07

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

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

使用表控件,用户可以:

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

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

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

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

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

示例(事务码:TZ60)

在这里插入图片描述

语法

若要处理 ABAP 程序中的表控件,必须使用以下语句在程序的声明部分为每个表控件声明一个控件:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

其中ctrl是 ABAP 程序中屏幕上的表控件的名称。该控件允许 ABAP 程序读取表控件的属性并影响控件。此处,scr 是加载表的初始值的屏幕编号。

可以通过以下方式设置表控件的游标位置:

在 PBO 中,您可以在表控件的特定行的特定字段上设置光标。

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

使用可选的加法 OFFSET,可以在字段中输入光标的偏移量,如设置光标位置下所述。

在PAI中,您可以读取当前光标位置。

GET CURSOR FIELD <f> LINE <lin> ...

除了“找出游标位置”下提供的信息外,字段 lin还包含有关游标当前位于表控件的哪一行的信息。您还可以使用

GET CURSOR LINE <lin>.

以确定表控件的行。SY-SUBRC 允许您检查游标是否放置在表控件的行中。

要获取内部表的相应行:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

系统变量 stepl – 在循环中包含当前表行索引 …尾环。Loopc – 包含表中可见的行数

创建表控件

1.将表格控制元素添加到屏幕

2.为表控件命名。在 ABAP 程序中,声明具有相同结构( 控件 tcl类型 TABLEVIEW USING SCREEN scrn

3.To 创建字段,请转到 Dict./Program 字段功能。

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

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

在PBO中,您应该有声明

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

在PAI中,你应该有。

LOOP at <itab>.

ENDLOOP.

在循环中,数据传输发生在屏幕和内部表之间。填充内部表时,请使用 DESCRIBE TABLE itabcntrl_name行来存储控件中的总行数。FIELD 语句可用于控制数据传输发生的时间

若要更改单个单元格的属性,请暂时更改 PBO 中的 SCREEN 表。您可以更改由 CONTROLS 语句创建的结构的属性

<cntrl>-fixed_cols etc are the attributes of the control

<cntrl>-cols-index etc are the attributes of the columns.

<cntrl>-cols-screen-invisible etc are the screen attributes of each column.

参考:https://www.guru99.com/abap-table-controls.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值