用ireport 3.7.6生成动态报表,写的sql语句在数据库语句里面能插到5条,但在预览里面只显示第一条,为什么?

Jasper + ireport 集成报表到Web应用,操作说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Jasper + ireport 集成报表到Web应用,操作说明|J​a​s​p​e​r​ ​+​ ​i​r​e​p​o​r​t​ ​集​成​报​表​到​W​e​b​应​用
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢使用Parameters动态生成where语句
本文所属图书&>&
本书主要讲解Java技术领域著名的开源报表框架JasperReports和iReport软件的使用,重点介绍如何使用iReport报表模板进行报表的开发。全书共8章:初识JasperReports(介绍如何使用iReport软件搭建报表开发环境);...&&
使用Parameters对象还可以动态生成where语句。
创建一个报表,设计报表使用的SQL语句,如图3.27所示。
图3.27& 设置报表使用的SQL语句
在报表中继续添加4个Fields对象并添加到Detail 1栏中。
添加一个Parameters对象,Parameters属性设置如图3.28所示。
图3.28& 设置whereSQL属性参数
创建Web项目,Servlet核心代码如下:
public class test extends HttpServlet
{&& public void doGet(HttpServletRequest request, HttpServletResponse response)
&&& throws ServletException, IOException
&&& {&& try
&&&&&&& {&& ServletOutputStream servletOutputStream = response.getOutputStream();
&&&&&&&&&&& InputStream reportStream = getServletConfig().getServletContext()
&&&&&&&&&&& .getResourceAsStream(&report4.jer&);
&&&&&&&&&&& String url = &jdbc:sqlserver://localhost:1079;databaseName=ghydb&;
&&&&&&&&&&& String username = &sa&;
&&&&&&&&&&& String password = &&;
&&&&&&&&&&& String driverName = &com.microsoft.sqlserver.jdbc.SQLServerDriver&;
&&&&&&&&&&& Class.forName(driverName);
&&&&&&&&&&&&& Connection connection=DriverManager.getConnection(url, username,password);
&&&&&&&&&&& HashMap parameters = new HashMap();
&&&&&&&&&&& parameters.put(&whereSQL&, &where id=3&);
&&&&&&&&&&& JerRunManager.runReportToPdfStream(reportStream,
&&&&&&&&&&& servletOutputStream, parameters, connection);
&&&&&&&&&&& response.setContentType(&application/pdf&);
&&&&&&&&&&& servletOutputStream.flush();
&&&&&&&&&&& servletOutputStream.close();
&&&&&&& catch (JRException e)
&&&&&&& {&& // TODO Auto-generated catch block
&&&&&&&&&&& e.printStackTrace();
&&&&&&& catch (ClassNotFoundException e)
&&&&&&& {&& // TODO Auto-generated catch block
&&&&&&&&&&& e.printStackTrace();
&&&&&&& catch (SQLException e)
&&&&&&& {&& // TODO Auto-generated catch block
&&&&&&&&&&& e.printStackTrace();
程序运行后并没有如期地打印出id=3的记录,而是出现了异常,效果如图3.29所示。
图3.29& 出现了异常
为什么会出现这种情况呢?这是因为iReport不支持使用Parameters传递where或group by子句,如何解决呢?很简单,使用$P!{ParameterName}即可,这种写法其实也就是把SQL语句的某个片段作为参数传入。
重新设计报表使用的SQL语句,如图3.30所示。
图3.30& 报表使用的最新SQL语句
从图3.30中可以看到,加了一个&!&感叹号,再次预览报表生成的.jasper文件,放入Web项目的WebRoot文件夹中,重新运行IE,正确显示出的结果如图3.31所示。
图3.31& 正确显示id=3的记录
因此,在动态创建where或group by这类SQL子句时,请使用$P!{ParametersName}格式的SQL语句。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Jasper + ireport 集成报表到Web应用,操作说明
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口JasperReport中文学习教程。1、前言。2、准备知识。3、安装及环境配置。4、Postg..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
JasperReport中文学习教程
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 数据库语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信