zoukankan      html  css  js  c++  java
  • Jasperreport5.6.9-----2

    Jasperreport5.6.0生成PDF
     
    上一篇讲的是jasperreport5.6.0生成pdf,运行后可以生成pdf,可是和我们的需求有点差距,我们是要求生成后,可以直接打开或保存,这就需要response的设置了,如下代码:

       //ireport生成项目立项PDF格式

       public String getIreportPDFAction()

       {

          Connection conn =null;//连接

          try {

             String projectapproid =request.getParameter("projectapproid");

              ////连接JDBC得到数据URL

              String url ="jdbc:oracle:thin:@192.168.1.104:1521:orcl";

              Class.forName("oracle.jdbc.driver.OracleDriver");

              conn = DriverManager.getConnection(url,"zwjx","zwjx");

              //设置参数

              Map parmerters = new HashMap();

              parmerters.put("projectapproid", projectapproid);

             //读取报表模板文件

             FilejasperFile=new File("D:/Workspaces/zwjxSystem/WebRoot/jasper/report1.jasper");

             //设置报表中参数的值

             Map map =new HashMap();

             map.put("projectapproid", projectapproid);

              //输出流

              OutputStream ous =response.getOutputStream();

              //输出文件名

              String filenames="项目立项";

              //打印

              JasperPrint print =JasperFillManager.fillReport(jasperFile.getPath(), map,conn);

    //        //生成pdf

              JRAbstractExporter exporter =newJRPdfExporter();

              response.reset();

              response.setContentType("application/pdf");

              response.setHeader("Content-Disposition","attachment;filename="+new String(filenames.getBytes("gbk"),"iso8859-1")+".pdf");

              //指向

              JasperReportsUtils.render(exporter, print,ous);

              ous.flush();

              ous.close();

          }catch (Exceptione) {

              e.printStackTrace();

              System.out.println("ireport生成报表出错!");

          }finally

          {

              try {

                 conn.close();

              }catch(SQLException e) {

                 //TODO Auto-generated catch block

                 e.printStackTrace();

              }

          }

              returnnull;

       }

    运行后,弹出如下对话框,我们可以根据需要选择。可以直接打开,也可以保存。

  • 相关阅读:
    [经验栈]C#中几种定时器(timer)的区别
    [经验栈]C#与泰克示波器(Tektronix oscilloscope)MSO64通信操作
    [经验栈]C#监测IPv4v6网速及流量
    [技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
    [技术栈]C#利用Luhn算法(模10算法)对IMEI校验
    [经验栈]SQL语句逻辑运算符"AND"、"&&"兼容性
    Winform或WebForm使用ReportViewer报表设计,工具栏按钮英文显示的解决办法
    Dev 使用RibbonForm打开多标签窗体,主窗体的Text显示一个
    Devexpress如何获取RadioGroup选中项的值和显示值
    MySQL远程连接失败,MySQL远程连接出现Using password:YES错误的解决办法
  • 原文地址:https://www.cnblogs.com/UUUz/p/9365084.html
Copyright © 2011-2022 走看看