微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JasperReport setParameter已弃用?

如何解决JasperReport setParameter已弃用?

等效的代码如下所示:

JRCsvexporter csvexporter = new JRCsvexporter();
//jasperPrints is Collection, but we need a List
csvexporter.setExporterInput(SimpleExporterInput.getInstance(new ArrayList(jasperPrints)));
csvexporter.setExporterOutput(new SimpleWriterExporterOutput(baos));
SimpleCsvexporterConfiguration exporterConfiguration = new SimpleCsvexporterConfiguration();
//nothing to set here, but you Could do things like exporterConfiguration.setFieldDelimiter
csvexporter.setConfiguration(exporterConfiguration);
csvexporter.exportReport();

请注意,旧的API允许您执行类似的操作csvexporter.setParameter(JRTextExporterParameter.PAGE_HEIGHT)。这样做的问题是CSV导出器实际上没有使用该参数,只有文本导出器正在查看JRTextExporterParameter.PAGE_HEIGHT。使用新的API,您可以清楚地对每个导出器执行哪些设置/配置。

解决方法

我最近将我的项目的Jasper Reports库从 3.7.6 升级到了 6.0.0
。我终于可以进行Maven构建,并且报告工作得很好。但是, setParameter()
函数在两个发行版之间似乎已被弃用,并且我不确定如何重构我的代码以适应此问题。

不推荐使用的代码示例:

private static void exportMultipleToCSV(Collection<JasperPrint> jasperPrints,OutputStream baos) throws JRException {
    JRCsvExporter csvExporter = new JRCsvExporter();

    csvExporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST,jasperPrints);
    csvExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,baos);
    csvExporter.setParameter(JRTextExporterParameter.PAGE_HEIGHT,Integer.valueOf(1500000));
    csvExporter.setParameter(JRTextExporterParameter.PAGE_WIDTH,Integer.valueOf(40000000));
    csvExporter.setParameter(JRTextExporterParameter.CHARACTER_WIDTH,Integer.valueOf(4));
    csvExporter.setParameter(JRTextExporterParameter.CHARACTER_HEIGHT,Integer.valueOf(15));

    csvExporter.exportReport();
}

我浏览了SourceForge页面,可以看到它已被 ExporterInputExporterConfiguration
ExporterOutput 代替,但是我不确定如何一起使用它们来实现所需的输出。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。