abap学习日志--语法

数据类型和数据对象

  • 数据类型
    使用types定义,types定义的类型在程序中用于声明常量或者变量。
    types定义的是类型不是变量,所以不能直接赋值。
REPORT zsdl2022.

INCLUDE zsy_xy_tcus.   "记录程序运行日志
PARAMETERS input(12) TYPE c DEFAULT 'hello world'.
TYPES: BEGIN OF employee,
         code(10) TYPE c,
         name(10) TYPE c,
       END OF employee.
TYPES:address(50) TYPE c.
*&CALL SCREEN 100.
*&SKIP TO LINE 16.
*&POSITION 40.
DATA:emp TYPE employee.
DATA:myaddress TYPE address.
emp-code = '1001'.
emp-name = '张三'.
myaddress = 'this is a address'.
WRITE / emp.
WRITE / myaddress.
  • 数据对象(文本、变量、常量)
    主要指变量

    1. 变量定义包含name, length, type等,语法如下:

      DATA [] type [ value ] [ decimal ]

      其中: [] 里的内容表示可选项。<>表示名称

      : 变量名称, 最长30个字符, 不可含有 + . , : ( ) 等字符

      长度,要用圆括号括起来 如 LINE(20) TYPE C.

      :数据类型

      : 初始值

      : 小数位

      DATA:C1 TYPE C,
                    INT1 TYPE I VALUE 1,
                   TEMP TYPE P DECIMAL 2.
      
      

      声明多个变量时候DATA后面加上冒号,每个声明语句结束后用逗号隔开。
      like关键字:用在已有的数据变量,如系统变量

      DATA:TRANSCODE LIKE SY-TCODE.
      
    2. 常量定义使用constants
      CONSTANTS<常量名>[<长度> ] TYPE <数据类型> VALUE <默认值>
      常量值一旦被定义,即被长期保存在内存,其值无法改变。

      CONSTANTS  PI  TYPE  P  DECIMALS  5  VALUE  '3.14159'.
      
    3. 系统定义对象
      常用系统变量

      SY-SUBRC : 	系统执行某指令后,表示执行成功与否的变量,'0' 表示成功
      SY-UNAME: 	当前使用者登入SAP的USERNAME;
      SY-DATUM: 	当前系统日期;    
      SY-UZEIT: 	当前系统时间;     
      SY-TCODE: 	当前执行程序的Transaction code    
      SY-INDEX : 	当前LOOP循环过的次数  
      SY-TABIX: 	当前处理的是internal table 的第几笔    
      SY-MANDT: 	CLIENT(客户端编号) NUMBER      
      SY-VLINE:	 画竖线
      SY-ULINE:	画横线
      
    4. 结构(类似Java实体类)
      结构体赋值:

      •可对结构体直接赋值

      •相同结构体之间可以使用等号来实现数据的复制

      •WRITE Structure Name可输出所有字段,或使用-输出指定字段

      •相同结构体之间使用Move……To……进行赋值;
      有差异的结构体,可使用MOVE-CORRESSPONDING匹配及赋值相同的字段

      DATA:BEGIN OF USERDETAIL,
            SID(10) TYPE C,
            NAME(20) TYPE C,
            BIRDATE TYPE D,
            ADD(50) TYPE C,
          END OF USERDETAIL.
      
      MOVE-CORRESSPONDING USERINF TO USERDETAIL.
      USERINF-SID='A00001'.
      USERINF-NAME='JERY'.
      USERINF-TEL='010-12345678'.
      USER2=USERINF.
      WRITE:USER2, / USERINF-SID.
      
      

      结构体继承:
      •参考已存在的结构体创建一个属性相同的新结构体

      •可在新结构体中增加字段

      •定义语句:INCLUDE STRUCTURE

      DATA:BEGIN OF EMPLOYEE,
            INCLUDE STRUCTURE USERINF,
      DATA:BIRTHDATE TYPE D,
            ADD(50) TYPE C,
          END OF EMPLOYEE.
      
      MOVE-CORRESSPONDING USERINF TO USERDETAIL.
      
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值