abap个人笔记——内表

内表结构

/*定义表的类型:
1.定义类型名
2.定义表里面的结构*/
TYPES: BEGIN OF ty_stu,
          no(11) TYPE c,
          name(11) TYPE c,
          sex(6) TYPE c,
          age TYPE i,
       END OF ty_stu.

//定义工作区和内表
DATA: gt_itab TYPE TABLE OF ty_stu,
      wa_itab TYPE ty_stu.
//通过工作区向内表添加数据
wa_itab-no = '111'.
wa_itab-name = 'abc'.
wa_itab-sex = '男'.
wa_itab-age = 18.
APPEND wa_itab to gt_itab.

wa_itab-no = '112'.
wa_itab-name = 'def'.
wa_itab-sex = '女'.
wa_itab-age = 19.
APPEND wa_itab to gt_itab.

//遍历并且输出数据
LOOP AT gt_itab INTO wa_itab.
  WRITE:/ wa_itab-no,wa_itab-name,wa_itab-sex,wa_itab-age.
ENDLOOP.
  • 定义数据结构
  • 定义内表和工作区,两者的类型皆是上面定义的数据结构
  • 用append,通过工作区向内表插入数据
  • 用loop,通过工作区获取内表数据

案例1

/*
*学生练习1: 创建图书内表(ISBN,bookname,author, publish,price),数据如下
*ISBN
*bookname
*author
*publish
*price
*9787508651040  JAVA程序设计  谢膺白 清华大学出版社 35.00
*9787121140365  数据结构  郑阿奇 电子工业出版社 36.00
*9787560435800  C语言程序设计 陈建铎 清华大学出版社 45.00
*9787320765800  数据库设计原理与应用  陈浩  清华大学出版社 38.00
*遍历内表中所有数据。
*将记录(9781508651140,网页设计与制作,张伟民,人民邮电出版社,48.00)
*查找清华出版社出版的所有图书信息。
*/


TYPES: BEGIN OF booktab,
        isbn TYPE string,
        bookname(20) TYPE c,
        author(10) TYPE c,
        publish(20) TYPE c,
        price TYPE i,
  END OF booktab.

DATA: gt_itab TYPE TABLE OF booktab,
      wa_itab TYPE booktab.

  wa_itab-isbn = '9787508651040'.
  wa_itab-bookname = 'JAVA程序设计'.
  wa_itab-author = '谢膺白'.
  wa_itab-publish = '清华大学出版社'.
  wa_itab-price = 35.
  APPEND wa_itab to gt_itab.

  wa_itab-isbn = 9787121140365.
  wa_itab-bookname = '数据结构'.
  wa_itab-author = '郑阿奇'.
  wa_itab-publish = '电子工业出版社'.
  wa_itab-price = 36.
  APPEND wa_itab to gt_itab.

  wa_itab-isbn = '787560435800'.
  wa_itab-bookname = 'C语言程序设计'.
  wa_itab-author = '陈建铎'.
  wa_itab-publish = '清华大学出版社'.
  wa_itab-price = 45.
  APPEND wa_itab to gt_itab.

  wa_itab-isbn =  '9787320765800'.
  wa_itab-bookname = '数据库设计原理与应用'.
  wa_itab-author = '陈浩'.
  wa_itab-publish = '清华大学出版社'.
  wa_itab-price = 38.
  APPEND wa_itab to gt_itab.

  LOOP AT gt_itab INTO wa_itab.
  WRITE:/ wa_itab-isbn,wa_itab-bookname,wa_itab-author,wa_itab-publish,wa_itab-price.
ENDLOOP.

案例2

/*      
已知数据库表marc(物料工厂数据),输出字段如下所示:
Matrn(物料号)WERKS(工厂)EKGRP(采购组  BESKZ(采购类型)
条件:WERKS=‘1000’
*/
TABLES:marc.
TYPES:BEGIN OF sy_marc,
  Matnr TYPE marc-matnr,
  WERKS TYPE marc-werks,
  EKGRP TYPE marc-ekgrp,
  BESKZ TYPE marc-beskz,
  END OF sy_marc.

DATA:gt_marc TYPE TABLE OF sy_marc,
     wa_marc TYPE sy_marc.
     
SELECT
  marc~matnr
  marc~werks
  marc~ekgrp
  marc~beskz
  INTO TABLE gt_marc
  FROM marc
  WHERE marc~werks = '1000'.

LOOP AT gt_marc INTO wa_marc.
  WRITE:/ wa_marc-matnr,wa_marc-werks,wa_marc-ekgrp,wa_marc-beskz.
  ENDLOOP.

案例3

/*
*2、根据SFLIGH(航班)表,
*查询航线编号CARRID为‘LH’都有哪些航班,
*在屏幕上输出航班编号CONNID、航班日期FLDATE、票价PRICE、飞机类型PLANETYPE、币种CURRENCY
*/
TYPES:BEGIN OF sy_sflight,
  carrid TYPE sflight-carrid,
  connid TYPE sflight-connid,
  fldate TYPE sflight-fldate,
  price  TYPE sflight-price,
  planetype TYPE sflight-planetype,
  currency TYPE sflight-currency,
  END OF sy_sflight.

  DATA: gt_sflight TYPE TABLE OF sy_sflight,
        wa_sflight TYPE sy_sflight.

  SELECT
    sflight~carrid
    sflight~connid
    sflight~fldate
    sflight~price
    sflight~planetype
    sflight~currency
    INTO TABLE gt_sflight
    FROM sflight
    WHERE sflight~carrid = 'LH'.

  LOOP AT gt_sflight INTO wa_sflight.
  WRITE:/ wa_sflight-connid,wa_sflight-fldate,wa_sflight-price,wa_sflight-planetype,wa_sflight-currency.
  ENDLOOP.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值