ABAP开发基础二

ABAP开发基础-CSDN博客

ABAP开发基础三-CSDN博客

ABAP开发学习基础四-CSDN博客

*日期的定义和输出LV_DATE
DATA lv_date TYPE d.
lv_date = sy-datum.
WRITE: / 'LV_DATE',lv_date DD/MM/YYYY,"显示格式有问题
       / 'LV_DATE',lv_date DDMMYY."显示的格式有问题

lv_date = lv_date + 1.
WRITE: / '+1'.
WRITE: / 'LV_DATE',lv_date DD/MM/YYYY,
       / 'LV_DATE',lv_date MMDDYY.

*时间
DATA lv_time TYPE t.
lv_time = sy-uzeit.

WRITE: /(60) lv_time USING EDIT MASK 'Now time is __:__:__'.
lv_time = lv_time + 78.
WRITE: /(60) lv_time USING EDIT MASK 'Now time is __:__:__'.

*时间戳
DATA lv_timestamp TYPE timestamp.
GET  TIME STAMP FIELD LV_TIMESTAMP.

WRITE: / LV_TIMESTAMP TIME ZONE SY-ZONLO.
WRITE: / SY-ZONLO.

字符串相关操作

编号

声明和目的

1

STRLEN

计算字符串长度

2

CONCATENATE

两个字符串连接形成第三个字符串。

3

CONDENSE

此语句删除空格字符。

4

SEARCH

查找

5

REPLACE

用于以字符进行替换。

6

SEARCH

在字符串中运行搜索。

7

SHIFT

用于向左或向右移动字符串的内容。

8

SPLIT

用于将字段的内容拆分为两个或多个字段。

*字符串的拼接
DATA: lv_title1 TYPE string,
      lv_title2 TYPE string,
      lv_title3 LIKE lv_title1.

lv_title1 = 'hello'.
lv_title2 = 'world'.
CONCATENATE lv_title1 lv_title2 INTO lv_title3.

WRITE:/ lv_title3.

CONCATENATE lv_title1 lv_title2 INTO lv_title3 SEPARATED BY space.
WRITE: / 'CONCATENATE WITH SPACE:',lv_title3.


*字符串查找
DATA:lv_str1 TYPE c LENGTH 30."CHAR30
DATA:lv_str2 TYPE c LENGTH 30.
lv_str1 = '123ABC*DEFG'.
lv_str2 = 'ABC'.
SEARCH lv_str1 FOR lv_str2.
WRITE: / sy-subrc,sy-fdpos.
*特殊符号*的查找需要在其两边用句号修饰
SEARCH LV_STR1 FOR '.*.'.
WRITE: / sy-subrc,sy-fdpos.

*字符串替换
DATA:LV_STR1 TYPE CHAR30.
DATA:LV_STR2 TYPE CHAR30.
LV_STR1 = 'ABCDEFG'.
LV_STR2 = 'ABC'.
REPLACE LV_STR1 WITH LV_STR2 INTO LV_STR1.
WRITE:LV_STR1.

*字符串截取
DATA:LV_STR1 TYPE C length 30 value 'ABC*DEFG'.
DATA:LV_STR2 TYPE CHAR30.
DATA:LV_STR3 like LV_STR2.
LV_STR2 = LV_STR1(4).
LV_STR3 = LV_STR1+4(1).
WRITE:LV_STR2,LV_STR3.

*字符串分拆
DATA:lv_str1 TYPE char30.
DATA:lv_str2 TYPE char30.
DATA:lv_str3 TYPE char30.
lv_str1 = 'ABC*DEFG'.
SPLIT lv_str1 AT '*' INTO lv_str2 lv_str3."(拆分)
WRITE: lv_str1,lv_str2,lv_str3.

*字符串移位
DATA:lv_str1 TYPE char30.
lv_str1 = 'ABC*DEFG'.
SHIFT lv_str1 BY 3 PLACES RIGHT."(右移3位)
WRITE:lv_str1.

DATA:lv_str2 TYPE char30.
lv_str2 = '0000ABC*DEFG'.
SHIFT lv_str2 LEFT DELETING LEADING '0'."(左侧移除0)
WRITE: / lv_str2.

字符串运算符

编号

字符串操作符和说明

1

CO(仅包含)

检查A是否仅由B中的字符组成。

2

CN(不包含)

检查A是否包含不在B中的字符。

3

CA(包含任何)

检查A是否至少包含一个字符B.

4

NA(不含任何)

检查A是否不包含任何字符B.

5

CS(包含字符串)

检查A是否包含字符串B.

6

NS(不包含字符串)

检查A是否不包含字符串B.

7

CP(包含模式)

它检查A是否包含B中的模式。

8

NP(不包含模式)

它检查A是否不包含B中的模式。

CLEAR: lv_str1.
*清空变量,常量不能被清空

write语句

*WRITE <format> <f> <options>.
*在此语法中,< format> 表示输出格式规范,其可以是指示从新行开始的输出的显示的正斜杠(/)。
*除了正斜杠之外,格式规范还包括列号和列长度。
*例如,WRITE / 04(6)语句显示新行从第4列开始,列长度为6,而WRITE 20语句显示了第20列的当前行。
*参数< f> 表示数据变量或编号文本。

格式化操作

编号

条款和说明

1

LEFT-JUSTIFIED

指定输出为左对齐。

2

CENTERED

表示输出居中。

3

RIGHT-JUSTIFIED

指定输出为右对齐。

4

UNDER< g>

输出直接在字段g>下启动。

5

NO-GAP

指定字段f>之后的空白 被拒绝。

6

USING EDIT MASK <m>

表示格式模板m>的规范。 使用无编辑掩码:这指定禁用在ABAP字典中指定的格式模板。

7

NO-ZERO

如果字段只包含零,则它们将被空格替换。

数字类型字段的格式设置选项

编号

条款和说明

1

NO-SIGN

指定屏幕上不显示前导符号。

2

EXPONENT< e>

指定在类型F(浮点字段)中,指数在e>中定义。

3

ROUND< r>

类型P字段(压缩数值数据类型)首先乘以10 **( - r),然后四舍五入为整数值。

4

CURRENCY< c>

表示格式化是根据货币c> 值存储在TCURX数据库表中。

5

UNIT< u>

指定小数位数根据u> 单位,如类型PT006数据库表中指定。

6

DECIMALS< d>

指定数字的数目< d> 必须显示在小数点后面。

算数运算符

编号

算术运算符和描述

1

+(添加)在运算符的两侧添加值。 示例:A + B将给出60

2

- (减法)

从左边操作数中减去右边操作数。 示例:A - B将给出-20

3

*(乘法)

将运算符两侧的值相乘。 示例:A * B将给出800

4

/(除法)用右边操作数除左边操作数。 示例:B / A将给出2

5

MOD(模量)用右边操作数除左边操作数,并返回余数。 示例:B MOD A将给出0

编号

比较运算符和描述

1

=(相等测试) 替代形式是EQ

检查两个操作数的值是否相等,如果是,则条件为真。 示例(A = B)不为真。

2

<> (不等式检验)。 替代形式是NE

检查两个操作数的值是否相等。 如果值不相等,则条件为真。 示例(A<> B)为真。

3

> (大于测试)。 替代形式是GT

检查左操作数的值是否大于右操作数的值。 如果是,则条件变为true。 示例(A> B)不是真的。

4

< (小于测试)。 替代形式是LT

检查左操作数的值是否小于右操作数的值。 如果是,则条件变为true。 示例(A

5

> =(大于或等于)替代形式为GE

检查左操作数的值是否大于或等于右操作数的值。 如果是,则条件变为true。 示例(A> = B)不是真的。

6

< =(小于或等于测试) 替代形式是LE

检查左操作数的值是否小于或等于右操作数的值。 如果是,则条件变为true。 示例(A

7

a1 BETWEEN a2 AND a3(间隔测试)

检查a1是否在a2a3之间(包括)。 如果是,则条件变为真。 示例(A BETWEEN BC)为真。

8

IS INITIAL

如果变量的内容没有改变,并且它已被自动赋予其初始值,则条件为真。 示例(A IS INITIAL)不为真

9

不是初始

如果变量的内容已更改,则条件为真。 示例(A IS NOT INITIAL)为真。

       如果变量的数据类型或长度不匹配,则执行自动转换。 在比较不同数据类型的两个值时,对一个或两个值执行自动类型调整。 转换类型由数据类型和数据类型的首选顺序决定。

如果一个字段是类型I,则另一个字段转换为类型I.

如果一个字段是P类型,则另一个字段转换为类型P.

如果一个字段是类型D,则另一个字段转换为类型D.但是C和N类型不转换,它们直接比较。 类似于类型T的情况。

如果一个字段是类型N,另一个是类型C或X,则两个字段都转换为类型P.

如果一个字段是类型C,另一个是类型X,则X类型转换为类型C.

编号

按位运算符和说明

1

BIT-NOT

一元运算符,将十六进制数中的所有位翻转为相反的值。 例如,将此运算符应用于具有位级值10101010(例如“AA")的十六进制数将给出01010101

2

BIT-AND

此二进制运算符使用布尔AND运算符逐位比较每个字段。

3

BIT-XOR

二进制运算符,使用布尔XOR(异或)运算符逐位比较每个字段。

4

BIT-OR

二进制运算符,使用布尔OR运算符逐位比较每个字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值