美文网首页
ABAP基础知识:内表

ABAP基础知识:内表

作者: JayDragon | 来源:发表于2018-01-10 23:24 被阅读0次

    1.创建内表

    可以利用下面两种方法定义内表:

    1.参照局部表类型创建内表
    2.参照全局数据库表创建内表

    1.1参照局部表类型创建内表
    TYPES : BEGIN OF ty_test,
           no(6)    TYPE C,
           name(10) TYPE C,
           dept(10) TYPE C,
           END OF ty_test.
    DATA gt_test TYPE STANDARD TABLE OF ty_test WITH HEADER LINE."带表头行
    gt_test-no = '0001'.
    gt_test-name = 'GML'.
    gt_test-dept = 'CST-RDC'.
    APPEND gt_test.
    LOOP AT gt_test.
       WRITE:gt_test-no,gt_test-name,gt_test-dept.
    ENDLOOP.
    

    也可以直接定义结构体然后参照此结构体定义内表,此时不能用TYPE语句,需使用LIKE语句。

    DATA : BEGIN OF ty_test,
           no(6)    TYPE C,
           name(10) TYPE C,
           dept(10) TYPE C,
           END OF ty_test.
    DATA : gt_test LIKE STANDARD TABLE OF ty_test, "不带表头行
           gs_test LIKE ty_test.
    gs_test-no = '0001'.
    gs_test-name = 'GML'.
    gs_test-dept = 'CST-RDC'.
    APPEND gs_test TO gt_test.
    LOOP AT gt_test INTO gs_test.
       WRITE:gs_test-no,gs_test-name,gs_test-dept.
    ENDLOOP.
    
    1.2参照全局数据库表创建内表
    DATA : gt_scarr TYPE SORTED TABLE OF scarr WITH UNIQUE KEY carrid,
           gs_scarr LIKE LINE OF gt_scarr.
    SELECT * FROM scarr INTO gt_scarr.
    LOOP AT gt_scarr INTO gs_scarr.
       WRITE : / gs_scarr-carrid,gs_scarr-carrname.
    ENDLOOP.
    

    2.内表与表头

    表头也叫工作区,定义内表时追加WITH HEADER LINE语句会自动生成表头。
    例如:

    DATA itab TYPE type WITH HEADER LINE.
    

    比较内表循环语句中带表头的内表与不带表头的内表的使用方法。使用不带 表头的内表时,需通过工作去(Work area)编辑内表中的数据,而使用带表头的内表时,则可以直接用内表名编辑内表值。
    下表整理了带表头与不带表头的内表使用的相关语句:

    不带表头时使用的语句 带表头时使用的语句
    所有内表(Stardard,Sorted,Hashed Type )
    INSERT wa INTO TABLE itab. INSERT TABLE itab.
    COLLECT wa INTO TABLE itab. COLLECT itab.
    READ TABLE itab...INTO wa. READ TABLE itab...
    MODIFY TABLE itab FROM wa. MODIFY TABLE itab.
    MODIFY itab FROM wa...WHERE ... MODIFY TABLE itab.
    DELETE TABLE itab FROM wa. DELETE TABLE itab.
    LOOP AT itab INTO wa. LOOP AT itab.
    Index表(Stardard,Sorted Type )
    APPEND wa TO itab. APPEND itab.
    INSERT wa INTO itab... INSERT iatb...
    MODIFY itab FROM wa... MODIFY itab...

    相关文章

      网友评论

          本文标题:ABAP基础知识:内表

          本文链接:https://www.haomeiwen.com/subject/rlsanxtx.html