Java报表软件FineReport实现动态显示参数控件

由于业务的需要,很多情况下需要在web报表中实现这样的效果:当满足某个条件时,某些查询条件才显示出来,如下图所示,选择年报,显示年的下拉框控件;选择月报,显示年和月的下拉框控件;选择日报,显示日期控件:
年报日期控件
月报日期控件
日报日期控件
下面便来看一下在Web报表软件FineReport中如何实现上述效果
//通过报表控件的visible()、invisible()属性控制其可视与不可视
var [Widget] = form.getWidgetByName(“[ParaName]”); //通过控件名获取控件
[Widget].visible(); //设置该控件可见
[Widget].invisible(); //设置该控件不可见
具体步骤如下:
1. 打开报表模板
打开模板:
%FR_HOME%WebReportWEB-INFreportletsdocParameterDynamicSQLDynamicSQL.cpt
2. 修改报表数据集
将数据集修改为:
SELECT * FROM 订单 where 1=1 ${if(type==”日报”,”and format(订购日期,’yyyy-mm-dd’) = ‘” + date + “‘”,if(type==”月报”,”and month(订购日期) = “+ month + ” and year(订购日期) = ” + year ,”and year(订购日期) = ” + year ))}
给参数type设置默认值为日报,参数date设置默认值的类型为字符串型值为2010-01-03。
3. 报表表样修改
将表样修改成如下样式:
报表表样
给A3设置形态,自定义数据,实际值与对应的显示值分别为:日报,日期;月报,年月;年报,年份。
在B3单元格中增加如下公式:=if(type==”日报”,$date,if(type==”月报”,$year+”.”+$month,$year))
4. 报表参数界面设置
将参数界面设置成如下样式:
报表参数界面
设置参数type的控件类型为下拉框,自定义值实际值与显示值都为日报,月报,年报。
设置参数year的控件类型为下拉框,自定义值显示值与实际值都为2010,2011。
设置参数month的控件类型也为下拉框,其值为公式,在实际值出填写公式=range(1,6)即可。
设置参数date的控件类型为日期,返回值类型为默认的字符串型。
5. JS事件
给参数type的下拉框控件增加编辑后事件,具体的JS代码如下:
报表控件js代码
注:此段代码判断type参数的值,若是日报,则只显示date控件,若是月报,则显示year和month控件,若是年报,则只显示year控件。
6. 保存报表模板
点击分页预览,效果如上图。
立即发现·数据价值

推荐阅读

→ 对企业而言,为何要选择优质的内部报表系统? → 一款简单、实时、酷炫的图表制作软件 → 自定义报表之自定义参数界面 → 可视化分析平台对企业作用几何? → 生产报表的自动化实现方案 → 如何搭建科学的MES报表系统? → 典型数据报表的样式和作用 → BIRT报表深度解析之BIRT中国企业级用户流失之谜 → FineReport报表和水晶报表的比较 → 3张报表搞定财务分析
版权所有©2017 南京帆软软件有限公司 | 苏ICP备14031611号-3
返回顶部