代码之家  ›  专栏  ›  技术社区  ›  d-man

java jasper params静态

  •  0
  • d-man  · 技术社区  · 14 年前

    我的.jrxml文件包含2个文本和一个参数

    alt text

    下面是我的jasper报表的java代码,当我运行该代码时,它会创建pdf文件,但总是空的,有什么帮助吗?

    public class TestReport {
    
        public static void runReport(String reportFile) {
              try{
    
                Map parameters = new HashMap();
                parameters.put("my_var", "Address Report");
    
                JasperDesign jasperDesign = JRXmlLoader.load(reportFile);
                JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
                 JasperPrint jsp = JasperFillManager.fillReport(jasperReport, parameters);
                 JasperExportManager.exportReportToPdfFile(jsp, "/home/ireports/test1.pdf");
    
              }catch(Exception ex) {
                 String connectMsg = "Could not create the report " + ex.getMessage() + " " + ex.getLocalizedMessage();
                 System.out.println(connectMsg);
              }
           }
    
         public static void main(String args[]){
             runReport("/home/ireports/report1.jrxml");
         }
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Jigar Joshi    14 年前

    试试这个片段。它将工作,这里的文件名将是 .jasper .jrxml

           try {
                JasperPrint print = JasperFillManager.fillReport(
                        fileName,
                        hm,
                        new JREmptyDataSource());
                JRExporter exporter =
                new net.sf.jasperreports.engine.export.JRPdfExporter();
                exporter.setParameter(
                JRExporterParameter.OUTPUT_FILE_NAME,
                outFileName);
                exporter.setParameter(
                JRExporterParameter.JASPER_PRINT, print);
                JasperExportManager.exportReportToPdfFile(print, outFileName);
                print = null;
                exporter = null;
                //JasperViewer.viewReport(print,false);
            } catch (Exception e) {
                e.printStackTrace();
            }