38

内部テーブルの行数を取得するにはどうすればよいですか? 私はそれをループできると思います。しかし、もっと健全な方法があるはずです。

違いがあるかどうかはわかりませんが、コードは 4.6c バージョンで実行する必要があります。

4

9 に答える 9

93

このタスク用の組み込み関数もあります。

variable = lines( itab_name ).

IronGoofyで説明されている「純粋な」ABAP 構文と同様に、関数「lines( )」はテーブル itab_name の行数を変数に書き込みます。

于 2009-01-05T00:03:04.053 に答える
56

次の機能を使用できます。

 DESCRIBE TABLE <itab-Name> LINES <variable>

呼び出し後、変数には内部テーブルの行数が含まれます。

于 2008-12-26T22:34:51.533 に答える
3
  DATA : V_LINES TYPE I. "declare variable
  DESCRIBE TABLE <ITAB> LINES V_LINES. "get no of rows
  WRITE:/ V_LINES. "display no of rows

参考文献: http://www.sapnuts.com/courses/core-abap/internal-table-work-area.html

于 2014-02-06T05:42:07.247 に答える
-1

OPEN Sql を使用して、COUNT Grouping 句を使用して行数を見つけることもできます。また、システム フィールド SY-LINCT を使用して、テーブルの行 (ROWS) をカウントすることもできます。

于 2013-11-29T11:04:00.890 に答える
-2
data: vcnt(4).

clear vcnt.

LOOP at itab WHERE value = '1'.
  add 1 to vcnt.
ENDLOOP.

答えは3. (vcnt = 3).

于 2011-11-24T16:26:57.360 に答える
-2

あなたの質問を正しく理解できれば、内部テーブルの条件付きループ中の行番号を知りたいでしょう。内部テーブルを使用する場合は、システム変数 sy-tabix を使用できます。詳細情報が必要な場合は、ABAP 文書を参照してください (特に、内部テーブル処理に関する章)。

例:

LOOP AT itab INTO workarea
        WHERE tablefield = value.

     WRITE: 'This is row number ', sy-tabix.

ENDLOOP.
于 2009-03-07T10:05:45.390 に答える
-3

そのような結果のための SAP パラメータはないと思います。以下のコードは配信されますが。

LOOP AT intTab.

  AT END OF value.

    result = sy-tabix.

    write result.  

  ENDAT.

ENDLOOP.
于 2011-04-22T20:45:57.260 に答える