河南网站推广优化公司,wordpress文章自动摘要,手机微网站怎么做的,岳阳网站建设哪家好对于普通的没有olap分析功能的快逸报表而言#xff0c;一旦发布到web页面后#xff0c;其样式就被固定了#xff0c;如果想把报表换种形式展现通常的做法是重新设计一张报表模板来实现#xff0c;难道快逸报表就没有一种特殊的方法可以解决这样的需求吗#xff1f;答案就在…对于普通的没有olap分析功能的快逸报表而言一旦发布到web页面后其样式就被固定了如果想把报表换种形式展现通常的做法是重新设计一张报表模板来实现难道快逸报表就没有一种特殊的方法可以解决这样的需求吗答案就在下面的例子中。首先来看这样一张报表(quieeReport\webapps\quiee\reportFiles\基础报表\交叉报表.raq)在页面上的展现效果如下图:从上图可以看到这是一个多维交叉分组报表上表头是地区/城市左表头是日期。如果想动态改变一下报表的样式左表头变成地区和城市的分组展现上表头变成年份和月份的分组展现并且只通过一张报表这就需要用文章标题中提到的利用参数实现行列变换的方法了。实现思路1. 设计单元格表达式根据参数不同而变化从而实现样式跟随表达式变动。2点击一个超链接按钮通过url强制传参给报表中的单元格从而控制报表的样式。本文就以此报表为础做一个可以行列互换的功能(上表头和左表头互换)实现报表在web页面上样式改变。第一步设计器中选择配置–参数给报表增加一个参数我们把这个参数叫做转换参数顾名思义这个参数就是控制行列转换用的。第二步修改单元格表达式让单元格接受参数我们把C2单元格的表达式修改为if(arg1’1′,ds1.group(year(订购日期),false,订购日期!null)”年”,ds1.group(货主地区,false,货主地区!null))。此表达式的意思是当参数arg1的值为1时C2单元格的表达式为ds1.group(year(订购日期),false,订购日期!null)”年”否则默认为ds1.group(货主地区,false,货主地区!null)。关于快逸报表中if()函数的用法请参考快逸帮助文档中的相关介绍。据这个逻辑依照地区与城市之间的关系年份和月份之间的关系把单元格的表达式做如下修改C3if(arg1’1′,ds1.group(month(订购日期),false)”月”,ds1.group(货主城市,false))A4if(arg1’1′,ds1.group(货主地区,false,货主地区!null),ds1.group(year(订购日期),false,订购日期!null)”年”)B4if(arg1’1′,ds1.group(货主城市,false),ds1.group(month(订购日期),false)”月”)。第三步修改交叉表头并在其中设置超链接红色框中的交叉表头区是整张报表的关键既要在行列转换的时候做到文字跟随变化又要充当转换控制的按钮。修改此单元格的表达式为if(arg1’1′,”分布,运货费,时间”,”时间,运货费,分布”)然后在此单元格的属性中加入超链接属性if(arg1null,”/reportJsp/showReport.jsp?raq/交叉报表.raqarg11″,”/reportJsp/showReport.jsp?raq/交叉报表.raq”)这个超链接的作用就是点击这个单元格赋予arg参数值然后通过超链接中的url把参数传递到jsp中的报表里通过对参数值的判断来确定超链接中的url这样就可以来回转换防止只能转换一次的情况出现。(超链接也可以设置在其他单元格中本文中这样做是为了美观且容易理解)接下来我们把报表发布到页面上去看效果点击设置了超链接的表头单元格后url自动转换为/reportJsp/showReport.jsp?raq/交叉报表.raqarg11强制把参数arg1传给报表的各个单元格单元格表达式发生变化报表样式也随之变化于是实现了行列互换的效果此时如果想转换到前一种样式只需再点击一次表头单元格即可。在这个报表中我们运用了很多颇具技巧性的方法例如参数结合超链接的运用if()函数的运用往往一些看似很复杂的报表通过一些技巧性的做法都是可以迎刃而解的。