报表知识库
截取字段中的部分字符
在某些时候,数据库中的字段中的数据比较特殊。如一个varchar类型的字段”城市编号”,该字段中的数据是这样:”上海,,123″,”杭州,,123″。像这种包含了汉字,逗号和数字且有一定规律的字段,在报表中取数的时候可能只需要将前面的汉字展现出来,后面的逗号和数字无需展现。
那么该如何来截取这前面的一部分汉字呢?
这种功能可以通过split()和隐藏行来实现。下面具体看一下实现步骤。
首先定义一张报表,如下图:
其中,ds1数据集中的数据如下图:
在A1中写:=ds1.select(城市编号,false),将城市编号查询出来,
在B1中写:=split(A1,”,”,true),将A1中的数据解析成多个子串,并且也解析逗号。
预览效果如下图:
然后选中B1单元格,在右边属性栏中找到”隐藏行”,在其表达式中写:
if(row()%3==0 || value()==””,true,false),意思是将行号为3的倍数的行和单元格值为空的行隐藏起来。
那么,这 时候预览效果如下图:
但是需要注意一点:如果报表有报表头,或者这些数据并不是位于报表中的第一行,那么隐藏行表达式中的”row()%3==0″中的3需要根据实际情况而改变。
以下是split()说明:
函数说明:
将字符串按分割符分割成多个子串
语法:
split( srcExp,sepExp{,boolExp})
参数说明:
srcExp 待分割的字符串表达式
sepExp 分隔符表达式
boolExp bool型,是否解析引号、括号里的分隔符,
为true时解析,为false时不解析,缺省为false