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.
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.
bonjour,
La valeur du paramétre MON_PARAM au sens BIRT vaut
params["MON_PARAM"]
Selecta
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 :
Et je ne trouve pas d'accesseur qui fonctionne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part ReferenceError: "params" n'est pas défini at line 37 of chart script:''
Voici ce que j'ai mis dans mon script :
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...
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"); }
Est-ce possible de récupérer la valeur du paramètre dans un tel script ?
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 :
... mais ça c'est si tu as passé la valeur en paramètre de ton document.
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function beforeGeneration(chart){ chart.getTitle().getLabel().getCaption().setValue(params["valeur"]); }
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 codeMais j'obtiens alors l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function beforeGeneration(chart){ chart.getTitle().getLabel().getCaption().setValue(params["valeur"]); }
Mon paramètre est créé dans la section Report Parameters de l'onglet Data Explorer. Qu'ai-je oublié de faire ?Chart (id = 6):
+ ReferenceError: "params" n'est pas défini at line 36 of chart script:''
Tu n'as rien oublié de faire, on en apprend tous les jours.
Honnêtement j'ai pas mal cherché, tu devrais essayé :
... mais j'y crois pas :s
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); }
Moi, j'y croyais mais BIRT non apparament :
Merci quand même pour l'idée... en as-tu une autre ?Chart (id = 6):
+ TypeError: get n'est pas une fonction at line 36 of chart script:''
Peux-tu appuyer sur le + et me donner le détail de l'erreur s'il te plaît ?
Heu je viens de penser à ça :
reportContext est une variable globale du document, normalement le chart devrait la connaître mais ce n'est pas certain.
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); }
En effet, le document semble ne pas connaître reportContext
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): - ReferenceError: "reportContext" n'est pas défini at line 36 of chart script:''
Pas mieux.
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:''
C'est idiot, il doit juste manquer la bonne méthode à appeler... c'est frustrant !
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); }
Testé et approuvé également ! Merci beaucoup !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager