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 31/07/2007, 19h22   #1
Candidat au titre de Membre du Club
 
Ingénieur développement logiciels
Inscription : novembre 2006
Messages : 113
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2006
Messages : 113
Points : 13
Points : 13
Par défaut module java qui appelle jasperReport avec passage de param

Salut,
comme le titre l'indique je fais un module java qui appelle un jasper.
J'ai réussi a generer un jasper tout bête en pdf mais quand il s'agit de generer un report qui contient des sous report, là ca ne fonctionne plus du tout!!!

J'ai vu quelques post à ce sujet sur le forum, mais pas tres clair, et j'avoue que je suis un peu largué.

Je pensais qu'en mettant le Master report et les sub report dans le même dossier, il allait faire le lien mais apperemment non!!!
Donc que doit-on faire???

j'ai vu un post ou il modifiat le xml, quel xml? ou?
j'ai aussi vu qui'ils ont crée d'autres variables? hein??? comment??

Ensuite en ce qui concerne mon java?
Dois-je load uniquement le master report:
Code :
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(jasper);
ou bien es ce que je dois load le master report + tous ses sub report???
bref autant de questions qui restent en suspend!!!

Si quelqun s'y connait peut-il m'exliquer de la facon la plus précise possible car je ne connais e-report que depuis 1 semaine!
Merci d'avance
mnemonic78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 13h35   #2
Candidat au titre de Membre du Club
 
Ingénieur développement logiciels
Inscription : novembre 2006
Messages : 113
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2006
Messages : 113
Points : 13
Points : 13
je me sens seul, c'est bizarre cette impression de vide
mnemonic78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 17h19   #3
Invité régulier
 
Inscription : juillet 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 12
Points : 5
Points : 5
Salut je suis aussi débutant sur ireport mais je pense que je peux t'aider un peu.

Citation:
quel xml? ou?
Le rapport que tu créé est un fichier xml ou jrxml.

Citation:
Dois-je load uniquement le master report:
Code :

JasperReport jasperReport = (JasperReport)JRLoader.loadObject(jasper);


ou bien es ce que je dois load le master report + tous ses sub report???
bref autant de questions qui restent en suspend!!!
Au niveau de java tu dois lancer uniquement ton rapport principal. Mais il faut indiquer dans le fichier xml de ce dernier d'utiliser des sous-rapports.

Pour cela, soit tu modifie directement le code xml à l'aide de balise <subreport> (si tu maîtrise pas je te le conseille pas) soit tu vas dans ireport avec ton rapport principal, tu vas dans modifier ->ajouter un élément...->rapport secondaire et tu place graphiquement ton rapport secondaire dans le rapport principal (il te demandera le nom du rapport secondaire et les passages de paramètres si ton rapport secondaire en a besoin)

Voilà j'espère que ça commencera à t'éclairer.
chnink est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 17h21   #4
Invité régulier
 
Inscription : juillet 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 12
Points : 5
Points : 5
Tu peux aussi voir à cet adresse :

http://www.jasperforge.org/images/st...iewlet_swf.htm
chnink est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 19h05   #5
Invité régulier
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 9
Points : 9
Par défaut module java qui appelle jasperReport avec passage de param

Voici un code qui marche, car je l'ai testé, qui utilise la notion de variable.

1) On considère que tes fichiers JASPER sont dans un JAR et que ce JAR est positionné dans ton classpath :

// Récupération de ton modèle principal dans lequel tu as inclus des sous-modèles :
String path_MP = "package + nom du fichier JASPER";
InputStream is = this.getClass().getResourceAsStream(path_MP);
JasperReport modelePrincipal = (JasperReport) JRLoader.loadObject(is);

//Récupération du sous-modèle 1 :
String path_SM1 = "package + nom du fichier JASPER du sous-modele 1";
is = this.getClass().getResourceAsStream(path_SM1);
JasperReport sousModele1 = (JasperReport) JRLoader.loadObject(is);

//Passage du sous-modèle 1 en tant que paramètre :
HashMap parameters = new HashMap();
parameters.put("cle_sousModele1" ,sousModele1);

//datasource pour la partie des données dynamiques : Exemple Collection de Beans
Collection data = .......;
JRDataSource dataSource = new JRBeanCollectionDataSource(data);

JasperPrint print = JasperFillManager.fillReport(modelePrincipal, parameters, dataSource);

//A partir de l'objet print (modèles + données) --> PDF
JRAbstractExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "c:/toto.pdf");

Voila au niveau du code JAVA, maintenant tu as vu qu'au niveau paramètre j'ai utilisé la clé "cle_sousModele1". Ce qu'il faut c'est qu'au niveau du fichier JRXML lié au modèle principal, il faut créer un paramètre portant le même nom que la clé de type "net.sf.jasperreports.engine.JasperReport" qui correspond au sous-modèle :

......
<parameter name="cle_sousModele1" isForPrompting="false" class="net.sf.jasperreports.engine.JasperReport"/>
......

Et voila...

J'ai même fait des tests avec un modèle principal qui inclut des sous-modèles de sous-modèles avec ce même principe et ca marche.

Bon courage à toi
yan.t 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 08h27.


 
 
 
 
Partenaires

Hébergement Web