SAP ABAP——数据类型(四)【TYPE系列关键字】

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


💅文章概要:本文主要介绍一下SAP ABAP中的声明数据类型的TYPE系列关键字,主要包括了TYPE、TYPE TABLE OF、TYPE LINE OF、TYPE REF TO。


🤟每日一言:宝剑锋从磨砺出,梅花香自苦寒来。

目录

TYPE

TYPE LINE OF

参照数据字典表类型

参照用户自定义表类型

TYPE TABLE OF

定义标准表类型

定义排序表类型

定义哈希表类型

TYPE REF TO

参照本地类

参照全局类


TYPE

          TYPE关键字是数据类型定义中最重要的关键字,可以参照预定义数据类型全局数据字典数据类型或者用户自定义数据类型。关于【TYPE】关键字的使用此前已经详细尽述,在此不再赘述。具体可以参考下面两文:、

SAP ABAP——数据类型(一)【数据类型概要及分类】

SAP ABAP——数据类型(二)【TYPES自定义数据类型详解】 


TYPE LINE OF

          TYPE LINE OF主要用来参照表类型中的一行定义结构体类型,表类型可以是数据字典表类型也可以是用户自定义的表类型

TYPES <ty_name> TYPE LINE OF <ty_tab_name>.
  • 参照数据字典表类型

TYPES:ty_hrhcp00 TYPE LINE OF hrhcp00_dc_orginfo.
DATA:gs_hrhcp00  TYPE ty_hrhcp00.

          上面给出了参照数据字典表类型定义一行结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,具体效果如下图所示:

参照数据字典表类型定义一行结构体类型


  • 参照用户自定义表类型

TYPES:ty_tab_sflight TYPE TABLE  OF sflight,
      ty_sflight     TYPE LINE OF ty_tab_sflight.
DATA gv_sflight TYPE ty_sflight.

          上面给出了参照用户自定义表类型定义一行结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,具体效果如下图所示:

参照用户自定义表类型定义一行结构体类型1


TYPE TABLE OF

           【TYPE TABLE OF】语句是用来定义内部表数据类型的语句。在SAP ABAP中拥有标准表类型排序表类型哈希表类型三种内表数据类型。关于内表数据的相关知识可以参考笔者的第七章系列文章:SAP ABAP——内表

*定义标准表类型
TYPES: <ty_tab_standard_name> TYPE [STANDARD] TABLE OF <type> [WITH NON-UNIQUE KEY <k1 k2 ... kn>] [INITIAL SIZE <n>].
*定义排序表类型
TYPES: <ty_tab_sorted_name> TYPE SORTED TABLE OF <type> [WITH [NON-UNIQUE|UNIQUE] KEY <k1 k2 ... kn>][INITIAL SIZE <n>].
*定义哈希表类型
TYPES: <ty_tab_hashed_name> TYPE HASHED TABLE OF <type> [WITH UNIQUE KEY <k1 k2 ... kn>] [INITIAL SIZE <n>].

  • 定义标准表类型

*参照数据库表sflight定义标准表
TYPES:ty_tab_sflight TYPE TABLE OF sflight WITH NON-UNIQUE KEY carrid connid fldate.

  • 定义排序表类型

*参照数据库表sflight定义排序表
TYPES:ty_tab_sflight TYPE SORTED TABLE OF sflight WITH NON-UNIQUE KEY carrid connid fldate.

  • 定义哈希表类型

*参照数据库表sflight定义哈希表
TYPES:ty_tab_sflight TYPE HASHED TABLE OF sflight WITH UNIQUE KEY carrid connid fldate.

TYPE REF TO


       【TYPE REF TO】语句是用来参照定义类的语句。关于该语句的的讲解在此只做简单的介绍,具体面向对象的知识将在该系列文章后续章节【面向对象ABAP程序设计(ABAP OOP)】中讲解!

TYPES:<cl_name> TYPE REF TO <type>.

  • 参照本地类

 *本地类 lcl_data定义
CLASS lcl_data DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
      get_data IMPORTING iv_date TYPE d.
ENDCLASS.                    "lcl_data DEFINITION
*本地类 lcl_data实例化
CLASS lcl_data IMPLEMENTATION.
  METHOD get_data.
*   do something
  ENDMETHOD.                    "get_Data
ENDCLASS.                    "lcl_data IMPLEMENTATION

TYPES:cl_data_ty TYPE REF TO lcl_data.

  • 参照全局类

TYPES:cl_alv_ty TYPE REF TO  CL_GUI_ALV_GRID

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThundersArk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值