Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper > iReport
iReport Forum d'entraide sur iReport
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 14/03/2007, 09h35   #1
Invité régulier
 
Inscription : novembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 21
Points : 6
Points : 6
Par défaut [JasperReport] Problème de requête en paramètre

Bonjour,

Je dois passer une requête en paramètre dans un report que je génère en java à partir d'un template de report fait sous iReport.

Je pensais avoir trouvé la soution ici, mais je suis confronté à une exception différente dans les 2 cas.

En passant le paramètre à partir de java, je récupère cette exception :
Code :
1
2
3
4
5
6
7
net.sf.jasperreports.engine.JRException: Report design not valid : 
	 1. Query parameter not found : SQL
	at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:267)
	at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:144)
	at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
	at GenerateReport.main(GenerateReport.java:45)
Voici le code correspondant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
			// - Connexion à la base
			Driver monDriver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(monDriver);
			connection = DriverManager.getConnection(url, login, password);
 
 
			// - Paramètres à envoyer au rapport
			Map<String, String> parameters = new HashMap<String, String>();
			parameters.put("SQL", "select * from facture where nom='"+nomFacture+"';");
 
 
			// - Chargement et compilation du rapport
			JasperDesign jasperDesign = JRXmlLoader.load("C:\\Documents and Settings\\Standard\\Mes documents\\Jasper\\myreport.jrxml");
			JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
 
			// - Execution du rapport
			JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
 
			// - Création du rapport au format PDF
			JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\Documents and Settings\\Standard\\Mes documents\\Jasper\\output");
			JasperExportManager.exportReportToHtmlFile(jasperPrint, "C:\\Documents and Settings\\Standard\\Mes documents\\Jasper\\output");
Mon code est similaire, je ne comprends pas pourquoi chez moi ca ne marche pas
v.caurier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 09h58   #2
Membre à l'essai
 
Inscription : octobre 2006
Messages : 32
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2006
Messages : 32
Points : 24
Points : 24
Salut,

D'apres l'erreur, je dirais qu'il te manque un parametre dans la definition de ton
rapport.
As tu un parametre qui a pour nom SQL?
Florent Coulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 10h03   #3
Invité régulier
 
Inscription : novembre 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 21
Points : 6
Points : 6
Oui je me suis rendu compte que j'avais effectivement oublié de déclarer le paramètre. Cela dit, je récupère une autre exception, moins explicite cette fois

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
net.sf.jasperreports.engine.JRException: Error compiling report java source files : C:\Documents and Settings\Standard\workspace\testJasper\myreport_1173862608265_822750.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:190)
	at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:211)
	at GenerateReport.main(GenerateReport.java:76)
Caused by: java.io.IOException: CreateProcess: javac -classpath "C:\Documents and Settings\Standard\workspace\testJasper;C:\Documents and Settings\Standard\workspace\testJasper\lib\commons-beanutils-1.7.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\commons-collections-2.1.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\commons-digester-1.7.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\commons-logging-1.0.2.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\commons-logging-api-1.0.2.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\itext-1.3.1.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\jasperreports-1.3.1.jar;C:\Documents and Settings\Standard\workspace\testJasper\lib\mysql-connector-java-3.1.11-bin.jar" "C:\Documents and Settings\Standard\workspace\testJasper\myreport_1173862608265_822750.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
Voici le bout de code xml du rapport concernant mon problème :
Code :
1
2
3
4
5
6
7
8
9
10
 
	<parameter name="SQL" isForPrompting="false" class="java.lang.String"/>
 
	<queryString><![CDATA[$P!{SQL}]]></queryString>
 
	<field name="id" class="java.lang.Integer"/>
	<field name="montant" class="java.lang.Integer"/>
	<field name="nom" class="java.lang.String"/>
	<field name="prenom" class="java.lang.String"/>
	<field name="adresse" class="java.lang.String"/>
Merci pour le coup de main
v.caurier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h22.


 
 
 
 
Partenaires

Hébergement Web