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> 单位,如类型P的T006数据库表中指定。 |
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是否在a2和a3之间(包括)。 如果是,则条件变为真。 示例(A BETWEEN B和C)为真。 |
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运算符逐位比较每个字段。 |