Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2008, 18h11   #1
Candidat au titre de Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 48
Points : 10
Points : 10
Par défaut JasperReport problème avec les chemins relatif

Salut a vous tous!

Je veux faire un rapport pour mon application J2EE (Hibernate et JSF) avec JasperReports,
j'utilise pour cela iReport avec lequel j'ai généré le fichier materiels.jrxml necessaire pour mon rapport, après j'ai crée une classe java JReport.java

dont le code est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
import org.postgresql.Driver;
 
public class JReport {
 
    public  String genererPDFMat() {
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:postgresql://localhost:5432/mat";
        String login = "postgres";
        String password = "******";
 
        try {
            // - Connexion à la base
            Driver monDriver = new org.postgresql.Driver();
            DriverManager.registerDriver(monDriver);
            Connection connection = DriverManager.getConnection(url, login, password);
 
            // - Chargement et compilation du rapport
            JasperDesign jasperDesign = JRXmlLoader.load("c:\\materiels.jrxml");
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
            // - Paramètres à envoyer au rapport
            Map parameters = new HashMap();
            parameters.put("Titre", "Titre");
 
            // - Execution du rapport
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
 
            // - Création du rapport au format PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, "c:\\materiels.pdf");
        } catch (JRException e) {
 
            e.printStackTrace();
        } catch (SQLException e) {
 
            e.printStackTrace();
        } finally {
            connection.close();
        }
return null;
    }
 
 
}
mon probleme c'est que le chemin de materiels.jrxml est absolu, alors que je desire qu'il sera relatif a l'application (parceque je désire la deployer sous Linux) !


Avez vous une idéé?
baradoss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2008, 00h29   #2
Membre habitué
 
Inscription : février 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 11
Points : 116
Points : 116
par exemple: si ta classe se trouve dans le fichier main/classes et ton report se trouve dans main/resources/reports

Code :
1
2
3
URL urlMateriels = this.getClass().getClassLoader().getResource(
				"resources/reports/materiels.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(url.getPath().toString());
tu pourrais aussi utiliser getResourceAsStream et passer ce Stream à la methode load.
MinervaD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2008, 10h02   #3
Rédacteur/Modérateur
 
Avatar de JauB
 
Homme Faisel
Ingénieur COBOL/AS400
Inscription : octobre 2005
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Faisel
Âge : 31
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur COBOL/AS400
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 713
Points : 2 712
Points : 2 712
Envoyer un message via AIM à JauB Envoyer un message via MSN à JauB Envoyer un message via Yahoo à JauB
Euuuh je ne vois ni JSF ni Hibernate dans ton application

Citation:
Envoyé par baradoss Voir le message
Salut a vous tous!

Je veux faire un rapport pour mon application J2EE (Hibernate et JSF) avec JasperReports,
j'utilise pour cela iReport avec lequel j'ai généré le fichier materiels.jrxml necessaire pour mon rapport, après j'ai crée une classe java JReport.java

dont le code est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
import org.postgresql.Driver;
 
public class JReport {
 
    public  String genererPDFMat() {
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:postgresql://localhost:5432/mat";
        String login = "postgres";
        String password = "******";
 
        try {
            // - Connexion à la base
            Driver monDriver = new org.postgresql.Driver();
            DriverManager.registerDriver(monDriver);
            Connection connection = DriverManager.getConnection(url, login, password);
 
            // - Chargement et compilation du rapport
            JasperDesign jasperDesign = JRXmlLoader.load("c:\\materiels.jrxml");
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
            // - Paramètres à envoyer au rapport
            Map parameters = new HashMap();
            parameters.put("Titre", "Titre");
 
            // - Execution du rapport
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
 
            // - Création du rapport au format PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, "c:\\materiels.pdf");
        } catch (JRException e) {
 
            e.printStackTrace();
        } catch (SQLException e) {
 
            e.printStackTrace();
        } finally {
            connection.close();
        }
return null;
    }
 
 
}
mon probleme c'est que le chemin de materiels.jrxml est absolu, alors que je desire qu'il sera relatif a l'application (parceque je désire la deployer sous Linux) !


Avez vous une idéé?
__________________
*** Ingénieur COBOL/AS400 ***

-------------------------------------------------------------------

Mes articles, Mon Blog

Rubrique Jasper/iReport :
------- Forum Jasper --------
----- FAQ Jasper/iReport -----

JauB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 09h15   #4
Membre habitué
 
Inscription : avril 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 34
Points : 115
Points : 115
Attention aux "/" sous linux il me semble qu'ils sont dans l'autre sens

Sinon moi dans mon action pour avoir le path de l'application qui tourne sur le serveur j'utilise une méthode "getPath()" qui me donne le path de l'application sur le serveur et j'y rajoute où se trouve les fichier jrxml dans l'appli.

Shury.
shuryyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h04.


 
 
 
 
Partenaires

Hébergement Web