用Java报表工具FineReport实现参数联动

Java报表工具FineReport拥有参数联动功能。所谓报表参数联动指的是每一个后面的参数下拉框的值会根据前一个参数的值改变而改变。如下图中,参数studentno跟随上一个参数classno的值而变动,而参数grade又跟随studentno的值而变动,效果如下: Java报表工具FineReport参数联动效果预览
下面看一下用Java报表工具FineReport实现这种参数联动效果的过程
1.报表表样设计
Java报表工具FineReport表样设计 2.参数设置
2.1 报表参数设计
打开菜单栏中报表|报表参数,清除之前的参数,新定义三个名为classno、studentno、grade的参数,如图:
Java报表工具FineReport参数定义Java报表工具FineReport参数定义
2.2 参数设计
2.2.1 打开报表参数设计面板,按照下图安排参数的位置
Java报表工具FineReport参数面板Java报表工具FineReport参数面板
2.2.2 控件设置
右击classno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择classno
定义栏选择数据查询的数据集ds1,预览可以看到我们需要的参数可选值位于第1列,因而在实际值和显示值处都选择列1
Java报表工具FineReport参数控件1Java报表工具FineReport参数控件1
右击studentno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择studentno
定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE CLASSNO=’${classno}’,其中参数外的单引号表示参数classno为字符串形式。
CLASSNO=’${classno}’ 限制了此处参数studentno是在上一个参数classno值的已定基础上进行筛选,实现了参数联动。
预览可以看到我们需要的参数可选值位于第2列,因而在实际值和显示值处都选择列2
Java报表工具FineReport参数控件2Java报表工具FineReport参数控件2
右击grade的控件,选择控件设置,选择下拉框类型编辑器,控件名选择grade
定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE STUDENTNO=${studentno},参数外没加单引号是因为studentno并不是字符串形式。
STUDENTNO=${studentno}限制了此处参数grade是在上一个参数studentno值的已定基础上进行筛选,实现了参数联动。
我们需要的参数可选值位于第6列,因而在实际值和显示值处都选择列6
Java报表工具FineReport参数控件3Java报表工具FineReport参数控件3
3. 添加过滤
切换到模板界面,由于单元格D2中的数据列GRADE有左父格A2和上父格D1,所以需要给A2和D1都添加过滤条件。
3.1 A2添加过滤条件
给A2添加如下2个过滤条件:
Java报表工具FineReport过滤设置1Java报表工具FineReport过滤设置1
3.2 D1添加过滤条件
给D1添加如下2个过滤条件:
Java报表工具FineReport过滤设置2Java报表工具FineReport过滤设置2
4. 预览并保存 Java报表工具FineReport预览保存 报表模板保存为
%FR_HOME%WebReportWEB-INFreportletsdocTutorialParameterparalinkage.cpt
立即发现·数据价值

推荐阅读

→ 如何搭建科学的MES报表系统? → 谈谈数据决策平台搭建的必要性 → 怎样用图表分析数据(一) → 甘特图(Gantt chart)深度解析 → BIRT报表深度解析之BIRT中国企业级用户流失之谜 → 用了这款自动化表格制作软件,跟手工表格说再见 → 信息化管理系统在企业中的价值 → 怎样用图表分析数据(二) → FineReport报表和水晶报表的比较 → 典型数据报表的样式和作用
版权所有©2017 南京帆软软件有限公司 | 苏ICP备14031611号-3
返回顶部