内部テーブルと作業領域の違いは何ですか?
内部テーブルは、データベーステーブルに似た一時的な二次元メモリ構造です。 Internaltableに複数のレコードを格納することができ、レコードポインタを使用して、読み取り、追加、削除、変更などの活動を行うことができます。
一方、作業領域は、内部テーブルまたはデータベーステーブルのTYPEofで宣言された変数です。 それは一度に一つのrecordatだけを格納することができます。 作業領域の個々の列を名前で参照します。
“WITH HEADER LINE”句を使用して内部テーブルを宣言すると、内部テーブル自体が作業領域として機能します。 たとえば、ITABは作業領域であり、ITABは内部テーブルです。ORACLE PLSQLに精通している場合、作業領域は%ROW_TYPEに似ており、internalは表のタイプに似ています。
headerlineの有無にかかわらず内部テーブルを使用する方法の詳細については、
headerline:
内部テーブルオブジェクトを作成するときに、同じ名前のヘッダー行を宣言することもできます。 内部テーブルを処理するときに、ヘッダー行asa作業領域を使用できます。 内部テーブルで使用するABAPステートメントには、内部テーブルにヘッダ行がある場合に使用できる短い形式があります。 これらのステートメントは、ヘッダー行を暗黙的な作業領域として自動的に仮定します。 次の表に、ヘッダー行のない内部表に使用する必要があるステートメントと、ヘッダー行のある内部表に使用できる同等のステートメントを示します:
ヘッダー行のない操作
ヘッダー行の操作
すべてのテーブルタイプの操作
<wa>をテーブル<itab>に挿入します。
テーブルITABを挿入します。
<wa>を<itab>に集めます。
<itab>を収集します。
テーブル<itab>を読みます。.. <wa>に入る。
テーブル<itab>を読みます。..
テーブル<itab>を<wa>から変更します。..
テーブル<itab>を変更します。..
<itab>を<wa>から変更します。..どこだ..
<itab>を修正します。.. どこだ..
テーブル<itab>を<wa>から削除します。
テーブル<itab>を削除します。
ITABでループして<wa>に入ります。..
..
インデックステーブル
の操作は、<wa>を<itab>に追加します。
<itab>を追加します。
<wa>を<itab>に挿入します。..
<itab>を挿入します。..
<itab>を<wa>から変更します。..
<itab>を修正します。..
ヘッダー行を作業領域として使用すると、短い文を使用できます; ただし、割り当ての起源とターゲットをすぐに認識することができないため、必ずしも理解しやすいとは限りません。さらに、テーブルとそのヘッダー行にsamenameがあるという事実は、内部テーブル全体との操作で混乱を引き起こす可能性があります。 混乱を避けるためには、異なる名前の作業領域を持つ内部テーブルを使用する必要があります。
次の例は、同じ関数を持つ二つのプログラムを示しています。 一方はヘッダ行を使用し、他方は使用しません。ヘッダー行の
タイプ:行の先頭、
COL1タイプI、
COL2タイプI、
行の終わり。
データITAB型一意キー
COL1
ヘッダー行を持つ行のハッシュテーブル。
は4回行います。
ITAB-COL1=SY-INDEX.
ITAB-COL2=SY-INDEX**2.
テーブルITABを挿入します。
ITAB-COL1=2.
ITABからテーブルITABを読み取ります。
ITAB-COL2=100.
テーブルITABを変更します。
ITAB-COL1=4.
テーブルITABを削除します。
ITABでループします。
書き込み:/ITAB-COL1,ITAB-COL2.
ヘッダー行なし:
タイプ:行の先頭、
COL1タイプI、
COL2タイプI、
行の終わり。
データ: ITABタイプ一意のキー COL1を持つ行のハッシュテーブル、WAはITABの行のように。
は4回行います。
WA-COL1=SY-INDEX.
WA-COL2=SY-INDEX**2.
WAをテーブルITABに挿入します。
WA-COL1=2.
テーブルITABをWAからWAに読み込みます。
WA-COL2=100.
WAからテーブルITABを変更します。
WA-COL1=4.
WAからテーブルITABを削除します。
イタブでループしてWAに入ります。
書き込み:/WA-COL1,WA-COL2.
どちらの場合も、リストは次のように表示されます:
1 1
2 100
3 9
headerlineを使用しないプログラム内のステートメントは、理解しやすいです。 さらに、内部テーブルのキーを指定するだけの作業領域を持つことができますが、テーブルの他の値は割り当てられません。
また読む
リストボックスプログラムの例
ABAPブックリスト
ABAP/4認定、プログラミング、Smartforms、Sapscriptsおよびオブジェクト指向プログラミングブック
Smart Forms
SAP Smartforms
ABAPメニュー:
ABAP Example Hintsand Tips
Return to Index:-
SAP ABAP/4 Programming,Basis Administration, Configuration Hints and Tips