ABAP学习笔记-基础语法-02-数据对象的定义-变量与常量(01)

原文链接:https://mp.weixin.qq.com/s/OBKx5SIpdfQ_NJZAn1Yu-A

大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。

愿大家的学习,轻松且愉快。

如果大家觉得有用,希望转发关注,谢谢

导读

本篇我们简单介绍一下数据对象中,变量和常量的定义方式。

注意:本篇只是简单分享了常用语法结构,具体其他技术细节,请大家自行测试。

正文

 

变量的定义

 

常见定义变量的方式有两种:DATA 和 LIKE.

DATA是通过数据类型去定义变量;

LIKE是通过数据对象去定义变量。

 

1.DATA+TYPE

用数据类型去定义变量

1.1语法结构:DATA varname (length) TYPE type  DECIMALS decimals VALUE 'value'.

 

1.2 语法分析

在上述语法结构中:蓝色字体均为关键字,我们根据关键字的内容就能判断其作用。

 

关键字DATA:是我们定义变量的关键字,后面的name就是定义此变量的具体名称;

关键字TYPE后面所跟的内容,是指这个变量的具体数据类型;

关键字VALUE后面所跟的内容,是指这个变量还未经过程序逻辑预算时的初始值;

关键字DECIMALS后面所跟的内容,是指这个变量的小数位。

 

注意1:在定义变量时,上述的关键字中“DATA和TYPE”是必须存在的,我们在程序中定义一个变量,最基本的必须告诉系统你定义的变量是什么名字,且具体是什么类型,之于有没有初始值,有没有小数位,这个是可选的。

注意2:TYPE 与 TYPES的区别,TYPE是在定义数据对象时,定义改数据对象的类型时使用的;而TYPES,是我们是定义数据类型时使用的。这个可以参考前一篇的内容。

 

1.3 举例说明

1.3.1用预定义类型定义变量

第一行,我们定义了一个名称为“name1”的变量,且类型为CHAR;

第二行,我们定义了一个名称为“name2”的变量,长度为10,类型为CHAR,且初始值为kerwin;

第三行,我们定义了一个名称为“temp”的变量,长度为10,类型为P,小数位为3位,且初始值为12345.123。

 

注意:如上图,并不是每定义一个变量都得已DATA开头,如果我们需要定义多个变量,也可以如下图所示,在DATA后加上冒号,并通过逗号隔开不同的变量,最后用句点结尾。

 

1.3.2用自定义数据类型

 

如上图所示,我们定义了三个单一数据元素的自定义数据类型和一个结构的数据类型,再通过这个三个单一数据元素的数据类型去定义了三个单一变量和一个结构变量。

 

2.DATA+LIKE

用数据对象去定义变量。

2.1语法结构:DATA varname (length) LIKE data object VALUE 'value'.

2.2语法解析:

LIKE后面跟的是一个现存的数据对象,比如,SAP中已经定义好的表字段,比如“mara-matnr ”等,或者系统变量,比如SY-TCODE等,以及程序中本来已经定义好的其数据对象;

 

3.3 举例说明

如上图,我们用like定义了三个变量。

第一个lv_matnr  ,是参考系统现有表字段mara-matnr 进行定义的;

第二个lv_subrc  ,是参考系统变量sy-subrc进行定义的;

第三个lv_name5  ,是参考已经定义好的name4变量进行定义的;

注意:可以通过事务码SE11,如下截图方式,进行所有系统变量的查询。

 

 

 

常量的定义

之所以程序中要定义常量,是因为在程序中,经常会有一些值是固定不变的、不需要修改的,且会被反复使用,因此,需要定义常量。

 

1.语法结构:

CONSTANTS consname(length)TYPE type DECIMALS decimals VALUE 'value'.

 

2.举例说明

第一行,我们用CONSTANTS +TYPE的方式定义了单一常量name6,类型为C,长度为5,值为“name6”;

第二行,我们用CONSTANTS +TYPE的方式定义了结构常量LS_STR

 

第三行,我们用CONSTANTS +LIKE的方式,参考常量name6,定义了单一常量name7.

 

输出效果如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值