SAP ABAP——内表(二)【创建内表】

举报
Thunder Wang 发表于 2023/01/31 21:52:32 2023/01/31
【摘要】 本文主要介绍一下SAP ABAP中创建内表的几种方式

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要:本文主要介绍一下SAP ABAP中创建内表的几种方式


🤟每日一言:人生没有绝对精彩,雨后或许没有彩虹,但后退一步确是失败


参照局部结构体类型定义内表

- 创建流程

 1.首先定义结构体类型

TYPES:BEGIN OF <t_str>,
     ...
      END OF <t_str>.

 2.其次参照上一步创建的局部结构体类型定义内表

DATA:itab TYPE [STANDARD|SORTED|HASHED] TABLE OF <t_str> WITH {UNIQUE|NON-UNIQUE} KEY <keys> 
[INTIAL SIZE <n>].

- 示例代码

TYPES:BEGIN OF S_SFLIGHT,
  Z_CARRID TYPE SFLIGHT-CARRID,
  Z_CONNID TYPE SFLIGHT-CONNID,
  Z_FLDATE TYPE SFLIGHT-FLDATE,
  Z_PRICE  TYPE SFLIGHT-PRICE,
  END OF S_SFLIGHT.

  DATA:GT_SFLIGHT TYPE TABLE OF S_SFLIGHT WITH NON-UNIQUE DEFAULT KEY.

- 效果演示


参照局部表类型定义内表

- 创建流程

- 首先定义结构体类型

TYPES:BEGIN OF <t_str>,
     ...
      END OF <t_str>.

- 其次参照上一步创建的局部结构体类型定义表类型

TYPES:t_itab TYPE [STANDARD|SORTED|HASHED] TABLE OF <t_str> WITH {UNIQUE|NON-UNIQUE} KEY <keys> 
[INTIAL SIZE <n>].
  • [STANDARD|SORTED|HASHED]为可选参数,从左到右分别对应标准表,排序表和哈希表;若不指定该参数则默认为标准表
  • [INTIAL SIZE <n>]为可选参数,可以指定定义的内表的大小

- 最后参照上一步创建的局部表类型定义内表

DATA:itab TYPE <t_itab> [WITH HEADER LINE].
  • [WITH HEADER LINE]为可选参数,可以指定内表附带工作区,将在下一篇文章中讲解

- 示例代码

TYPES:BEGIN OF S_SFLIGHT,
  Z_CARRID TYPE SFLIGHT-CARRID,
  Z_CONNID TYPE SFLIGHT-CONNID,
  Z_FLDATE TYPE SFLIGHT-FLDATE,
  Z_PRICE  TYPE SFLIGHT-PRICE,
  END OF S_SFLIGHT.

  TYPES:T_SFLIGHT TYPE TABLE OF S_SFLIGHT WITH NON-UNIQUE DEFAULT KEY.

  DATA:GT_SFLIGHT TYPE T_SFLIGHT.

- 效果演示



参照全局表定义内表

- 创建流程

DATA:itab TYPE <target> WITH [UNIQUE|NON-UNIQUE] KEY <keys> [INTIAL SIZE <n>] [WITH HEADER LINE].

- 示例代码

DATA:GT_SFLIGHT TYPE STANDARD TABLE OF SFLIGHT WITH NON-UNIQUE DEFAULT  KEY.

- 效果演示


参照全局表类型定义内表

- 创建流程

 DATA:itab TYPE <T_itab> [WITH HEADER LINE].
  • <T_itab>为数据字典中全局表类型

- 全局表类型参数

- 示例代码

DATA:GT_SFLIGHT TYPE ZT_SFLIGHT.

- 效果演示


旧式内表定义法

- 创建流程

DATA:BEGIN OF <itab> OCCURS 0,
    f1,
    f2,
    f3
    ......
      END OF <itab>.
  • 旧式内表定义法即使没有使用[WITH HEADER LINE]语句,也默认包含表头行
  • 旧式内表定义法只能用于标准表的创建

- 示例代码

DATA:BEGIN OF GT_SFLIGHT OCCURS 0,
  CARRID TYPE SFLIGHT-CARRID,
  CONNID TYPE SFLIGHT-CONNID,
  FLDATE TYPE SFLIGHT-FLDATE,
  PRICE  TYPE SFLIGHT-PRICE,
 END OF GT_SFLIGHT.

- 效果演示

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。