润乾报表的配置与整合(二)

润乾报表
placeholder image
admin 发布于:2015-05-30 00:30:00
阅读:loading

上一篇我们对润乾报表有了一个大概的了解,其实不把报表整合到我们自己的项目当中这好像显得没有什么意义,本篇文章从新建一个web工程整合润乾报表的配置,并且通过页面实现一个带有参数查询的报表查询功能。

创建一个web工程整合报表相关配置

我创建的这个工程名字叫runqianDemo,这一步没什么好说的,找到润乾报表的DEMO服务器所在目录(上文中示例中的127.0.0.1:6001/demo应用所在的位置),以下分步介绍整合的步骤,本机存放目录截图为:

image.png

1、配置部分

从WEB-INF目录开始,将web.xml开始,找到上图目录文件夹中的WEB-INF/web.xml中内容(有个关于自定义标签的tag-lib配置,不是应该存放在<jsp-config>标签下面吗),将其复制到runqianDemo的同名文件中去,此目录下还有很多配置文件,为了方便无误,都拷贝到同级目录下面。最重要的一个授权文件是需要放在WEB-INF/classes目录下面。

2、解析运行报表部分

将demo目录下的reportFiles和reportJsp两个文件夹同样复制走,当然reportFiles文件中的内容不是必须的,可以不要,此目录是存放报表设计的raq文件的目录,当然这些都是按照默认的配置来的,这些目录也都是可以任意存放的,可以在相应的配置文件中修改。 

3、其他配置项修改

由于我们要读取数据库,还需要配置一个数据源,根据我的使用经验发现它用的是一个JNDI的数据源,我们可以修改tomcat的配置来实现,也可以新建一个配置文件context.xml放置在runqianDemo/WebRoot/META-INF目录下,并添加数据库驱动jar,我使用mysql的为例。完了之后启动tomcat服务器测试一下,正常情况是可以启动成功的。

修改reportConfig.xml页面的25行,将空的内容体修改为:myDataSource,mysql,gbk此字符串,分别是数据源的名称,数据库类型,字符编码。

另外传递参数的中文乱码问题的解决,修改报表的展示文件showReport.jsp,将其中的29行做如下修改:

paramValue = newString(paramValue.getBytes("iso-8859-1") , "gbk");

来转换字符编码,乱码参考截图为: 

image.png

image.png

4、设计带参数的报表查询

    使用设计器来改造昨天的用户报表,我们给其添加2个查询参数,分别是中文字符串、字符串数组(查询时传递中文尽量把可能出现的问题暴露出来,另外in查询语句传递参数也是比较特殊的),通过菜单栏的“配置——参数”栏来添加。添加完成后的截图如下: 

image.png

    此时,由于是查询报表,则报表的查询条件并非是必须输入项,就需要我们来判断当name参数不为null时,我们不执行name like ''部分的sql,呵呵,当然这里不是这么写的,通过“配置——数据集”处的浏览数据按钮,我们发现此时再预览数据就弹出了一个参数输入确认的窗口了,我们可以在参数窗口输入需要查询的参数也可以不输入。

    通过此处的编辑按钮,将sql编辑器窗口切换至语法,将sql如下:

image.png

特别需要注意的是每组and 条件后面都跟了一个or ?is null ,用它来匹配查询条件为null的情况,即没有输入查询条件时用于匹配所有数据,如果输入查询条件则被or前面的表达式所匹配,第一个?表示传递过来的参数值,第二个?表示参数值为null时查询全部的匹配项,第三个?是一个in数组,页面传递过来的是是一个以,逗号分割的字符串,第四个?是最复杂的了,使用参数表达式,如果这个字符串组等于null时,返回“NULL”字符串来与'NULL'来匹配相当于where后面的1=1,当此参数不等于null时,表达式返回“NotNull”来达到此条件不生效的目的,即"NotNull" ="NULL",肯定不匹配故由or前面部分的in来完全匹配。

同时非常重要的一个设置是将tab切换到参数项下,为每个?添加参数的取值,这里共有4个?,故相当于传递了4个参数,如下图所示:

image.png

同时我们也可以点击浏览数据,来验证我们每一步的设置是否正确,如果出现错误则会有错误提示,另外通过菜单栏“配置——控制台”来查看错误提示信息等。报表设计完毕,将保存的user.raq放置reportFiles目录下。

5、使用自己项目页面来展示报表

运行效果.gif

 点赞


 发表评论

当前回复:作者

 评论列表


留言区