SAP ABAP DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].語法使用
阿新 • • 發佈:2021-01-18
記錄一下,DESCRIBE TABLE 的用法。
根據F1幫助檢視共有三種用法: KIND,LINES,OCCURS.
此語句確定內表itab的某些屬性,並將它們分配給指定的目標欄位。
1.首先來看一下KIND的使用,
確定內部表itab的表類別。返回值是一個類似ID的單字元。在宣告中,將宣告一個長度為1的tye c變數。
對於標準表,可能的id是“T”,
對於排序表,可能的id是“S”,
對於雜湊表,可能的id是“H”。
DATA : LW_KND TYPE CHAR1,
lt_resb_1 TYPE STANDARD TABLE OF resb,
lS_resb_1 LIKE LINE OF lt_resb_1.
DESCRIBE TABLE lt_resb_1 KIND LW_KND .
可以看到返回值為T,說明這是一個標準表。
2.LINES
確定內部表ITAB中表行的當前數量。返回值的型別為i。
DATA : lw_knd_1 TYPE SY-TABIX.
DESCRIBE TABLE lt_resbtab LINES lw_knd_1 .
可以看到跟內表顯示的都是3行。可以用到訊息中,返回得欄位放到訊息中,就可以很清楚得看到一些針對內表得語法操作了多少行,更清楚更改了內表得哪些資料。
另一是使用函式,得出行數
g_lines3 = lines( it_itab ). 使用函式來計算內部錶行數。
- OCCURS n
確定使用新增初始大小定義的初始記憶體需求,或在建立內部表時發生過時的新增。返回值的型別為i。
接下來舉個例子,在實際操作中可能會碰到得情況。
- 內部表按降序排序。由於已排序的表不能按降序排序,因此會檢查表類別以防止引發不可處理的異常。
DESCRIBE TABLE itab KIND DATA(tabkind). "檢查表型別
IF tabkind = sydes_kind-standard OR "判斷標準表, 和雜湊表
tabkind = sydes_kind-hashed.
SORT itab DESCENDING.
ELSEIF tabkind = sydes_kind-sorted. "等於排序表就標錯
MESSAGE '...' TYPE 'E'.
ELSE.
MESSAGE '...' TYPE 'E'.
ENDIF.