求助,FineReport使用SQL数据集参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助,FineReport使用SQL数据集参数相关的知识,希望对你有一定的参考价值。
大致的步骤就是先取出所有数据,再进行过滤,取数,过滤。
简单应用:SELECT * FROM 销量 where 地区 = '$地区'
带公式的应用:SELECT * FROM 订单 where 1=1 $if(len(area) == 0,"","and 货主地区 = '" + area + "'") $if(len(province) == 0,"","and 货主省份 = '" + province + "'")
具体步骤如下:
1、打开报表
2、定义数据源参数
修改数据集sql语句为:SELECT * FROM 销量 where 地区 = '$地区',点击下方的刷新按钮显示出参数,默认值设置为“华北”
3、过滤数据
若参数地区的值为华北,那么$地区这个参数宏最终的值就是华北,数据集sql即为:SELECT * FROM 销量 where 地区 = '华北'
4、制作参数界面
5、保存报表并发布
参考技术A 类似通信、监控行业,每天都有海量数据生成,数据库表中总数据量非常大,而报表中往往只要当天的几百条数据就可以了。如果使用报表参数,就需要先取出所有数据,再进行过滤,取数+过滤,将消耗大量时间;
简单应用
可以在定义数据集sql的时候,直接使用where条件过滤出需要的数据,从而大大缩短报表取数时间,类似下面的sql:
SELECT * FROM 销量 where 地区 = '$地区'
带公式的应用
数据集sql中可以使用参数宏$动态地生成过滤条件,$中的语句在FineReport报表中执行,将$的执行结果与sql语句拼接起来形成最终的查询语句,传递给数据库执行,可以使用多个$,如下语句:
SELECT * FROM 订单 where 1=1 $if(len(area) == 0,"","and 货主地区 = '" + area + "'") $if(len(province) == 0,"","and 货主省份 = '" + province + "'")
$中可以使用所有内置的FR公式,如if函数;
tomcat部署FineReport成功,访问reportlets下的自带模板cpt文件提示数据集配置错误
FineReport是一款数据展示(报表)、数据查询(参数)和数据录入(填报)功能集于一身,用来辅助开发基于BS软件系统的工具,能够革命性地加快软件开发速度,提高软件稳定性。他本质上还是一个servlet。
关于如何部署finereport可以参考官方文档:http://help.finereport.com/
部署完后我们在设计器中预览模板文件,数据库是可以访问的,而嵌入式部署到tomcat中,访问模板文件会报错:no such table:销量。
解决办法:导入FineReport安装目录下 E:\FineReport_8.0\WebReport\FRDemo.db,将该文件导入到项目目录下的WebContent目录下即可。重新启动tomcat 并访问即可。
以上是关于求助,FineReport使用SQL数据集参数的主要内容,如果未能解决你的问题,请参考以下文章