ABAP 7.4構文の後に、内部テーブル式について学ぶために今日:
SELECT * FROM MARA INTO TABLE @DATA ( gt_mara )
UP TO 10 ROWS 。 DATAは gt_mara_sort TYPE SORTED TABLE OF MARAを WITH UNIQUE KEY PRIMARY_KEYコンポーネントMATNR 。
「旧语法
DATA LV_MATKL TYPE MARA-MATKL。 READ 表 GT_MARA INDEX 1 INTO DATA (LS_MARA)。
READ 表 gt_mara_sort INTO DATA ( ls_mara_sort1 ) INDEX 。1 USING KEYの PRIMARY_KEY 。
ザREAD TABLEが gt_mara_sort INTO DATA ( ls_mara_sort2 ) WITH KEY MATNR = 'AT001' 。ザIF SY-SUBRCは0ザのEQである LV_MATKL = LS_MARA_SORT2-MATKL。ENDIF。
「新しい構文 DATA(LS_MARA_NEW)= GT_MARA [ 1 ]。
DATA ( ls_mara_sort1_new) = gt_mara_sort1 [ KEYの PRIMARY_KEY INDEX 。1 ]。
「gt_mara_sort係るMATNRバイナリサーチに従ってソートされた場合
DATA ( ls_mara_sort2_new ) = gt_mara_sort2 [MATNR = 'AT001' ] 。
DATA(LV_MATKL_NEW)= GT_MARA_SORT2 [MATNR = 'AT001'] -MATKL。
「いくつかのデータがあるかどうかを確認してください
"古い構文
READ TABLEのgt_maraの TRANSPORTING NO FIELDS WITH KEY MATNR = 'AT001' 。
"新しい構文のチェックline_exists(gt_mara [MATNR = ' AT001'])。
" を含む得られた直線のデータテーブル " 古い構文は、 DATAは lv_tabix TYPE SY- TABIXを。 READの 表 NO輸送するgt_mara FIELDS WITH KEY MATNR = ' AT001 ' 。 ザ・IF SY-SUBRC EQ 0 。 Lv_tabix = SY- TABIX。 ENDIF 。 「新規作成構文 DATA(lv_tabix_new)= line_index(gt_mara [MATNR = ' AT001 ' ])。
注:GT_MARAが直接行ったときにデータがMATNR =「AT001」に存在しない場合
DATA (LS_MARA ) = GT_MARA [MATNR = 「AT001は」] 。
ダンプにプログラムを引き起こす、それは一般的に次のように書かれています:
ASSIGN gt_mara [MATNR = ' AT001 ' ] TO FIELD -symbol(<FS> )。 IF SY-SUBRCのEQ 0 。 * ... ENDIF。
- TABラーニング・テクノロジーズの愛の生活