以下是统计内表行数常用的三种方法,如下:
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.
1990年1月15日 2007年1月14日 2007年1月15日 2007年1月16日 2007年1月17日 2007年1月18日 2007年1月19日 2007年1月20日 2007年1月22日 2007年1月23日 2007年1月24日 2007年1月25日 2007年1月26日 2007年1月27日 2007年1月29日 2007年1月30日 2007年1月31日 2007年2月1日 2007年2月2日 2007年2月3日 2007年3月13日 2007年5月15日 2007年5月16日 2007年6月2日