内表1

银河舰队 1人参与 0 次点击
*&---------------------------------------------------------------------*
 *& Report ZM_0801_04
 *&---------------------------------------------------------------------*
 *&
 *&---------------------------------------------------------------------*
 REPORT ZM_0801_04.
 **********CREAT BY ZHANGMIN**********
 WRITE:/ ,'1.分别用APPEND和INSERT插入六条数据'.
 TYPES:BEGIN OF TAB_01,
    LV_01  TYPE CHAR20,
    LV_02(2)  TYPE N,
    LV_03  TYPE I,
    LV_04  TYPE P DECIMALS 2,
  END OF TAB_01.
 
 DATA GT_01 TYPE STANDARD TABLE OF TAB_01.
 DATA GS_01 TYPE TAB_01.
 
 GS_01-LV_01 = '吃饭'.
 GS_01-LV_02 = '12'.
 GS_01-LV_03 = '15'.
 GS_01-LV_04 = '15.23'.
 APPEND GS_01 TO GT_01.
 CLEAR GS_01.
 
 GS_01-LV_01 = '住宿'.
 GS_01-LV_02 = '16'.
 GS_01-LV_03 = '11'.
 GS_01-LV_04 = '162.23'.
 APPEND GS_01 TO GT_01.
 CLEAR GS_01.
 
 GS_01-LV_01 = '睡觉'.
 GS_01-LV_02 = '9'.
 GS_01-LV_03 = '53'.
 GS_01-LV_04 = '72.66'.
 APPEND GS_01 TO GT_01.
 CLEAR GS_01.
 
 GS_01-LV_01 = '打豆豆'.
 GS_01-LV_02 = '9'.
 GS_01-LV_03 = '23'.
 GS_01-LV_04 = '33.5'.
 INSERT GS_01 INTO TABLE GT_01.
 CLEAR GS_01.
 
 GS_01-LV_01 = '想念'.
 GS_01-LV_02 = '2'.
 GS_01-LV_03 = '35'.
 GS_01-LV_04 = '5.2'.
 INSERT GS_01 INTO TABLE GT_01.
 CLEAR GS_01.
 
 GS_01-LV_01 = '热爱'.
 GS_01-LV_02 = '26'.
 GS_01-LV_03 = '85'.
 GS_01-LV_04 = '66.2'.
 INSERT GS_01 INTO TABLE GT_01.
 CLEAR GS_01.
 
 LOOP AT GT_01 INTO GS_01.
 WRITE:"AT /1(1)   SY-VLINE,
      AT /2(10)   GS_01-LV_01,
      "AT 12(1)   SY-VLINE,
      AT 13(10)  GS_01-LV_02,
      "AT 23(1)   SY-VLINE,
      AT 24(10)  GS_01-LV_03,
      "AT 34(1)   SY-VLINE,
      AT 35(16)  GS_01-LV_04.
      "AT 51(1)   SY-VLINE,
      "AT /1(51)  SY-ULINE.
 ENDLOOP.
 SKIP 2.
 WRITE:/,'2.分别读取第二第四第六条数据,换行划线输出'.
 LOOP AT GT_01 INTO GS_01.
 IF ( SY-TABIX = 2 OR SY-TABIX = 4 OR SY-TABIX = 6 ).
 READ TABLE GT_01 INTO GS_01 INDEX SY-TABIX.
 WRITE:AT /1(51)  SY-ULINE,
      AT /1(1)   SY-VLINE,
      AT 2(10)   GS_01-LV_01,
      AT 12(1)   SY-VLINE,
      AT 13(10)  GS_01-LV_02,
      AT 23(1)   SY-VLINE,
      AT 24(10)  GS_01-LV_03,
      AT 34(1)   SY-VLINE,
      AT 35(16)  GS_01-LV_04,
      AT 51(1)   SY-VLINE.
 ENDIF.
 ENDLOOP.
 WRITE:/1(51) SY-ULINE.
 
 SKIP 2.
 WRITE:/,'3.LOOP循环读取内表中的数据,当循环到第三条数据时,修改内表中的第一个字段的值为”修改成功",删除第二第三第四个字段的并且输出新内表'.
 
 LOOP AT GT_01 INTO GS_01.
 IF SY-TABIX = 3.
 GS_01-LV_01 = '修改成功'.
 CLEAR:GS_01-LV_02,GS_01-LV_03,GS_01-LV_04.
 MODIFY GT_01 FROM GS_01.
 ENDIF.
 WRITE:"AT /1(1)   SY-VLINE,
      AT /2(10)   GS_01-LV_01,
      "AT 12(1)   SY-VLINE,
      AT 13(10)  GS_01-LV_02,
      "AT 23(1)   SY-VLINE,
      AT 24(10)  GS_01-LV_03,
      "AT 34(1)   SY-VLINE,
      AT 35(16)  GS_01-LV_04.
      "AT 51(1)   SY-VLINE,
      "AT /1(51)  SY-ULINE.
 ENDLOOP.
 IF SY-SUBRC = 0.
 WRITE:/,'4.如果上述操作成功,则删除内表中的第一条数据,以及第五条数据之后全部删除'.
 DELETE GT_01 INDEX 1.
 DELETE GT_01 FROM 5 TO 6.
 LOOP AT GT_01 INTO GS_01.
 WRITE:"AT /1(1)   SY-VLINE,
      AT /2(10)   GS_01-LV_01,
      "AT 12(1)   SY-VLINE,
      AT 13(10)  GS_01-LV_02,
      "AT 23(1)   SY-VLINE,
      AT 24(10)  GS_01-LV_03,
      "AT 34(1)   SY-VLINE,
      AT 35(16)  GS_01-LV_04.
      "AT 51(1)   SY-VLINE,
      "AT /1(51)  SY-ULINE.
 ENDLOOP.
 ENDIF.
 SKIP 10.