IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

iReport Discussion :

module java qui appelle jasperReport avec passage de param


Sujet :

iReport

  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    je me sens seul, c'est bizarre cette impression de vide

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Salut je suis aussi débutant sur ireport mais je pense que je peux t'aider un peu.

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

    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.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Tu peux aussi voir à cet adresse :

    http://www.jasperforge.org/images/st...iewlet_swf.htm

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Points : 12
    Points
    12
    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

Discussions similaires

  1. [Débutant] Création d'une application Java qui appelle des scripts Perl
    Par dark_angel91 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 31/05/2011, 19h31
  2. Debutant:création d'une application java qui appelle des scripts perl
    Par dark_angel91 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/05/2011, 07h04
  3. Réponses: 2
    Dernier message: 12/10/2009, 23h00
  4. [JNI] du java qui "appelle" du C qui "appelle" du java ?
    Par Sol_Invictus dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 10/09/2008, 16h15
  5. [Système] Appel d'un exe avec passage de paramètres
    Par licorne dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2006, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo