gpt4 book ai didi

java - JasperReport,显示和打印报告

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:09 25 4
gpt4 key购买 nike

我导出了一个用 iReport 创建的 .jrprint 文件。现在我想预览报告并最终打印它,我该怎么做?

我正在尝试:

JRBeanCollectionDataSource ds=new JRBeanCollectionDataSource(list);
JasperPrint jrprint=JasperFillManager.fillReport("report.jrprint", null, ds);

但是我有这个异常(exception)

java.lang.ClassCastException: net.sf.jasperreports.engine.JasperPrint cannot be cast to net.sf.jasperreports.engine.JasperReport

最佳答案

您指定的是 JasperPrint 文件而不是 JasperReport 文件。让我分解一下文件及其内容:

  • report.jrxml - jasper 报告的 xml 定义 - 这定义了报告,但不能直接用于生成输出。
  • report.jasper - 已编译的 jrxml 文件 (JasperReport)。这可以用作用数据填充报告的输入。
  • report.jprint - 已填充数据并准备导出为多种输出格式的报告

下面是一些代码,从设计师创建的 jrxml 文件开始,让您获得打印的 pdf 输出:

Connection connection = PersistenceSessionFactory.getSqlSession().getConnection();
JasperReport report = JasperCompileManager.compileReport( "FancyPantsReport.jrxml" );

// setup parameters for use with the report
HashMap<String, Object> params = new HashMap<String,Object>();
params.put( "sqlDate", fromDate );

// Fill the report data from the sql connection and parameters
JasperPrint printedReport = JasperFillManager.fillReport(report, params, connection);

String outputFilename = "FancyPants-" + dateString + ".pdf";
JasperExportManager.exportReportToPdfFile( printedReport, outputFilename );

LOG.info("Report Generated in " + (System.currentTimeMillis() - start) + "ms");

注意它使用编译从 jrxml 中获取 JasperReport,然后使用 FillManager 从 JasperReport 中获取 JasperPrint,最后将 JasperPrint 导出为 pdf。

关于java - JasperReport,显示和打印报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com