我最近为我的项目升级了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页面,可以看到它已被 ExporterInput , ExporterConfiguration 和 ExporterOutput 取代但我不确定如何将它们全部用于实现所需的输出。
答案 0 :(得分:3)
等效代码看起来像这样:
(define (domain blocly)
(:predicates
(espacio ?e)
(ficha ?t)
(sobre ?t ?t)
(en ?t ?e)
(arriba ?t ?e)
(vacio ?e)
(libre ?t)
)
(:action movefichaficha
:parameters (?ficha ?ficha2 ?ficha3 ?from ?to)
:precondition
(and
(ficha ?ficha)
(ficha ?ficha2)
(ficha ?ficha3)
(espacio ?from)
(espacio ?to)
(sobre ?ficha ?ficha2)
(libre ?ficha)
(libre ?ficha3)
(en ?ficha ?from)
(en ?ficha2 ?from)
(en ?ficha3 ?to)
)
:effect
(and
(sobre ?ficha ?ficha3)
(en ?ficha ?to)
(libre ?ficha2)
(not (sobre ?ficha ?ficha2))
(not (libre ?ficha3))
(not (en ?ficha ?from))
)
)
(:action movefichaesp
:parameters (?ficha ?ficha2 ?from ?to)
:precondition
(and
(ficha ?ficha)
(ficha ?ficha2)
(espacio ?from)
(espacio ?to)
(sobre ?ficha ?ficha2)
(vacio ?to)
(en ?ficha ?from)
(en ?ficha2 ?from)
)
:effect
(and
(libre ?ficha2)
(en ?ficha ?to)
(arriba ?ficha ?to)
(not (vacio ?to))
(not (en ?ficha ?from))
(not (sobre ?ficha ?ficha2))
)
)
(:action moveoespficha
:parameters (?ficha ?ficha2 ?from ?to)
:precondition
(and
(ficha ?ficha)
(ficha ?ficha2)
(espacio ?from)
(espacio ?to)
(libre ?ficha)
(libre ?ficha2)
(en ?ficha ?from)
(en ?ficha ?to)
)
:effect
(and
(vacio ?from)
(en ?ficha ?to)
(sobre ?ficha ?ficha2)
(not (libre ?ficha2))
(not (en ?ficha ?from))
(not (en ?ficha ?from))
)
)
)
请注意,旧的API允许您执行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();
之类的操作。问题在于CSV导出器实际上并未使用该参数,只有文本导出器正在查看csvExporter.setParameter(JRTextExporterParameter.PAGE_HEIGHT)
。使用新的API,您可以清楚地了解每个导出器可以执行的设置/配置。