如何获取abap中内表的行数?
如何获取内表的行数? 我想我可以循环播放它。 但必须有一个更明智的方法。
我不知道这是否有什么不同,但代码应该在 4.6c 版本上运行。
How do I get the row count of an internal table? I guess that I can loop on it. But there must be a saner way.
I don't know if it makes a difference but the code should run on 4.6c version.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
还有一个用于此任务的内置函数:
就像 IronGoofy 描述的“纯”ABAP 语法一样,该函数“lines( )”将表itab_name 的行数写入变量。
There is also a built-in function for this task:
Just like the "pure" ABAP syntax described by IronGoofy, the function "lines( )" writes the number of lines of table itab_name into the variable.
您可以使用以下函数:
调用后,变量包含内表的行数。
You can use the following function:
After the call, variable contains the number of rows of the internal table .
除了推荐的之外,
还有系统变量
SY-TFILL
。来自文档:
示例脚本:
结果:
请注意第二个条目的值 0:
SY-TFILL
不会在每个步骤中更新,仅在第一个循环之后更新。我建议仅使用 SY-TFILL,如果您在 READ 后直接需要它(1)...如果在 READ 和使用 SY 之间还有其他命令-TFILL,总是存在系统变量改变的危险。
(1) 或描述表。
Beside the recommended
there is also the system variable
SY-TFILL
.From documentation:
Example script:
The result:
Please get attention of the value 0 for the 2nd entry:
SY-TFILL
is not updated with each step, only after the first loop.I recommend the usage SY-TFILL only, if you need it direct after the
READ
(1)... If there are other commands between theREAD
and the usage of SY-TFILL, there is always the danger of a change of the system variable.(1) or describe table.
参考文献:
http://www.sapnuts.com/courses/core -abap/internal-table-work-area.html
Refreance:
http://www.sapnuts.com/courses/core-abap/internal-table-work-area.html
功能模块 EM_GET_NUMBER_OF_ENTRIES 还将提供行计数。 它需要 1 个参数 - 表名称。
The functional module EM_GET_NUMBER_OF_ENTRIES will also provide the row count. It takes 1 parameter - the table name.
您还可以使用 OPEN Sql 使用 COUNT 分组子句查找行数,并且还有系统字段 SY-LINCT 来计算表的行数 (ROWS)。
you can also use OPEN Sql to find the number of rows using the COUNT Grouping clause and also there is system field SY-LINCT to count the lines(ROWS) of your table.
如果我正确理解你的问题,你想知道内部表的条件循环期间的行号。
如果您使用内部表,则可以使用系统变量 sy-tabix。 如果您需要更多信息,请参阅 ABAP 文档(尤其是有关 内部表处理)。
例子:
if I understand your question correctly, you want to know the row number during a conditional loop over an internal table.
You can use the system variable sy-tabix if you work with internal tables. Please refer to the ABAP documentation if you need more information (especially the chapter on internal table processing).
Example:
答案将是
3。 (vcnt = 3)。
The answer will be
3. (vcnt = 3).
我认为没有 SAP 参数可以实现这种结果。 尽管下面的代码可以实现。
I don't think there is a SAP parameter for that kind of result. Though the code below will deliver.