sy-tabix和sy-index有什么区别。

2020-09-01 06:32发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP年长者,

请让我知道sy-index和sy-tabix有什么区别。

我阅读了SAP帮助,这使我感到困惑。 看起来两者在帮助下都是一样的。 请帮我。

谢谢

Anitha。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP年长者,

请让我知道sy-index和sy-tabix有什么区别。

我阅读了SAP帮助,这使我感到困惑。 看起来两者在帮助下都是一样的。 请帮我。

谢谢

Anitha。

付费偷看设置
发送
12条回答
愤怒的猪头君
1楼 · 2020-09-01 07:13.采纳回答

嗨,

在循环或选择查询中,我们使用SY-tabix。

对于读取语句,我们使用Sy-index。

示例:

从mara中选择*到表it_mara中,其中ersda = Sy-基准。

如果sy-subrc = 0。

write:"已创建的记录数",sy-tabix。

endif

在it_mara循环。

it_mara-MTART ='ZRET'。 "正在更改材质类型。

从it_mara索引SY-tabiX修改it_mara。

Endloop。

使用键(其中matnr ='1000')读取表it_​​mara。

如果sy-subrc = 0。

write:'在第sy-index行找到的材料。

endif。

Prabhudas

小灯塔
2楼-- · 2020-09-01 06:56

嗨anitha,

让我们顺其自然。

index:用于索引。 索引什么? 表的一行...因此,sy-index用于索引表的特定行。

tabix:其表的当前运行信息。 就像让我们在select sy-tabix中说的那样,返回记录数。 在循环中,它给出当前行号,在读取中,它给出正在读取的行的行号。

虽然索引和tabix使用的声音相似,但是它们之间存在基于应用程序的区别。

太Q了
3楼-- · 2020-09-01 07:04

HI,

这是SY_TABIX和SY_INDEX之间的区别的简要说明,并在多种条件下使用它们。

SY-TABIX

内部表的当前行。 SY-TABIX由以下语句设置,但仅适用于索引表。 该字段未设置或对于哈希表设置为0。

APPEND将SY-TABIX设置为表最后一行的索引,即它包含表中条目的总数。

COLLECT将SY-TABIX设置为表中现有或插入行的索引。 如果表的类型为HASHED TABLE,则SY-TABIX设置为0。

LOOP AT在每个循环激光开始时将SY-TABIX设置为当前行的索引。 在循环结束时,将SY-TABIX重置为进入循环之前的值。 如果表的类型为HASHED TABLE,则将其设置为0。

READ TABLE将SY-TABIX设置为读取的表行的索引。 如果使用二进制搜索,但系统找不到行,则SY-TABIX包含行总数,或多于行总数。 如果线性搜索无法返回条目,则未定义SY-INDEX。

SEARCH FOR将SY-TABIX设置为在其中找到搜索字符串的表行的索引。

SY-INDEX

在DO或WHILE循环中,SY-INDEX包含循环遍数,包括当前遍数。

希望这会有所帮助。

谢谢

Pavan。

愤怒的猪头君
4楼-- · 2020-09-01 07:16

感谢Ramchander和其他人的回复。 我正在关闭此线程并给出分数。

黑丝骑士
5楼-- · 2020-09-01 07:17

嗨,

sy-tabix =内部表索引

由处理内部表的命令设置( 例如READ,LOOP)

它包含标准表或排序表访问的最后一行的nr/index。 对于散列表,将其设置为0

,因为散列表不是索引表,因此它们使用散列管理。

sy-index =循环索引。

< p>由DO和WHILE循环设置。

亲切的问候,

Hermann

Tong__Ming
6楼-- · 2020-09-01 07:12

嗨,

两者均仅用于索引值。 但是,当您循环内部表时,将使用Sy-tabix;在执行Do/while循环时,可以使用Sy-index。

-Ram

Baoming ROSE
7楼-- · 2020-09-01 07:10

嗨,

此示例将帮助您理解差异。

Sy-tabix:内部表中没有记录

Sy-index:当前在循环... endloop中执行的记录的索引号。

例如:itab(内部表)包含值1到5。

将itab循环到wa_itab。

写:wa_itab-field1。

endloop。

假设循环执行了2次,则sy-index值将为b 2。

此处Sy-tabix值将为b 5。

谢谢

Ramakrishna。

一周热门 更多>