ABAP开发-3、ABAP语法_01数据类型、变量、常量(超详细版)

系列文章目录



前言


一、基本语法

1、语句
ABAP源程序由注释和ABAP语句组成。ABAP中的每个语句都以关键字开头,以句点结尾,不区分大小写。
程序中的第一个非注释行以单词REPORT开头,报告将始终是创建的任何可执行程序的第一行,该语句后面是创建的程序的名称

REPORT ZYT36_DAY1_36130
WRITE'泪水打湿猪脚饭'.

2、冒号表示法
若每个语句的开头都是相同的,则连续语句可以连在一起,用逗号连接起来

WRITE'泪水打湿猪脚饭'.
WRITE'发誓要挣一百万'.
"可以用以下冒号表示法表示
WRITE:'泪水打湿猪脚饭','发誓要挣一百万'.

3、注释

*这是第一种注释方法
WRITE '漂亮宝贝'. "这是第二种注释方法

4、抑制空白
NO-ZERO命令跟在输出语句的后面,抑制包含空格的数字字段的所有前导零,这样输出更容易让用户读

DATA: var_c2 TYPE c length 40,
      n_number TYPE n length 10,
      var_string2 TYPE string.
var_c2 = 'text'.
n_number = 6.
var_string2 = 'string var'.
WRITE: var_c2,n_number no-ZERO,var_string2.

5、空白行
SKIP命令----插入空行

SKIP 1."插入一行空行
SKIP 2."插入两行空行

6、插入线
ULINE命令----插入线

WRITE: / '下面是一条线'.
ULINE.

7、消息
MESSAGE命令显示由程序开始处REPORT语句指定的消息ID定义的消息。消息编号从000到999,与每个数字相关联的消息文本最多为80个字符,调用消息号时,将显示对应的文本。
以下为关于MESSAGE命令的字符:

信息后果
E(Error)消息出现,应用程序在当前点暂停,用于阻止用户做不应该做的事
W(Warning)用户需按enter键才能继续应用程序,后台模式下,消息将记录在作业日志
I(Information)将打开一个弹出窗口,其中包含消息文本,需按enter键继续
A(Abend)此消息类将取消用户当前正在使用的事务
S(Sucess)提示用户信息正确
X(Abort)中止程序并生成ABAP短转储

二、数据类型

ABAP中编程时,需要使用各种变量来存储各种信息,变量只是保留值的存储位置,也就是说,当我们创建一个变量,我们就在内存中保留一些空间,基于变量的数据类型,操作系统分配内存并决定在保留内存中可以存储的内容。

1、基本数据类型
注:日期和时间类型的变量可以直接进行加减

类型关键词
文本域c
整数型integeri 定义时不需要规定长度,赋值时不需要加引号
浮点型f 定义时不需要规定长度,赋值时不需要加引号
日期d 长度:8个字符,可存储8位数字,eg:20241009
时间t 长度:6个字符
文本字符串string
打包数量p

三、变量

变量类似于一个盒子,变量是在程序运行中值会变化的一种值,用户可在abap语句的帮助下更改变量的内容。abap中每个变量都有一个特定的类型,它决定了变量内存的大小和布局,可以存储在该存储器内的值的范围,以及可以应用于该变量的一组操作。
必须先声明所有变量,然后才能使用

1、静态变量

静态变量在子程序,函数模块和静态方法中声明,“PARAMETERS"语句可用于声明链接到选择屏幕上的输入字段的基本数据对象。
命名变量时:不能用特殊字符(“t”,”,")等来命名变量;变量的名称必须传达变量的含义

*Parameter 和用户有交互,静态变量
 PARAMETERS: p_name TYPE c length 10,
             p_ageb TYPE i,
             p_adress TYPE c length 40.

2、参考变量

创建一个引用类型和创建一个变量一样,关键字也是DATA

DATA  <ref> TYPE REF TO <type> 

REF TO 附加声明一个引用变量ref;
REF TO 后的规范指定应用变量的静态类型;

*创建引用类型
 DATA ref_1 TYPE REF TO i."第一步定义引用变量
*想用引用的时候,必须实际创建一个空间给他,让他放值,和变量不一样,变量是只要创建了,os就会给他分配一个内存空间,让他赋值
 CREATE DATA ref_1.
*赋值
ref_1->* = 1.
*输出
 WRITE: / '应用变量',ref_1->*.

3、系统变量

ABAP系统变量可以从所有abap程序访问;
这些字段中的值指示系统在任何给定时间点的给定状态;
可以在SAP中的SYST表中找到系统变量的完整列表
可以用"SYST-"或“SY-"访问SYST结构的各个字段。

*系统变量
*WRITE: / 'SY-SUBRC', SY-SUBRC,"系统执行指令之后,是否成功,0-成功,其他-有问题
        / 'SY-DATUM', SY-DATUM,"系统当前日期
       / 'SY-UZEIT', SY-UZEIT,"系统当前时间
       / 'SY-TABIX', SY-TABIX,"表的第几行
       / 'SY-INDEX', SY-INDEX,"当前循环的次数
       / 'SY-LANGU', SY-LANGU,"系统登录语言
      / 'SY-MANDT', SY-MANDT,"当前集团代码
      / 'SY-TCODE', SY-TCODE,"当前事务码
      / 'SY-UNAME', SY-UNAME."当前登陆账号
*定义变量
DATA var_c TYPE c length 40.
var_c = 'this is a text'.
WRITE / var_c.
*定义一个string变量
DATA var_string TYPE string.
var_string = 'this is a string var'.
WRITE / var_string.
* 冒号表示法表示定义多个变量
DATA: var_c2 TYPE c length 40,
      n_number TYPE n length 10,
      var_string2 TYPE string.
var_c2 = 'text'.
n_number = 6.
var_string2 = 'string var'.
WRITE: var_c2,n_number no-ZERO,var_string2.
*复杂的数据类型structure
TYPES:BEGIN OF ty_student,
  number TYPE n LENGTH 4,
  name  TYPE c LENGTH 20,
  age TYPE i,
  END OF ty_student.
* 利用复杂数据类型定义变量
 DATA ls_stu TYPE ty_student.
* 赋值
 ls_stu-number = '0001'.
 ls_stu-name = '张三'.
 ls_stu-age = '18'.
*输出
 WRITE / :'学号:',ls_stu-number,
          '年龄:',ls_stu-age,
          '名字:',ls_stu-name.
* 定义变量并设置默认值
 DATA lv_school TYPE c length 10 VALUE 'W36130'.
 WRITE: / '默认值测试',lv_school.

*LIKE,利用其他变量定义新变量
 DATA lv_class like lv_school VALUE'C001'.
 WRITE: / 'calss的默认值',lv_class.

四、常量和字面量

常量:通常通过为程序的存储区域中存储的值分配一个常量来声明该常量;分配给常量的值在程序执行期间不可更改,这些固定值可被视为文字,有两种类型的文字:数字和字符。
字符文字:用单引号括起来的ABAP程序的源代码中的字母数字字符序列
文本字段文字:用引号括起来的字符文字,具有预定义的ABAP类型c
字符串文字:用引号括起来的文字,具有ABAP类型string
注:string文字中,尾随空白将被忽略,但在c类型中,将被考虑在内

*定义常量,注意:1、定义的时候要有初始值2、值不可以再通过赋值修改
CONSTANTS lc_c TYPE C LENGTH 40 VALUE 'V03'.
*lc_c = 'v04'."会报错
WRITE: / '常量lc_c的值:', lc_c.

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值