(6)birt笔记 - 通过传递变量来动态修改数据集SQL

其实想想这一篇应该写在前面一点的,主要懒癌发作… _ (:3」∠*)_。
给birt报表数据集传参数构建动态数据集的方式挺多的,这里介绍2种比较常用的:
1.通过?占位符传递参数实现
2.JavaScript脚本拼接SQL语句实现
事先准备:创建一个birt report模板
这里写图片描述

新建数据集,Data Source右键新建
这里写图片描述

新建数据源,点击next-》finish,这里因为还没有添加SQL,所以finish会报错,直接点OK,不用管,一共大概4个错误提示,一路OK
这里写图片描述

新建变量参数,按照自己需求建。
这里写图片描述
这里写图片描述
这里写图片描述

下面是重点,开始创建动态数据源。介绍2种方法

1.在SQL语句中使用?符传递

这种方法有一个缺点,就是写SQL的时候,不能够写sum,count啊这些函数,所以建议第二种方法,不过姑且还是讲下。
选择数据源,双击,写下如下SQL,?算是一个占位符,和C中print语句中的占位符类似,示例中因为只传了一个userId,所示就只有一个?,如果传多个并且该SQL中也用到了很多个,就加相应数量的?
这里写图片描述

这里将?与实际的变量参数绑定,在SQL中?的出现顺序就是这里从上至下的顺序
这里写图片描述

2.JavaScript脚本创建动态SQL

这里写图片描述

按照JavaScript语法拼接SQL语句,实现动态SQL查询,这里语法完全遵循JS语法,完全遵循JS语法,完全遵循JS语法,重要的是要讲3遍,函数也都可以用,所以,尽情处理传过来的参数吧。这里拼接完的SQL语句也可以包含函数,所以尽量少用方法1吧,或者2者混合使用也可以。
这里写图片描述


以上通过2种不同的方式将数据源创建完毕
预览一下数据查询结果
这里写图片描述

插入个图表看看具体效果,选第一个柱状图就行,选择刚才新建完的数据源,将想要查询展示的列名拖入X/Y轴。
这里写图片描述

预览下
这里写图片描述

这里出现了提示我们输入userId的提示框,输入Atelier graphique,查看查询结果
这里写图片描述

完成,这里其实还可以通过url传递数据来跳过上一图,大致如下,查看下图中的url,可以看到__format=pdf,将该段后面的都删掉,加上 &userId=’Atelier graphique’ ,然后回车,与上面通过弹窗输入数据的结果是一样的,看到这里,你是不是眼前一亮?将birt工程单独部署,让有使用birt报表需求的项目模块通过url远程访问即可生成报表,分离了业务功能,降低了耦合。当然,把birt整合到自己项目中也可以,就是以后要换报表软件的时候拆分就麻烦点了。
_ (:3」∠*)_
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值