JasperReport+iReport实现套打的问题总结

来源:互联网 发布:被男朋友舔 知乎 编辑:程序博客网 时间:2024/05/01 19:01

JasperReport和iReport版本的问题

  一:如果版本不匹配,预览是什么东西也都看不到

 

中文乱码的问题

二:就是要下个包iTextAsian.jar  并且要放在iReport的lib目录下面

      再就是在新建field等的时候要把PFD Font Name 里选STSong-Light

     PDF Embedded  PDF Encoding前面打上勾下拉框里选UniGB-UCS2-H (Chinese Simplified)

 

iReport是如何工作的?

三:对于这个问题,我想得比较久了,找资料也是有限,所以就一直没弄明白它是怎么部署到我们jsp页面运用上去的,一整个工作的原理没清楚,后来总算理解了,其实很简单的,大家别笑话我呀……

     下面是jsp代码   是实现套打的代码

 

 

<%
  String id = request.getParameter("paramId");//这个id是传到iReport里面去的
 %>
  <%
   //报表编译之后生成的.jasper 文件的存放位置
   //File reportFile = new File(application
    // .getRealPath("/test.jasper"));
   File reportFile = new File("D://Program Files//JasperSoft//iReport-2.0.3//biao1.jasper");
   //这个是用来联接我的SQL Server 的JDBC URL
   String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=cmtony";
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
     .newInstance();
   //传递报表中用到的参数值
   Map parameters = new HashMap();
   //"Name"是报表中定义过的一个参数名称,其类型为String 型
   parameters.put("id", new String(id));
   System.out.println("---------conn-------------");
   //连接到数据库
   Connection conn = DriverManager.getConnection(url, "sa", "sa");
   System.out.println("---------Jasper begin-------------");
   //在控制台显示一下报表文件的物理路径
   System.out.println(reportFile.getPath());
   byte[] bytes = JasperRunManager.runReportToPdf(
     reportFile.getPath(), parameters, conn);
   System.out.println("---------Jasper end-------------");
   response.setContentType("application/pdf");
   response.setContentLength(bytes.length);
   ServletOutputStream ouputStream = response.getOutputStream();
   ouputStream.write(bytes, 0, bytes.length);
   ouputStream.flush();
   ouputStream.close();
  %>

 

工作原理:iReport 中建立-------执行动态报表会长生一个*.jasper文件

                 iReport只要运行这一次就可以了,以后我们每次运行jsp里面的代码就可以直接读取这个文件,就可以生成你想要的 pdf或是别的格式的报表,参数可以从这个页面传到*.jasper文件,这个文件就会可以根据这个参数到数据查询出你想要的数据,当然要开始在iReport中设置这个参数,还要写报表查询语句

 

原创粉丝点击