当前位置:首页  >  表格软件专题  > 

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

作者:finereport

浏览:15,130

发布时间:2023.7.30

Java报表工具FineReport拥有参数联动功能。所谓报表参数联动指的是每一个后面的参数下拉框的值会根据前一个参数的值改变而改变。如下图中,参数studentno跟随上一个参数classno的值而变动,而参数grade又跟随studentno的值而变动,效果如下:

Java报表工具FineReport参数联动效果预览
下面看一下用Java报表工具FineReport实现这种参数联动效果的过程
1.报表表样设计

Java报表工具FineReport表样设计

2.参数设置
2.1 报表参数设计
打开菜单栏中报表|报表参数,清除之前的参数,新定义三个名为classno、studentno、grade的参数,如图:

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport参数定义 Java报表工具FineReport参数定义[/caption]

2.2 参数设计
2.2.1 打开报表参数设计面板,按照下图安排参数的位置

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport参数面板 Java报表工具FineReport参数面板[/caption]

2.2.2 控件设置
右击classno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择classno
定义栏选择数据查询的数据集ds1,预览可以看到我们需要的参数可选值位于第1列,因而在实际值和显示值处都选择列1

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport参数控件1 Java报表工具FineReport参数控件1[/caption]

右击studentno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择studentno
定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE CLASSNO='${classno}',其中参数外的单引号表示参数classno为字符串形式。
CLASSNO='${classno}' 限制了此处参数studentno是在上一个参数classno值的已定基础上进行筛选,实现了参数联动。
预览可以看到我们需要的参数可选值位于第2列,因而在实际值和显示值处都选择列2

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport参数控件2 Java报表工具FineReport参数控件2[/caption]

右击grade的控件,选择控件设置,选择下拉框类型编辑器,控件名选择grade
定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE STUDENTNO=${studentno},参数外没加单引号是因为studentno并不是字符串形式。
STUDENTNO=${studentno}限制了此处参数grade是在上一个参数studentno值的已定基础上进行筛选,实现了参数联动。
我们需要的参数可选值位于第6列,因而在实际值和显示值处都选择列6

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport参数控件3 Java报表工具FineReport参数控件3[/caption]

3. 添加过滤
切换到模板界面,由于单元格D2中的数据列GRADE有左父格A2和上父格D1,所以需要给A2和D1都添加过滤条件。
3.1 A2添加过滤条件
给A2添加如下2个过滤条件:

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport过滤设置1 Java报表工具FineReport过滤设置1[/caption]

3.2 D1添加过滤条件
给D1添加如下2个过滤条件:

[caption id="" align="aligncenter" width="500"]Java报表工具FineReport过滤设置2 Java报表工具FineReport过滤设置2[/caption]

4. 预览并保存

Java报表工具FineReport预览保存

报表模板保存为
%FR_HOME%WebReportWEB-INFreportletsdocTutorialParameterparalinkage.cpt

管理驾驶舱指南,业务指标,数据分析报表需要展现大量的数据和文字,提高信息传递的效率

报表工具产品更多介绍:www.finereport.com


在线客服

电话咨询

技术问题

投诉入口