以下是统计内表行数常用的三种方法,如下:
1 . LOOP AT it_itab .
g_lines2 = g_lines2 + 1.
ENDLOOP.
该方法是通过循环内部表自己累加行数。
2 . DESCRIBE TABLE it_itab LINES g_lines1 . 该语句通过获得内部表的属性,将内部表行数赋值给 g_lines1 , g_lines1 为 I 型变量。
3 . g_lines3 = lines( it_itab ) . 使用函数 来计算内部表行数。
以上三种方法中,第一种方法不推荐使用,推荐使用后两种方法。
相关代码如下:
REPORT zmauricetest.
TABLES vbak.
DATA: g_lines1 TYPE i,
g_lines2 TYPE i VALUE 0,
g_lines3 TYPE i,
g_date TYPE d VALUE '19970121',
g_tabix LIKE sy-tabix.
DATA it_tab LIKE vbak OCCURS 0 WITH HEADER LINE.
SELECT * FROM vbak INTO TABLE it_tab.
LOOP AT it_tab.
g_tabix = sy-tabix.
IF it_tab-audat <> g_date.
DELETE it_tab INDEX g_tabix.
CONTINUE.
ENDIF.
g_lines2 = g_lines2 + 1.
WRITE:/ it_tab-vbeln,it_tab-audat.
ENDLOOP.
DESCRIBE TABLE it_tab LINES g_lines1.
g_lines3 = LINES( it_tab ).
WRITE :/ g_lines1,g_lines2,g_lines3.