获取字符串的方法
获取字符串的方法
问题描述:最近接到这么一个客户问题,在报表中想获取字符串的子串。
例如:
据上图,要实现当代码9-12位为0000时 返回获取8位;不是0000时返回获取10位,一开始客户用left()函数,但发现效果无论输入的代码9到12位是不是0000 都是获取的10位。那么如何来实现类似于这种的需求呢,下面的例子是分别返回字符串的左、中、右子串
关键字:字符串,截取,获取
需求实现:
第一步:复杂报表设计" target="_blank" class="quieeLink1">设计报表截取字符串.raq,如图所示:
具体步骤如下:
1)添加1个普通参数和2个动态参数,如图:
其中arg1的值表达式为:123456780000
arg2的值表达式为:if(left(arg1,9,4)==”0000″,123456780000,12345678)
arg3的值表达式为:if(right(arg1,9,4)==”0000″,123456780000,12345678)
函数的具体用法请见附录
2)设计报表,参见第一步。
这样就用left(),mid(),right()三个函数分别实现各自获取的效果了。
第二步:预览报表,如图:
总结:这样分别用left(),mid(),right()来达到获取字符串的目的了。
附录:
left()函数说明:
获得源字符串左边的子串
语法:
left(string, n)
参数说明:
string 获得子串的源串
n 获得子串的长度
返回值:
字符型
示例:
例1:left(“abcdefg”,3) 返回:“abc”
mid()函数说明:
返回字符串的子串
语法:
mid(s, start{, end})
参数说明:
s 待获得子串的源串
start 获得子串的起始位置
end 获得子串的结束位置,缺省为源串的长度
返回值:
字符串型
示例:
例1:mid(“abcde”,0) 返回:abcde
例2:mid(“abcde”,1,2) 返回:b
例3:mid(“abcde”,3) 返回:de
right()函数说明:
获得字符串右边的子串
相关函数:left() 获得源字符串左边的子串
mid() 获得源字符串中间的子串
语法:
right(s, n)
参数说明:
s 待获得子串的源串
n 获得子串的长度
返回值:
字符串型
示例:
例1:right(“abced”,2)返回:“ed”