求助,FineReport使用SQL数据集参数

 我来答
帆软
2018-07-27 · 上BI选帆软,专注BI十三年!
帆软
帆软软件是世界领先的商业智能和数据分析平台提供商,沉淀数据分析领域十余年,致力于为全球企业提供一站式数据分析解决方案;同时也是行业优质交流平台的组织者。
向TA提问
展开全部

大致的步骤就是先取出所有数据,再进行过滤,取数,过滤。

简单应用: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、保存报表并发布

刮狈拓
2016-09-27 · 超过68用户采纳过TA的回答
知道答主
回答量:160
采纳率:100%
帮助的人:87.6万
展开全部
类似通信、监控行业,每天都有海量数据生成,数据库表中总数据量非常大,而报表中往往只要当天的几百条数据就可以了。
如果使用报表参数,就需要先取出所有数据,再进行过滤,取数+过滤,将消耗大量时间;
简单应用
可以在定义数据集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函数;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式