ABAP学习笔记-基本的数据操作-002

数据赋值

  1. 数据赋值-move,=,还原语句用clear
MOVE source TO destination.
destination = source.
  1. 结构体赋值,相似的结构体之间也可以进行赋值
REPORT Z_TEST001.

DATA: BEGIN OF add_personal,
      title(5) VALUE  'mr',
      name(20),
      street(100),
      no(3) TYPE n,
      postcode(6) TYPE n,
  END OF add_personal.

DATA: BEGIN OF add_company,
      position(20) VALUE 'Consultant',
      name(20) VALUE 'jack Huang',
      street(100) TYPE c VALUE 'BEIJING AVENUE',
      no(3) TYPE n VALUE '002',
      postcode(6) TYPE n VALUE '10087',
   END OF  add_company.

MOVE-CORRESPONDING add_company TO add_personal.

write add_personal.
  1. 数据类型转换
    类型转换如果数据类型不一致,则会消耗系统时间,所以应该有意识的把所有操作数和目标变量定义为相同的数据类型。
    • 基本对象类型转换原则
      除去基本类型只有类型D类型T不存在转换规则,其它的都有对应的转换规则。
    • 引用类型的转换
      对象引用和数据引用变量之间不能相互赋值。
    • 结构体转换原则
      分结构体是扁平结构还是纵深结构
      扁平结构—–允许在互不兼容的结构体之间赋值
      纵深结构—–要求结构体之间完全兼容。
    • 内表转换原则
      内表对象只能赋值给内表对象,成功取决于行结构是否可以兼容,与表类型或者关键字无关。

数值运算

关键字:COMPUTE,语法为[COMPUTE] n = <mathematical expression>

  1. 算术运算
*&---------------------------------------------------------------------*
DATA int type n value 2.
COMPUTE int  = int + 1.
int = int + 1.
ADD 1 TO int.
write int.

使用数值运算+ - * / **关键字的前后必须都有空格,否则错误的语法导致程序无法编译。

  1. 数学运算,语法为:[COMPUTE] n = func(m).
函数名说明
ABS返回绝对值
TRUNC返回整数部分
FRAC返回小数部分
SIGN正数返回1,负数-1,0为0
CELL天花板数
FLOOR地板数

示例:注意左括号中不能有空格,而参数两旁必须要有空格

DATA: result(20) TYPE c ,
      float type f value '2.5000'.

  result = trunc( float ).
  write result.

此外还有一个F类型参数的函数列表

  1. 时间日期计算
DATA: seconds TYPE i,
      hours TYPE i,
      time1 TYpe t value '100000', "10:00:00 am
      time2 TYPE t value '080000'. "08:00:00 am

      seconds = time1 - time2 .
      hours = seconds / 3600.

      WRITE: / 'Seconds is ', seconds,
             / 'Hours is ', hours.
30天学会ABAP程序 学习ABAP并不难,有人说SAP系统重在管理思想,不在技术,通常对有编程经验的读者不用任何培训参考一些相关资料就可立即上手. 简单介绍下ABAP/4的一些特征: 1.和SAP紧密结合,尤其在开发报表方面,坦率地讲,除了和SAP集成的好处,.我定认为ABAP在报表开发上比Crystal report Tool要高效简单. 2.和VB一样 ,ABAP是解释形的,如读者精通VB,学习ABAP应该豪不费力,倒是既然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉. 解释性的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实和追踪错误很有效. 和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAP程序去不行, 但是ABAP程序允许在运行时修改变量的值,这是编译程序不能做到的. 当然通常编译比解释执行的速度会更快. ABAP程序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP). 3.在对数据库处理方面,除了可直接执行SQL(使用native sql,缺点是错误处理很难控制,相当于有开发环境将SQL 语句直接传给DB去执行),SAP在ABAP开发环境层还提供了一套Open SQL访问底层数据库. 4. 程序员都知道Windows平台下开发都支持事件驱动,Windows系统本身也支持事件驱动,ABAP也提供了事件驱动,这表现在Dialog编程方面,但是ABAP在此方面并不强,而且相对讲也比较难于掌握(在后面会讨论). 5.基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象. 6.类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值