Utilisation de JasperReport et iReport

Pietr_Alekseievitch_Kropotkine Messages postés 3 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 11 mars 2008 - 11 mars 2008 à 11:27
Pietr_Alekseievitch_Kropotkine Messages postés 3 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 11 mars 2008 - 11 mars 2008 à 17:28
Bonjour  à tous ,
Je dois utiliser l'outil de reporting pour imprimer et je rencontre quelques problèmes
J' ai créer un fichier .jasper que j' appelle dans mon code java comme suit :

public JasperTest(Piece p) {
    HashMap parameters= new HashMap();
        // - Paramètres de connexion à la base de données
        Connection m_con;
        m_con=ConnexionBDD.getConnexion();
        try {
            // - Paramètres à envoyer au rapport
            parameters.put("id",new Short(p.getIdPiece()));
            // - Execution du rapport
            JasperPrint jasperPrint = JasperFillManager.fillReport("test.jasper", parameters, m_con);
            // - Création du rapport au format PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, "pieces/piece_n_"+p.getIdPiece()+".pdf");
            net.sf.jasperreports.view.JasperViewer.viewReport(jasperPrint,false);
        }

je lui passe en parametre un short, qui correspond a l'ID de la piece que je souhaite imprimer, et theoriquement mon test.jasper execute sa requete avec "select... from ... where pieces.id_piece = $P{id}"
malheureusement cela ne fonctionne pas il me met en permanence : "le document ne contient aucune page" et enregistre un .pdf vide Si quelqu'un a deja rencontré un tel probleme ou a une idee d'ou vient celui-ci qu'il n'hesite pas car je commence a desesperer.....
Je precise quand meme que ma variable p.getIdPiece() n'est pas null et qu'une piece est bien attribuée a cet ID.
Merci d'avance!
A voir également:

3 réponses

Pietr_Alekseievitch_Kropotkine Messages postés 3 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 11 mars 2008 1
11 mars 2008 à 17:28
bon, ca avance un peu, j'ai tous repris depuis le debut :


        try {
          try
          {
            Class.forName("com.mysql.jdbc.Driver");
          }
          catch (ClassNotFoundException ex1)
          {
          }
          Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/" +
                                                                                "####?user=####&password=##");
            // - Paramètres à envoyer au rapport
            parameters.put("id",new Short((short)18));
            // - Création du rapport au format PDF
            JasperPrint print = JasperFillManager.fillReport("Rapport_sans titre_1.jasper",
                                                                     parameters, new JREmptyDataSource());
            JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"piece.pdf");
            exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);
            exporter.exportReport();
            net.sf.jasperreports.view.JasperViewer.viewReport(print,false);}

Avec ca j'affiche bien mon report avec des donnee null, mais lorsque je passe
ma connexion en parametre, cad:
JasperPrint print = JasperFillManager.fillReport("Rapport_sans titre_1.jasper",
                                                                                        parameters,connection);
je reviens avec cette erreur : "le document ne contient aucune page"
Alors si qqn a une idée, qu'il n' hesite pas.....
Merci
1
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
11 mars 2008 à 14:43
bonjour,


Vérifie si la requête est envoyé au serveur de BD  à l'aide d'un traceur tel que SQL profiler de SQL server.

Essaies aussi de faire un test avec une template sans paramètres en entrée et qui contient un contenu static (text brut)

Bref, essaie dans un premier temps de vérifier que tt fonctionne très bien sans connexion avec la BD .

crdt,
0
Pietr_Alekseievitch_Kropotkine Messages postés 3 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 11 mars 2008 1
11 mars 2008 à 15:51
Merci d' avoir repondus si vite!

J'ai essayé, comme tu me le disais de faire un test sans parametre et il s' avere que ca ne resout rien,
malheureusement.
Concernant le traceur, il s'agit d'une bdd Mysql, et je ne connais pas d'outil de ce genre pour MySQL (j'ai essayer avec FlexTracer sans succes)
Si tu as d'autres idees n' hesite pas....

Merci
0
Rejoignez-nous