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 :

[ireport & java]Sous rapport & multi source de données


Sujet :

iReport

  1. #1
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut [ireport & java]Sous rapport & multi source de données
    Bonjour,

    J'ai le problème suivant :
    J'ai plusieur sous rapports inclus dans mon rapport principal, et chaque sous rapport à sa propre source de données.

    Voici la facon dont je procède pour remplir un formulaire qui ne possède qu'un seul sous formulaire (au niveau du code java) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JasperReport jasperReport = (JasperReport)JRLoader.loadObject("config/general.jasper"); 
     
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource() );
    Dans cet exemple la source de données est nulle. Ne pas en tenir compte.

    Comment faire pour attribuer plusieurs sources de données au rapport général, de manière à ce que chacun des sous rapports puisse être rempli correctement avec la source de données qui lui est attribué.
    J'ai pensé à passer en paramètre les différentes sources de données, mais je ne sais pas comment les utiliser par la suite dans ireport pour les attribuer aux sous rapports concernés.
    Ou peut être y a-t-il une autre facon de faire ?

    Quelqun pourrait-il me donner un coup de pouce à un novice tel que moi ?, ce serait bien sympa de sa part

    Merci pour tout d'avance.

  2. #2
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    Ok, j'ai trouvé comment faire, je met la réponse pour les ceux qui se poseront la question plus tard :

    Dans le programme java, il faut passer chaque source de données en paramètre, puis remplir le rapport principal avec une source de données nulle comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Map parameters = new HashMap();
    // --- Passage en paramètre des sources de données
    parameters.put("DATASOURCE1",new JRTableModelDataSource(new CustomTableModel()));
    ...
     
    // --- Remplissage du rapport général :
    JasperReport jasperReport = (JasperReport)JRLoader.loadObject("config/general.jasper");
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
    // --- Export au format PDF
    JasperExportManager.exportReportToPdfFile(jasperPrint, "test.pdf");
    Dans ireport, dans le master report, il suffit de déclarer chacun des paramètres 'DATASOURCEX' passé en paramètre depuis le java, puis de les attribuer au niveau de chaque sous rapport de la facon suivante :
    - double cliquez sur le sous rapport concerné pour afficher ses propriétés
    - selectionez l'onglet 'subreport', sélectionnez l'option 'utiliser la source de donnée courante' pour 'connection/Data Source Expression' et mettre comme expression : $P{DATASOURCEX}

    Cette opération est à faire pour chaque sous rapport du rapport général.

    Compilez le rapport, faite tourner votre main java pour faire le pdf et normalement tout devrait etre bon.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 40
    Points : 29
    Points
    29
    Par défaut Jasperspring et Spring
    Bonjour,
    y'a t'il quelqu'un de vous qui a quelque chose de pratique sur l'interation du framwork Jasper report et Spring .

  4. #4
    Candidat au Club
    Homme Profil pro
    tunisCity
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : tunisCity
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    salut, je rencontre un probleme d'utilisation d'un subReport, j'utilise ireport4.1.1, tout fonctionne correctement sur ireport mais quand j'apelle mon master Report en java ca pose le probleme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    GRAVE: java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph
    	at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2032)
    	at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1212)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1953)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    	at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
    	at net.sf.jasperreports.engine.base.JRBaseTextElement.readObject(JRBaseTextElement.java:1157)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    	at java.util.ArrayList.readObject(ArrayList.java:593)
    	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
    	at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:257)
    	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:308)
    	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:257)
    	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)
    	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
    	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)
    	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:795)
    	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
    	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
    la methode d'appel est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JasperDesign design = JRXmlLoader.load(new LegacyJasperInputStream(new FileInputStream(FacesContext.getCurrentInstance().getExternalContext().getRealPath("/WEB-INF/jasperConfigFiles/Jasper/master.jrxml"))) );
                    JasperReport jasperReport=JasperCompileManager.compileReport(design);
                    JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport,parameters,connection);
    master.jrxml contient un subReport ca fonctionne parfaitement sur ireport mais pas coté java, quand j'enleve le sous raport ma classe java peut éffectuer cette opération.

    j'ai vraiment besoin d'aide, merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Ireport] taille de sous rapport variable
    Par nannous dans le forum Jasper
    Réponses: 4
    Dernier message: 09/04/2009, 10h57
  2. Réponses: 1
    Dernier message: 07/08/2008, 00h46
  3. Réponses: 0
    Dernier message: 25/07/2007, 17h10
  4. [IReport] path et sous-rapport
    Par Devilpika dans le forum iReport
    Réponses: 2
    Dernier message: 05/04/2007, 16h21
  5. [iReport] Décalage de sous rapport
    Par Hares dans le forum iReport
    Réponses: 1
    Dernier message: 09/06/2006, 15h59

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