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

BIRT Discussion :

[2.3.2] Objet Java comme donnée d'en-tête


Sujet :

BIRT

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut [2.3.2] Objet Java comme donnée d'en-tête
    Bonjour,

    Dans mon rapport j'ai besoin d'afficher des données '"d'en-tête", c'est à dire des données fixes non issues d'une liste (ex : le numéro de la réclamation).

    Pour cela je passe un objet Java en paramètre de mon rapport que je récupère comme ceci dans la méthode initialize :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var reclamation = params["reclamation"].value;
    var numRec = reclamation.getNumRec();
    Je veux affiche le numéro de réclamation (numRec) dans mon rapport.
    Je passe donc par un élément "data" et dans expression je mets "numRec".


    Lorsque j'affiche le rapport j'ai bien la valeur du numéro de réclamation qui s'affiche MAIS quand je regarde les logs j'ai ce message d'erreur :

    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
     
    TypeError: Cannot call method "getNumRec" of null (/report/method[@name="initialize"]#2).
    	at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:307)
    	at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:335)
    	at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:665)
    	at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleJSInternal(ScriptExecutor.java:60)
    	at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleJS(ScriptExecutor.java:47)
    	at org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleInitialize(ReportScriptExecutor.java:41)
    	at org.eclipse.birt.report.engine.api.impl.EngineTask.loadDesign(EngineTask.java:1328)
    	at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:192)
    	at com.sanef.gaspargroupe.utils.Edition.run(Edition.java:162)
    	at com.sanef.gaspargroupe.utils.BirtServlet.genererRapportsMec(BirtServlet.java:181)
    	at com.sanef.gaspargroupe.utils.BirtServlet.genererRapports(BirtServlet.java:113)
    	at com.sanef.gaspargroupe.utils.BirtServlet.doPost(BirtServlet.java:80)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    Je ne comprends donc pas l'erreur puisque j'ai bien une valeur d'affichée et donc mon objet ne peut pas être null...
    Pouvez-vous m'éclaircir ?

    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut .?
    Faudrait peut etre initialisé la valeur a qqch de non null?

    Du style valeur initiale cu param = ""

    BIRT detecte automatiquement certaines incohérences.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    J'ai fais un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var reclamation = new Packages.commun.bo.Reclamation();
    reclamation = params["reclamation"].value;
    var numRec = reclamation.getNumRec();

    J'ai toujours le même message d'erreur.

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    reclamation doit être nul, il faudrait faire ceci :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var reclamation = new Packages.commun.bo.Reclamation();
    reclamation = params["reclamation"].value;
    if (reclamation != null) {
       var numRec = reclamation.getNumRec();
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Je suis tombé aussi sur des cas où si on affiche une valeur en passant par une variable (comme dans l'exemple précédent) rien ne se passe, par contre si on fait directement afficher "monObjet.getPropriete()", là ça marche...

    Ce qui est énervant, c'est que quand on prend une liste d'objet Java pour en faire un dataSource / dataSet, y a jamais de problème

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par BiM Voir le message
    Bonjour,

    reclamation doit être nul, il faudrait faire ceci :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var reclamation = new Packages.commun.bo.Reclamation();
    reclamation = params["reclamation"].value;
    if (reclamation != null) {
       var numRec = reclamation.getNumRec();
    }
    Ben le truc c'est que j'ai bien quelque chose qui s'affiche malgré le message d'erreur

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Bon, même si mes objets Java sont bien non null, j'ai testé quand même la solution de BiM.... et ben ça marche !!

    Alors si quelqu'un a une explication à fournir ça m'intéresse.
    Parce que sachant que mes objets ne sont pas vides, si je fais l'affectation directement la valeur s'affiche mais j'ai une erreur, mais que si je fais un test comme proposé par BiM la valeur s'affiche toujours mais sans erreur.

    Est-ce que ça voudrait dire que le script est appelé 2 fois ? Une fois alors que les paramètres sont vides et une fois quand les paramètres ont été affectés ??

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Hum, t'as pas mis une fois dans le initialize et une fois ailleurs par hasard ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    non j'ai rien d'autre

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Bon puisque ça marche, on va considérer le PB comme résolu.
    Le tout étant de faire des tests pour chaque objet que l'on souhaite utiliser.

    Par contre ça n'a rien à voir, mais je me permets quand même de poster ici : est-ce qu'il y a un moyen d'utiliser le résultat d'une agrégration (somme) ailleurs que dans une table (objet Birt, pas SQL).
    Par exemple, j'ai deux tables avec deux dataSet différents. Pour chaque table j'ai une somme et j'aimerais à la fin du rapport faire le total de ces sommes.

    Est-ce que c'est possible ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/01/2006, 15h14
  2. [Profiling] Mémoire utilisée par objet java
    Par Bicnic dans le forum Général Java
    Réponses: 2
    Dernier message: 05/01/2006, 10h52
  3. [Excel][VBA][Java] Appeler un objet java
    Par ay_pepito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/07/2005, 16h46
  4. Réponses: 5
    Dernier message: 13/06/2005, 18h59
  5. [SAX] Passer d'objet java en fichier XML?
    Par spoutyoyo dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 05/01/2005, 09h31

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