Tengo que preparar informes usando cinco consultas SQL diferentes. Cada consulta dará una tabla de informe.Cómo cotejar múltiples informes jrxml jasper en un solo archivo de salida pdf
Así que escribió 5 archivos jrxml corresponden cada una a una de la consulta anterior con sus propias partidas, la configuración de título, pies de página, números de página, etc.
Ahora, soy capaz de compilar, imprimir y exportar cada una de las arriba jrxmls en 5 pdfs diferentes.
Sin embargo, el cliente desea reunir todos los informes en un solo pdf. Eso está en el pdf final, las primeras cuatro páginas serán decir informe uno, las cinco páginas siguientes informan dos, luego informan tres y así sucesivamente.
1) ¿Cómo lograr esto?
2) Cada informe tiene un número de página como 1/4, 2/4, 3/4, etc. Donde la segunda parte, es decir, el número de página completo, se evalúa con el tiempo de evaluación como informe. Entonces, cuando cotejaré todos los informes en un solo pdf (si es posible), ¿será posible volver a numerar las páginas en la justificación para el pdf final?
Sobre la base de la respuesta a continuación, hice lo siguiente en mi clase de Java y funciona:
try
{
JasperReport jreport1 = JasperCompileManager.compileReport(input1);
JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JREmptyDataSource());
//JasperExportManager.exportReportToPdfFile(jprint, "/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytest.pdf");
JasperReport jreport2 = JasperCompileManager.compileReport(input2);
JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, new HashMap(), new JREmptyDataSource());
JasperReport jreport3 = JasperCompileManager.compileReport(input3);
JasperPrint jprint3 = JasperFillManager.fillReport(jreport3, new HashMap(), new JREmptyDataSource());
List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();
jprintlist.add(jprint1);
jprintlist.add(jprint2);
jprintlist.add(jprint3);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);
OutputStream output = new FileOutputStream(new File("/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytestbatch.pdf"));
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
}catch(Exception e)
{
e.printStackTrace();
}
Arriba: INPUT1, INPUT2, INPUT3 son caminos de cadena a la entrada jrxmls
Cuando mis archivos JRXML solo imprime tres mensajes: Hello World 1, Hello World 2, Hello World 3.
<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="Simple_Report">
<detail>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World One!]]></text>
</staticText>
</band>
</detail>
</jasperReport>
¡Gracias por su lectura!
la respuesta de Alex K es buena. También debería poder obtener lo que desea colocando los informes individuales en subinformes de un informe maestro. Será más trabajo, pero le permitirá manejar el requisito de numeración de páginas. Definitivamente deberías votar por esto también. Cubriría exactamente lo que está describiendo: http://jasperforge.org/projects/jasperreports/tracker/view.php?id=4178 – mdahlman