润乾报表的配置与整合(二)
润乾报表admin 发布于:2015-05-30 00:30:00
阅读:loading
上一篇我们对润乾报表有了一个大概的了解,其实不把报表整合到我们自己的项目当中这好像显得没有什么意义,本篇文章从新建一个web工程整合润乾报表的配置,并且通过页面实现一个带有参数查询的报表查询功能。
创建一个web工程整合报表相关配置
我创建的这个工程名字叫runqianDemo,这一步没什么好说的,找到润乾报表的DEMO服务器所在目录(上文中示例中的127.0.0.1:6001/demo应用所在的位置),以下分步介绍整合的步骤,本机存放目录截图为:
从WEB-INF目录开始,将web.xml开始,找到上图目录文件夹中的WEB-INF/web.xml中内容(有个关于自定义标签的tag-lib配置,不是应该存放在<jsp-config>标签下面吗),将其复制到runqianDemo的同名文件中去,此目录下还有很多配置文件,为了方便无误,都拷贝到同级目录下面。最重要的一个授权文件是需要放在WEB-INF/classes目录下面。
将demo目录下的reportFiles和reportJsp两个文件夹同样复制走,当然reportFiles文件中的内容不是必须的,可以不要,此目录是存放报表设计的raq文件的目录,当然这些都是按照默认的配置来的,这些目录也都是可以任意存放的,可以在相应的配置文件中修改。
由于我们要读取数据库,还需要配置一个数据源,根据我的使用经验发现它用的是一个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");
来转换字符编码,乱码参考截图为:
使用设计器来改造昨天的用户报表,我们给其添加2个查询参数,分别是中文字符串、字符串数组(查询时传递中文尽量把可能出现的问题暴露出来,另外in查询语句传递参数也是比较特殊的),通过菜单栏的“配置——参数”栏来添加。添加完成后的截图如下:
此时,由于是查询报表,则报表的查询条件并非是必须输入项,就需要我们来判断当name参数不为null时,我们不执行name like ''部分的sql,呵呵,当然这里不是这么写的,通过“配置——数据集”处的浏览数据按钮,我们发现此时再预览数据就弹出了一个参数输入确认的窗口了,我们可以在参数窗口输入需要查询的参数也可以不输入。
通过此处的编辑按钮,将sql编辑器窗口切换至语法,将sql如下:
特别需要注意的是每组and 条件后面都跟了一个or ?is null ,用它来匹配查询条件为null的情况,即没有输入查询条件时用于匹配所有数据,如果输入查询条件则被or前面的表达式所匹配,第一个?表示传递过来的参数值,第二个?表示参数值为null时查询全部的匹配项,第三个?是一个in数组,页面传递过来的是是一个以,逗号分割的字符串,第四个?是最复杂的了,使用参数表达式,如果这个字符串组等于null时,返回“NULL”字符串来与'NULL'来匹配相当于where后面的1=1,当此参数不等于null时,表达式返回“NotNull”来达到此条件不生效的目的,即"NotNull" ="NULL",肯定不匹配故由or前面部分的in来完全匹配。
同时非常重要的一个设置是将tab切换到参数项下,为每个?添加参数的取值,这里共有4个?,故相当于传递了4个参数,如下图所示:
同时我们也可以点击浏览数据,来验证我们每一步的设置是否正确,如果出现错误则会有错误提示,另外通过菜单栏“配置——控制台”来查看错误提示信息等。报表设计完毕,将保存的user.raq放置reportFiles目录下。
点赞