Comment assembler plusieurs jrxml jasper reports en un seul fichier pdf en fichier de sortie

Je dois préparer des rapports à l'aide de cinq requêtes sql. Chaque requête doit donner un rapport de tableau.

J'ai donc écrit 5 jrxml fichiers correspondant chacun à l'un de la requête ci-dessus avec leurs propres titres, le titre, les paramètres, les pieds de page, pagenumbers, etc.

Maintenant, je suis en mesure de compiler, d'imprimer et d'exporter chaque jrxmls dans 5 différents types de fichiers pdf.

Toutefois, le client veut que tous les rapports rassemblées en un seul fichier pdf. C'est dans le pdf final, les quatre premières pages seront-dire un rapport, cinq prochaines pages, deux, puis trois et ainsi de suite et ainsi de suite.

1) Comment faire ?

2) Chaque rapport a numéro de la page en tant que 1/4, 2/4, 3/4, etc. La deuxième partie c'est à dire la complète, numéro de la page est évaluée avec des temps d'évaluation en tant que rapport. Donc, quand je vais rassembler tous les rapports dans un seul fichier pdf (si possible), il sera également possible de re-numéroter les pages dans la justification de pdf final ?

En fonction de la réponse ci-dessous, je n'ai la suite dans ma classe java et ça fonctionne:

 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();
            }

Ci-dessus: input1, input2, input3 sont de la chaîne de chemins d'entrée jrxmls

Où mon JRXML fichiers, il suffit d'imprimer trois messages: Bonjour tout le Monde 1, Bonjour tout le Monde 2, Bonjour tout le Monde 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>

Merci pour la lecture!

  • Alex K la réponse est bonne. Vous devez également être en mesure d'obtenir ce que vous voulez en mettant les rapports individuels dans les sous-rapports d'un rapport maître. Il sera plus de travail, mais il vous permettra de gérer la numérotation de la page d'exigence. Vous devriez certainement voter pour ce ainsi. Il couvre exactement ce que vous décrivez: jasperforge.org/projects/jasperreports/tracker/view.php?id=4178
InformationsquelleAutor Vicky | 2011-12-19