(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轴。
这里写图片描述

扫描二维码关注公众号,回复: 1072808 查看本文章

预览下
这里写图片描述

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

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

猜你喜欢

转载自blog.csdn.net/yeyinglingfeng/article/details/76212176