此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【senny925】截止到2008-07-15 17:44:12的历史汇总数据(不包括此帖):
发帖的总数量:3                        发帖的总分数:90                       每贴平均分数:30                       
回帖的总数量:6                        得分贴总数量:3                        回帖的得分率:50%                      
结贴的总数量:2                        结贴的总分数:70                       
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:1                        未结的总分数:20                       
结贴的百分比:66.67 %               结分的百分比:77.78 %                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
楼主加油

解决方案 »

  1.   

    ...你是不是要自己写个JRDataset之类的?
    jasper有sql数据源,为什么不用,如果是想学习新的数据源方式,再找下吧,
      

  2.   

    1、用ireport做好模板,然后点data->报表查询,将sql全部删掉。
    2、编译生成jasper文件。
    3、将jasper文件考到工程目录下。
    4、在servlet中写sql,用数据源来包装结果集显示。如:
    String 
    sql = "select name,age from USER";//注意此处的"name","age"必须与ireport中的fields保持一致
    Connection conn = ...;
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
    JRResultSetDataSource ds = new JRResultSetDataSource(rs);
    byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
                parameters, ds);
    ...
      

  3.   

    记得就是传个connection过去就是了
      

  4.   

    本来就是动态生成内容,楼主你可以设置报表的数据源为xml文件就行了,根据sql结果集动态组xml就不用我说了吧
      

  5.   

    1、用ireport做好模板,然后点data->报表查询,将sql全部删掉。 
    2、编译生成jasper文件。 
    3、将jasper文件考到工程目录下。
    这三部我理解
    您的意思是:ireport做的模板 ,跟sql的查询条件无关 , 模板了的东西就是设置了要显示的字段和位置吗???
      

  6.   

    1、用ireport做好模板,然后点data->报表查询,将sql全部删掉。 
    2、编译生成jasper文件。 
    3、将jasper文件考到工程目录下。 
    4、在servlet中写sql,用数据源来包装结果集显示。如: Java codeString 
    sql = "select name,age from USER";//注意此处的"name","age"必须与ireport中的fields保持一致
    Connection conn = ...;
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
    JRResultSetDataSource ds = new JRResultSetDataSource(rs);
    byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, ds);
    您能不能把servlet里的代码给我啊 ,我好有个参考
      

  7.   

    是这样的。
    sevlet代码:String path = this.getServletContext().getRealPath(
              "reportFiles/classic.jasper");
          File reportFile = new File(path);
          Class.forName("oracle.jdbc.driver.OracleDriver");
          Connection connection = DriverManager.getConnection(
              url, user, password);
          Statement stmt = connection.createStatement();
          String sql = "select login_name from user";
          ResultSet rs = stmt.executeQuery(sql);
          JRResultSetDataSource ds = new JRResultSetDataSource(rs);
          byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
              null, ds);
          resp.setContentType("application/pdf");
          resp.setContentLength(bytes.length);
          
          ServletOutputStream ouputStream = resp.getOutputStream();
          ouputStream.write(bytes, 0, bytes.length);
          ouputStream.flush();
          ouputStream.close();
      

  8.   

    谢谢你,我已经搞定啦。非常感谢你!!!你的方法比我的好,你直接用流写的 。 我是这么做的
            File sourceFile = new File("src/com/mayy/reports/static.jasper");       
            JasperReport jasperReport = (JasperReport)JRLoader.loadObject(sourceFile);
            
            
          JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, 
                    new  JRResultSetDataSource(fill.getResultSet()));

           File destFile = new File(sourceFile.getParent(), "static" + ".jrprint");
      
          这个是我写的一个类获取sql的ResultSet的方法(getResultSet()) ,我是先写一个XXX.jrprint文件,
         最后我      
                                                                                                                      JasperExportManager.exportReportToPdfFile                                                                 ("src/com/mayy/reports/static.jrprint" , "src/com/mayy/reports/static.pdf");
       用这个生成pdf文件
      

  9.   

    我现在生成excell文件的时候 , 倒出来的XXX.xls的样式好丑啊 ,那个样式能调吗??? 有一部分是空白的 ,还有右边,下边的是横线,竖线
      

  10.   

    这个问题确实存在,ireport做的模板的行与列是事先画好的,一个行可能跨多个excel行,一个列也可能跨多个excel的列,这些搞得excel的行和列重叠现象非常严重。我不知道怎么解决,期待能解决问题的高人。
    如果只是想看得舒心一点,用excport导出能够设置一些排版,可以解决横线和竖线的问题。
    JRExporter exporter = new JRXlsExporter();
    JasperPrint jasperPrint = JasperFillManager.fillReport(path,null,ds);
    jasperPrint.setPageWidth(850);
    ...
    但这是治标不治本的办法,我觉得ireport做得的模板似乎不太适合导出excel???
      

  11.   

    谢谢kingssq ,非常感谢