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

阅读提示:

文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式。

FineReport最新版免费试用:https://www.finereport.com/product/active

FineReport最新版使用教程:https://help.fanruan.com/finereport/

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

5ea90f2991bd96bd32f17a268afaedff.png

下面看一下用Java报表工具FineReport实现这种参数联动效果的过程

1.报表表样设计

0c862eb0712dc07a7dba61e3ab3d7084.png

2.参数设置

2.1 报表参数设计

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

30385f37330607fceef395dd1de98c62.png

Java报表工具FineReport参数定义

2.2 参数设计

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

d9793a05ef54f50130026507ffc9073c.png

Java报表工具FineReport参数面板

2.2.2 控件设置

右击classno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择classno

定义栏选择数据查询的数据集ds1,预览可以看到我们需要的参数可选值位于第1列,因而在实际值和显示值处都选择列1

a8882e2a5ae14a159e2c9125b66f4239.png

Java报表工具FineReport参数控件1

右击studentno的控件,选择控件设置,选择下拉框类型编辑器,控件名选择studentno

定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE CLASSNO=’${classno}’,其中参数外的单引号表示参数classno为字符串形式。

CLASSNO=’${classno}’ 限制了此处参数studentno是在上一个参数classno值的已定基础上进行筛选,实现了参数联动。

预览可以看到我们需要的参数可选值位于第2列,因而在实际值和显示值处都选择列2

4a39fe68dcc09a42945e44e8166ebc13.png

Java报表工具FineReport参数控件2

右击grade的控件,选择控件设置,选择下拉框类型编辑器,控件名选择grade

定义栏选择动态SQL,语句为SELECT * FROM STSCORE WHERE STUDENTNO=${studentno},参数外没加单引号是因为studentno并不是字符串形式。

STUDENTNO=${studentno}限制了此处参数grade是在上一个参数studentno值的已定基础上进行筛选,实现了参数联动。

我们需要的参数可选值位于第6列,因而在实际值和显示值处都选择列6

050f06d2f8363d97b0d830951c13cfa4.png

Java报表工具FineReport参数控件3

3. 添加过滤

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

3.1 A2添加过滤条件

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

585bc6f1f2b4e5a379d6689f1a2b5ef9.png

Java报表工具FineReport过滤设置1

3.2 D1添加过滤条件

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

a4b1770c4c0c6bde5c0e845ee5b8e558.png

Java报表工具FineReport过滤设置2

4. 预览并保存

87668b71db97c7f3bc40fb1e0c23fab1.png

将报表模板保存为

%FR_HOME%WebReportWEB-INFreportletsdocTutorialParameterparalinkage.cpt

阅读次数:7,422

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值