|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 20 ![]() |
salut a tous,
j'ai crée un modele de rapport a l'aide de Ireport, je souhaite pouvoir l'utiliser dans mon programme JAVA pour imprimer des donnees provenantes d'une base des donnees, mais la requete SQL n'est pas toujours la meme, comment la modifier a partir de JAVA ? j'ai deja une idee sur la resolution de ce probleme: 1.ouvrir le fichier .jrxml generé par Ireport. 2.parcourir le fichier et modifier la valeur de l'element <querystring> contenant la requete SQL a l'aide de l'api JDOM. je sais qu'il existe une meilleure façon pour ça, tout en passant par les variables,parametres,.... mais je sais pas comment faire. SVP si quelq'un peut m'aider et merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 48 ![]() |
Il y a plus simple :
passer un parametre ! tu crée un paramètres REQUETE_SQL et tu le mets à la place de ta requete SQL dans ton rapport et après avec ton fichier Java tu passes en paramètre une String contenant ta requete SQL avec le nom REQUETE_SQL (ça se fait en passant par une HashTable). Sachant ça regarde juste comment on passe un paramètre à un rapport depuis java si tu as besoin et remplace ta requete SQL dans ton report par $P{REQUETE_SQL} et ça devrait fonctionner Bonne chance ! |
|
|
00
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 20 ![]() |
salut a tous,
merci phyzalis pour votre reponse, mais j'ai quand meme une erreur au niveau de la compilation Code :
Code :
Error executing SQL statement for : gray_lanscape
sinon tu peux bien m'expliquer la procedure a suivre ? merci. |
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 48 ![]() |
Je ne connais pas ce type d'erreur ... j'ai travaillé qu'avec des datasource XML et là c'est clairement un problème SQL
peut-etre dois tu également définir tes paramètres de connection dans des paramètres ? si tu veux une réponse plus rapidement, et que tu maitrise l'anglais, va sur http://www.jasperforge.org et sur le forum, ça repond très vite ! |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 20 ![]() |
salut a tous,
ca a enfin marché, j'ai seulement ajouté un point d'exclamation dans la declaration de la variable ($P!{SQL} au lieu de $P{SQL}). merci. |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 3 ![]() |
Il est également possible de paramétrer la requête directement à partir du code java :
Code :
|
||
|
|
00
|
|
|
#7 | |||
|
Membre à l'essai
![]() Inscription : octobre 2006 Messages : 32 ![]() |
Salut,
Citation:
Le but étant de gagner du temps, est il possible de modifier directement la requete grace à un autre parametre? Par exemple: Code :
|
|||
|
|
00
|
|
|
#8 | ||||
|
Invité régulier
![]() Inscription : août 2005 Messages : 10 ![]() |
Bonjour,
comme vous vous en doutez, j'ai un ch'ti soucis j'ai un rapport qui va devoir être filtré selon différents critères que je ne peux connaitre au moment de la conception du rapport. J'ai donc créé un paramètre ( $P{sql} ) qui sera fournit par java. Par défaut, il n'y aura pas de filtres et la requête sera alors la suivante : Code :
A la compilation du rapport, aucune erreur n'est levée. Par contre dès que je l'exécute, j'obtiens l'erreur suivante : Code :
Toute suggestion sera la bienvenue et merci à ceux qui auront pris la peine d'arriver jusqu'ici |
||||
|
|
00
|
|
|
#9 | |
|
Membre actif
![]() François Développeur Java Inscription : avril 2007 Messages : 162 ![]() |
Citation:
__________________
Tout passe, tout casse Le joint le cul lassent... http://www.myspace.fr/geampa_raler |
|
|
|
00
|
|
|
#10 | ||||
|
Invité régulier
![]() Inscription : août 2005 Messages : 10 ![]() |
Pensant que mon problème provient des quotes se trouvant dans la requête, j'ai créé une table à partir de ma requête et l'ais remplacé sous iReport par un "select * from temp;"
je rencontre la même erreur à savoir :Code :
voici le code extrait du jrxml : Code :
|
||||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 10 ![]() |
oki,
va valoir que je lise plus attentivement la prochaine fois et pas que je fasse cela en diagonale il fallait mettre $P!{sql}
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() ahmed sghir Inscription : février 2010 Messages : 2 ![]() |
salu
j'utilise un rapport ireport , et je veu préciser une requete depuis ma classe java !j'ai essayer ce code : String url = "jdbc:mysql://localhost/calender"; java.sql.Connection con = null; JasperDesign jasperDesign= null; JasperReport jasperReport= null; try { // - Connexion à la base Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); try { con = DriverManager.getConnection(url, "root", "mysql"); } catch (SQLException ex) { Logger.getLogger(Connection.class.getName()).log(Level.SEVERE, null, ex); } // - Chargement et compilation du rapport try { jasperDesign = JRXmlLoader.load("C:\\Documents and Settings\\Administrateur\\Bureau\\classic.jrxml"); JRDesignQuery query = new JRDesignQuery(); query.setText("SELECT * FROM RDV WHERE id= 28"); jasperDesign.setQuery(query); jasperReport = JasperCompileManager.compileReport(jasperDesign); } catch (JRException ex) { Logger.getLogger(rapport.class.getName()).log(Level.SEVERE, null, ex); } try{ System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa"); } catch(Exception e){ e.toString(); } // - Paramètres à envoyer au rapport Map parameters = new HashMap(); parameters.put("Titre", "Titre"); // - Execution du rapport JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, con);//fillReport(jasperReport, parameters,connection); // - Création du rapport au format PDF JasperExportManager.exportReportToPdfFile(jasperPrint,"D:\\classic.pdf"); } catch (SQLException ex) { Logger.getLogger(rapport.class.getName()).log(Level.SEVERE, null, ex); } catch (JRException e) { e.printStackTrace(); try { con.close(); } catch (SQLException ex) { Logger.getLogger(rapport.class.getName()).log(Level.SEVERE, null, ex); } } mais lors de l'execution il m'affiche une erreur : Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: net.sf.jasperreports.engine.design.JasperDesign.setQuery(Lnet/sf/jasperreports/engine/design/JRDesignQuery at calendar.rapport.button1ActionPerformed(rapport.java:112) at calendar.rapport.access$000(rapport.java:43) at calendar.rapport$1.actionPerformed(rapport.java:67) at java.awt.Button.processActionEvent(Button.java:392) at java.awt.Button.processEvent(Button.java:360) at java.awt.Component.dispatchEventImpl(Component.java:4501) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) svp , si kelkun peu me dire ou est l'erreur , c urgent ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com