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 19/07/2006, 14h01   #1
Futur Membre du Club
 
Inscription : septembre 2003
Messages : 84
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 84
Points : 18
Points : 18
Par défaut [Java] Générer un rapport PDF avec Jasper Report et iReport

Bonjour,

J'ai lu l'article.
Je ne connais que trop peu Java. J'ai voulu faire un essai de cette librairie pour voir ce qu'il était possible de faire grace à Japser.


J'ai suivi le tuto à la lettre. J'ai modifier 2/3 trucs pour que ca puisse logiquement fonctionner en utilisant Oracle en lieu et place de Mysql.
Voici le code complet que j'ai utiliser pour ma classe GeneratePDF :

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
 
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 oracle.jdbc.driver.OracleDriver;
 
public class GeneratePDF {
 
    public static void main(String[] args) {
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:oracle:thin:@XXX.XXX.XXX.XXX:YYYY:mybase";
        String login = "mylogin";
        String password = "mypassword";
 
        Connection connection = null;                
    try {
        // - Connexion à la base
    	OracleDriver monDriver = new oracle.jdbc.driver.OracleDriver();
        DriverManager.registerDriver(monDriver);
        connection = DriverManager.getConnection(url, login, password);
 
        // - Chargement et compilation du rapport
        JasperDesign jasperDesign = JRXmlLoader.load("C:\\classic.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:\\classic.pdf");
    } catch (JRException e) {
 
        e.printStackTrace();
    } catch (SQLException e) {
 
        e.printStackTrace();
    } finally {
        connection.close();
    }
    }
}
Déjà Eclipse me dit dans Problems :
Citation:
connection ne peut pas être résolu
Il m'indique ceci sur la ligne "connection.close();"

Si je compile et démarre Generate.java comme indiqué dans le tuto,

j'obtiens:
Citation:
Exception in thread "main" java.lang.Error: Problème de compilation non résolu :
connection ne peut pas être résolu

at GeneratePDF.main(GeneratePDF.java:53)
Si je mets le "connection.close();" en commentaire et que j'execute, j'obtiens :
Citation:
java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)

NESTED BY :
java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)

NESTED BY :
net.sf.jasperreports.engine.JRException: Error compiling report java source files : C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:93)
at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:189)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
at GeneratePDF.main(GeneratePDF.java:35)
Caused by: java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\chtom\workspace\JasperTest\bin;C:\Documents and Settings\chtom\workspace\JasperTest\lib\classes12.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-beanutils-1.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-collections-2.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-digester-1.7.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\itext-1.3.1.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\jasperreports-1.2.5.jar;C:\Documents and Settings\chtom\workspace\JasperTest\lib\ojdbc14.jar" "C:\Documents and Settings\chtom\workspace\JasperTest\classic_1153310463593_477980.java" error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:62)
... 5 more
Je débute complétement en Java.
Mon but étant d'avoir un editeur de report gratuit (iReport) et d'executer des reports pré-établi en passant des paramètres à partir de PHP.
Si vous avez des solutions plus simple que de passer par un serveur d'application java, je suis preneur.

Merci de m'avoir lu jusqu'au bout
chtom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 12h19   #2
Membre habitué
 
Avatar de agougeon
 
Inscription : mai 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 253
Points : 106
Points : 106
Bonjour,
J'ai la meme erreur.... il y a t'il une solution?
Merci
agougeon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2007, 13h16   #3
Invité régulier
 
Inscription : mars 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 10
Points : 6
Points : 6
Il manque sans doute la librairie jdt-compiler.jar qui est essentiel pour développer sous eclipse.
mick2d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 10h40   #4
Membre habitué
 
Inscription : avril 2003
Messages : 246
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 246
Points : 117
Points : 117
Je pense aussi qu'il s'agit de classpath j'ai souvent dû le modifier pour JaspertReports.
__________________
Christophe
Christophe P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 17h28   #5
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 1
Points : 1
Il y a un jar présent dans le dossier d'install de jasper ireport à inclure en plus dans le classpath :
jdt-compiler-3.1.1.jar
vash06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2008, 13h57   #6
Invité de passage
 
Inscription : juillet 2005
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 9
Points : 1
Points : 1
Merci beaucoup vash06 ! deepuis le temps que je n'y comprenais rien ...
krisnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2008, 11h02   #7
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
Déjà quel article tu as suivi?tu n'as pas mis de lien à ce que je sache!
pour le connection ne peut pas être résolu tu es sûr d'avoir ajouté le JAR de ton driver d'ORACLE au CLASSPATH?

Citation:
Envoyé par chtom Voir le message
Bonjour,

J'ai lu l'article.
Je ne connais que trop peu Java. J'ai voulu faire un essai de cette librairie pour voir ce qu'il était possible de faire grace à Japser.


J'ai suivi le tuto à la lettre. J'ai modifier 2/3 trucs pour que ca puisse logiquement fonctionner en utilisant Oracle en lieu et place de Mysql.
Voici le code complet que j'ai utiliser pour ma classe GeneratePDF :

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
 
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 oracle.jdbc.driver.OracleDriver;
 
public class GeneratePDF {
 
    public static void main(String[] args) {
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:oracle:thin:@XXX.XXX.XXX.XXX:YYYY:mybase";
        String login = "mylogin";
        String password = "mypassword";
 
        Connection connection = null;                
    try {
        // - Connexion à la base
    	OracleDriver monDriver = new oracle.jdbc.driver.OracleDriver();
        DriverManager.registerDriver(monDriver);
        connection = DriverManager.getConnection(url, login, password);
 
        // - Chargement et compilation du rapport
        JasperDesign jasperDesign = JRXmlLoader.load("C:\\classic.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:\\classic.pdf");
    } catch (JRException e) {
 
        e.printStackTrace();
    } catch (SQLException e) {
 
        e.printStackTrace();
    } finally {
        connection.close();
    }
    }
}
Déjà Eclipse me dit dans Problems :
Il m'indique ceci sur la ligne "connection.close();"

Si je compile et démarre Generate.java comme indiqué dans le tuto,

j'obtiens:


Si je mets le "connection.close();" en commentaire et que j'execute, j'obtiens :


Je débute complétement en Java.
Mon but étant d'avoir un editeur de report gratuit (iReport) et d'executer des reports pré-établi en passant des paramètres à partir de PHP.
Si vous avez des solutions plus simple que de passer par un serveur d'application java, je suis preneur.

Merci de m'avoir lu jusqu'au bout
__________________
*** 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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h11.


 
 
 
 
Partenaires

Hébergement Web