java薪资年龄交叉表_巧用参数实现交叉表行列互换

对于普通的没有olap分析功能的快逸报表而言,一旦发布到web页面后,其样式就被固定了,如果想把报表换种形式展现通常的做法是重新设计一张报表模板来实现,难道快逸报表就没有一种特殊的方法可以解决这样的需求吗?答案就在下面的例子中。

首先来看这样一张报表(quieeReport\webapps\quiee\reportFiles\基础报表\交叉报表.raq),在页面上的展现效果如下图:

xn-tlq48jg9l3vc9u2e01j.png

从上图可以看到这是一个多维交叉分组报表,上表头是地区/城市,左表头是日期。

如果想动态改变一下报表的样式,左表头变成地区和城市的分组展现,上表头变成年份和月份的分组展现,并且只通过一张报表,这就需要用文章标题中提到的:利用参数实现行列变换的方法了。

实现思路:

1. 设计单元格表达式根据参数不同而变化,从而实现样式跟随表达式变动。

2.点击一个超链接按钮通过url强制传参给报表中的单元格,从而控制报表的样式。

本文就以此报表为础,做一个可以行列互换的功能(上表头和左表头互换),实现报表在web页面上样式改变。

第一步:设计器中选择配置–参数

给报表增加一个参数,我们把这个参数叫做转换参数,顾名思义,这个参数就是控制行列转换用的。

xn-8nr85pxwd19cgweuq3e44e2lk.png

第二步:修改单元格表达式,让单元格接受参数

xn-tlq44jud79wukhukbx5jvz5gca498pehb.png

我们把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()函数的用法请参考快逸帮助文档中的相关介绍。

据这个逻辑,依照地区与城市之间的关系,年份和月份之间的关系,把单元格的表达式做如下修改:

C3:=if(@arg1==’1′,ds1.group(month(订购日期),false)+”月”,ds1.group(货主城市,false))

A4:=if(@arg1==’1′,ds1.group(货主地区,false,货主地区!=null),ds1.group(year(订购日期),false,订购日期!=null)+”年”),

B4:=if(@arg1==’1′,ds1.group(货主城市,false),ds1.group(month(订购日期),false)+”月”)。

第三步:修改交叉表头并在其中设置超链接

xn-tlq44au8fs6grlj6iilj8da011p.png

红色框中的交叉表头区是整张报表的关键,既要在行列转换的时候做到文字跟随变化,又要充当转换控制的按钮。

修改此单元格的表达式为:=if(@arg1==’1′,”分布,运货费,时间”,”时间,运货费,分布”)

然后在此单元格的属性中:

xn-7gt95fgfm8gurbk36k2qh4rflom.png

加入超链接属性:

if(@arg1==null,”/reportJsp/showReport.jsp?raq=/交叉报表.raq&arg1=1″,”/reportJsp/showReport.jsp?raq=/交叉报表.raq”)

xn-66tq4d7vap9kjs8a8xl2ni39d1ubiyz.png

这个超链接的作用就是点击这个单元格,赋予arg参数值,然后通过超链接中的url把参数传递到jsp中的报表里,通过对参数值的判断,来确定超链接中的url,这样就可以来回转换,防止只能转换一次的情况出现。(超链接也可以设置在其他单元格中,本文中这样做是为了美观且容易理解)

接下来,我们把报表发布到页面上去看效果:

xn-1bryeq94b1tcb1a733nufas66clwbh37aoyc.png

点击设置了超链接的表头单元格后,url自动转换为/reportJsp/showReport.jsp?raq=/交叉报表.raq&arg1=1,强制把参数arg=1传给报表的各个单元格,单元格表达式发生变化,报表样式也随之变化,于是实现了行列互换的效果:

xn-1brt1cj6t1vcb1a733nufas66clwbh37aoyc.png

此时,如果想转换到前一种样式,只需再点击一次表头单元格即可。

在这个报表中,我们运用了很多颇具技巧性的方法,例如参数结合超链接的运用,if()函数的运用,往往一些看似很复杂的报表,通过一些技巧性的做法都是可以迎刃而解的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring 环境

引用:http://www.189works.com/article-96241-1.html 准备阶段: 到Spring官网下载所需的API包,其中spring-framework-X.X.X.RELEASE-with-docs.zip压缩包需要下载,里面的dist目录下有所需的API,还有一个是com.springsource.org.apache.common…

msf生成php,使用msfpayload生成后门(asp,aspx,php,jsp,exe)等

msfpayload与msfencode参数说明执行msfpayload -h查看都有哪些参数执行msfencode -h查看都有哪些参数生成backdoor类型可以生成asp、aspx、php、jsp、war、exe等多种类型,下面介绍的使用方法就不一一测试了.msfpayload生成linux backdoor目标机器运行linux2,本机监听下端口,使用…

概括ADO.NET数据库连接的所有形式(基础)

概括ADO.NET数据库连接的所有形式(基础) 可能大家进来会喷笔者,这么基础的知识还放在首页。那么笔者就要问问大家了,你可能熟悉其中部分数据库读取的形式,但是熟悉全部的估计很少,或者你完全忘记了,因为这些…

从像素坐标到相机坐标_【视觉知识】机器视觉几何坐标概论

作者:林青春来源:知乎一、机器视觉几何坐标概论机器视觉系统有三大坐标系,分别是:1、世界坐标系,2、摄像机坐标系,3、图像(像素)坐标系。1、世界坐标系世界坐标系(Xw,Yw,Zw)是目标物…

vb如何嵌套chrome_译丨如何为开源软件做出贡献

原文:How to Contribute to Open Source Software作者:Matt Eland译者:博轩为保证文章的可读性,本文采用意译,转载请保留原文链接前段时间参加了2020年1月11日Node party线下分享,justjavac 大佬分享的主题…

codesys中打开linux端的串口_CODESYS版本3.5 SP14 Patch 3发布

此版本有以下内容更新主要功能概述:CODESYS Engineering改进了智能输入辅助、监视列表、监视、 CPU负载、编译调试等;新的数据类型:LREAL或REAL中的__VECTOR [3];用于同步任务特别是多核架构的的原子操作符;一般改进:在源代码中的设备树、全局…

合并果子(Vijos P1097)

刚刚做出这道题,感觉很兴奋啊,对于我这种弱菜来说能完美的AC这道题真是令人振奋不已啊! (情不自禁的将AC记录发上来了,勿怪勿怪!) 这道题是我们向总点名要做的,这几天学了很多新内容…

vim 删除行_【收藏】138条 Vim 命令、操作、快捷键全

关注我,你的眼睛会怀孕命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同…

vlookup练习_那个vlookup,我总是学不会啊

在Excel函数中,有那么的一个万金油Excel函数,它既可以正向查找,逆向查找,还可以多条件查找,它就是Vlookup。Vlookup与IF、sumifs/countifs誉为四大必学Excel函数。以下内容节选自【快速入门Excel基础教程】中的第4-2章…