润乾报表中临时变量的使用方法
一、临时变量的用法:
新建一张报表,设置一个报表参数arg1,在值表达式中输入一个字符串,比如“张三,中国,北京,海淀”:
当参数值传入报表后,需要把这个字符串分隔成几部分,分别显示在报表的不同单元格中,如下图所示:
接着,我们看一下报表达式的设置:
其中,各个表达式如下:
A1: =a=split(arg1,”,”)[1]
B1:=b=split(arg1,”,”)[2]
C1:=c=split(arg1,”,”)[3]
D1:=d=split(arg1,”,”)[4]
这四个表达式的意思是,把arg1这个字符串按照“,”分隔后,截取的第一段赋值给临时变量a,截取的第二段赋值给临时变量b,以此类推。
B3:=a
B4:=b
B5:=c
B6:=d
这四个表达式的意思是,分别显示临时变量的值。
预览效果如下:
二、临时变量的好处:
从上面这个例子我们可以看出,使用临时变量无需定义,这样会帮我们免去了些许麻烦,提高了我们制作报表的效率。不仅如此,有时候还能帮我们节省不少内存消耗,这样报表的计算效率也提高了。
在设计报表的时候,我们经常会遇到引用某个单元格的指来当作检索的一个条件,对报表展现的数据进行过滤,来看下面这个例子:
其中各个单元格表达式如下:
A1:=to(11,20),单元格动态纵向扩展11至20;
B1:=contractNO1,单元格通过临时变量,给变量动态赋值;
C1:=ds1.select1(CUSTOMERID,CONTRACTNO == B1),,单元格以B1单元格的值为检索值,从数据集ds1中检索出CONTRACTNO ==B1的客户编号。
预览结果如下:
可以看到,C1单元格的数据每次被检索出来都要获取B1单元格的值,如果在实际应用中,B列是不需要显示出来的,那么我们就要把B列隐藏掉.下面就通过临时变量来改写这个报表,参见下图:
其中:
A1:=to(11,20),单元格动态纵向扩展11至20;
B1:=CONTRACTNO1=”runqian00”+A1,ds1.select1(CUSTOMERID,CONTRACTNO == CONTRACTNO1);
将B1和C1单元格的表达式写在一个单元格里,用逗号隔开,这样,就不用多用一个隐藏列了。(注意此时检索条件为CONTRACTNO == contractno1)
从这两个例子对比我们可以发现,B1单元格只是起了一个过渡的作用,并不需要显示出来,通常这个时候,我们会将不需要显示的列设置为隐藏列,但隐藏列虽然不显示出来,可还是会占用内存的,如果扩展的行越多,占用的内存就会越多,如果可以适当的运用临时变量,那么就很容易解决隐藏行列对内存的占用了。