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

文 | 帆软数据应用研究院 2011-08-29 16:34:57

由于业务的需要,很多情况下需要在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. 保存报表模板
点击分页预览,效果如上图。

 

免费试用FineReport

阅读次数:4,828


FineReport能满足的需求有:


报表工具: 数据图表生成   企业报表平台   业务定制报表   数据填报报表   数据决策平台   炫酷数据大屏   中国式复杂报表  

功能优势: PC端/手机端    全局业务分析   权限精细管理   开源免费使用   30+种数据源   可整合ERP/OA   数据可视化     

数据分析: 数据分析模型   自助数据分析   业务主题分析   大数据运营      管理驾驶舱      0代码的操作   

行业应用: 地产项目管理   银行数据平台   金融数据中心   精益生产系统   智能制造管理   化工信息系统   零售物流自动化     
行业应用: 用户精准营销   管理信息系统   会员管理系统   销售统计分析   财务报表分析   人力资源系统   医药精细管理   ……

返回顶部