SAP:ABAP基础篇--字符串截取

来源:互联网 发布:软件行业数据 编辑:程序博客网 时间:2024/05/20 07:54

字符串截取的多种方式,笔记

 

1. 数字类型(numeric types)
(1).类型
   Abap支持三种数字类型:
     I:整型
       范围:-2147483648 to 2147483647
     P:16位
       范围:取决于小数位的长度
       注意事项:为了确保计算正确,必须在程序属性中把fixed point arithmetic选中,参考图1。
     F:浮点类型
       范围:+/- 2.2250738585072014E-308 to 1.7976931348623157E+308
       注意事项:因为长度的关系,所以尽量不要用两个该类型的数据相等作为判断条件
(2).定义方法
     [f1] type I.
     [f1] type P decimals [num].
     [f1] type F.
(3).使用
     I类型:
       主要是用于计数器,数量,索引,偏移量等等
       例如:爱ERP网      www.LoveErp.com
         *取得内表行数
         DATA: V_COUNTER TYPE I.
         V_COUNTER = LINES( I_TAB ).
         *根据索引读取内表中的数据
         DATA: V_INDEX TYPE I.
         READ TABLE I_TAB INDEX V_INDEX.
         *截取字符串
         DATA: V_OFFSET_START TYPE I,
               V_OFFSET_LENGTH   TYPE I,
               V_C(10) TYPE C,
                 L_C(3)   TYPE C.
         V_C = ‘ABCDEFGHIJ’.
         V_OFFSET_START = 3.
         V_OFFSET_LENGTH   = 5
         L_C = V_C+V_OFFSET_START(V_OFFSET_LENGTH).
         RESULT:
           L_C = ‘DEFGH’.
     P类型:
       主要和数据库中的QUAN类型关联;
       常用场合:大小,长度,重量,货币等有单位的场合
       *根据单位把数量写入字符型变量中
       WRITE:[数量] to [字符型变量] unit [单位].
     F类型:
       常用场合:计算
字符类型:
   一.包括:
         C:字符
         N:应该算是字符型的数字
         D:日期类型,标准长度8(YYYYMMDD),注意其初期值的判断,不是space,而是'00000000',判断语句可以使用is initial or not。
         T:时间类型,标准长度6(HHMMSS)
   二.具体使用:爱ERP网      www.LoveErp.com
     1.对字符串的操作
       1).SHIFT:截断字符串
         SHIFT {c} [BY {n} PLACES] [{mode}].:
            作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变。如果n超出字符串的长度,则字符串变空,所以在做此操作的时候要注意n的指定。可以首先获得该字符串的长度,方法:len=STRLEN(C)。
                 Mode:指定字符串截断的方向。
                   LEFT:从左边截断
                   RIGHT:从右边截断
                   CIRCULAR:把左边的字符放到右边。
           SHIFT {c} UP TO {str} {mode}.:
             作用:把字符串中在str以前的字符都去掉,同样可以指定mode,原理同上。
           SHIFT {c} LEFT DELETING LEADING {str}.
           SHIFT {c} RIGHT DELETING TRAILING {str}.:
             作用:这两个语句就是把字符串c中前的(LEFT)或者后的(RIGHT)的字符str都去掉。
           以上语句常用的场合:
             A.去掉字符串中的前导字符。例如:如果alv中定一了一个字段是10位的字符,里面放的是so,po等number,而你不想显示前面的0,那么就可以这样做:SHIFT {c} LEFT DELETING LEADING 0.
             B.已知某个字符串中包含固定的字符,想把这个固定字符前面的字符删掉,那么可以使用:SHIFT {c} UP TO{str}。例如:某个物料,通过增强mga00002和mga00003对其加了前缀,这个前缀部分是在某固定值表中取得的数据,在具体显示中,要把其前缀去掉。如TE-MRP-MAT1中想把te去掉,mrp表示该物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,则可以使用SHIFT {c} UP TO 'MRP'.

原创粉丝点击