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 :

Récupérer une donnée d'un paramètre dans un script [FAQ]


Sujet :

BIRT

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut Récupérer une donnée d'un paramètre dans un script
    Est-il possible de récupérer la valeur d'un paramètre dans un script ?
    Par exemple dans le script d'un graphique...
    Si oui, comment ?

    D'avance, merci.

  2. #2
    Membre régulier
    Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2003
    Messages : 94
    Points : 116
    Points
    116
    Par défaut
    bonjour,

    La valeur du paramétre MON_PARAM au sens BIRT vaut
    params["MON_PARAM"]

    Selecta

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    En fait, quand je parle de script, je parle d'un script lié à un graphique. Je souhaite récupérer la valeur d'un paramètre pour l'afficher dans le graphique.
    Ce qui me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReferenceError: "params" n'est pas défini at line 37 of chart script:''
    Et je ne trouve pas d'accesseur qui fonctionne...

  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,

    Qu'as tu mis exactement dans ce script ?

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    Voici ce que j'ai mis dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function beforeGeneration( chart, context ){
     
    chart.getTitle().getLabel().getCaption().setValue("Test");
     
    }
    A la place de teste, j'aimerai mettre la valeur du paramètre qui a été renseigné. Or je ne trouve pas la bonne syntaxe le permettant...
    Est-ce possible de récupérer la valeur du paramètre dans un tel script ?

  6. #6
    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
    Où as tu mis cette fonction et comment l'appelles-tu ?

    Je te dirais comme ceci :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function beforeGeneration(chart, valeur){
      chart.getTitle().getLabel().getCaption().setValue(valeur);
    }

    Ou alors :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function beforeGeneration(chart){
      chart.getTitle().getLabel().getCaption().setValue(params["valeur"]);
    }
    ... mais ça c'est si tu as passé la valeur en paramètre de ton document.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    Je débute dans le scripting...
    J'ai sélectionné le graphique, puis j'ai été dans l'onglet "Script" et j'ai renseigné la fonction function beforeGeneration( chart, context )
    En mettant le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function beforeGeneration(chart){
      chart.getTitle().getLabel().getCaption().setValue(params["valeur"]); }
    Mais j'obtiens alors l'erreur :
    Chart (id = 6):
    + ReferenceError: "params" n'est pas défini at line 36 of chart script:''
    Mon paramètre est créé dans la section Report Parameters de l'onglet Data Explorer. Qu'ai-je oublié de faire ?

  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
    Tu n'as rien oublié de faire, on en apprend tous les jours.

    Honnêtement j'ai pas mal cherché, tu devrais essayé :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function beforeGeneration(chart,context){  
    valeur = context.getExternalContext().getScriptable().get("nom_parametre",params);
    chart.getTitle().getLabel().getCaption().setValue(valeur);
    }
    ... mais j'y crois pas :s

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    Moi, j'y croyais mais BIRT non apparament :
    Chart (id = 6):
    + TypeError: get n'est pas une fonction at line 36 of chart script:''
    Merci quand même pour l'idée... en as-tu une autre ?

  10. #10
    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
    Peux-tu appuyer sur le + et me donner le détail de l'erreur s'il te plaît ?

  11. #11
    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
    Heu je viens de penser à ça :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function beforeGeneration(chart,context){
      valeur = reportContext.getParameterValue("nom_parametre");
      chart.getTitle().getLabel().getCaption().setValue(valeur);
    }
    reportContext est une variable globale du document, normalement le chart devrait la connaître mais ce n'est pas certain.

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    En effet, le document semble ne pas connaître reportContext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chart (id = 6): 
    - ReferenceError: "reportContext" n'est pas défini at line 36 of chart script:''
    J'ai également essayé en remplaçant reportContext par context (étant donné que c'est un paramètre de la fonction).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chart (id = 6): 
    - TypeError: getParameterValue n'est pas une fonction at line 36 of chart script:''
    Pas mieux.

    C'est idiot, il doit juste manquer la bonne méthode à appeler... c'est frustrant !

  13. #13
    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
    Fiou,

    Bon vu que je faisais ça qu'avec la doc, je me suis décidée à installer le BIRT Designer RCP et à prendre les sources de BIRT pour enfin trouver la solution (testée et approuvée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function beforeGeneration(chart, context)
    {
    	valeur = context.getExternalContext().getObject().getParameterValue("NewParameter");
    	chart.getTitle().getLabel().getCaption().setValue(valeur);
    }

  14. #14
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    Testé et approuvé également ! Merci beaucoup !

  15. #15
    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
    De rien

    Appuies sur le bouton en bas de l'écran s'il te plaît !

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

Discussions similaires

  1. Récupérer une donnée d'un paramètre dans une url ?
    Par fhardi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/09/2014, 12h53
  2. [AC-2003] récupérer une donnée à un endroit précis dans une table
    Par justine' dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/04/2011, 17h39
  3. Réponses: 7
    Dernier message: 11/01/2007, 18h54
  4. Réponses: 1
    Dernier message: 18/04/2006, 23h16
  5. [EJBQL] Récupérer une donnée dans un EJB avec EJB/QL
    Par pblb62 dans le forum Java EE
    Réponses: 3
    Dernier message: 28/03/2006, 11h53

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