Bonjour,
J'ai mis en place des paramètres de rapports, et je voulais savoir s'il était possible de sélectionner plusieurs élements de la list box.
Merci
Bonjour,
J'ai mis en place des paramètres de rapports, et je voulais savoir s'il était possible de sélectionner plusieurs élements de la list box.
Merci
C'est possible! Il te suffit de cocher "Allow Multiple Value" dans l'édition de ton paramètre (dans l'encadré "Selection list values" -> en haut à droite)
je viens de le faire mais j'ai ce message d'erreur, je ne comprends pas:
le filtre que j'ai est :Les éléments suivants contiennent des erreurs :
ReportDesign (id = 1):
+ La définition de filtrage utilisant l'expression "params["RP_ElementName"]" est non valide.
Une erreur sest produite dans la conversion du type de données.
Type de données incorrect détecté dans lexpression conditionnelle.
expression : params["RP_ElementName"]
opérateur : égal à
valeur 1 : row[ElementName]
Quand est ce que viens cette erreur?
Essaye de mettre une valeur dans "Selectionner le texte d'affichage".
Est ce que ceci fonctionne quand tu décoches la case?
quand j'appui sur aperçuQuand est ce que viens cette erreur?
Avec ou sans valeur, il n'y a pas de changement.Essaye de mettre une valeur dans "Selectionner le texte d'affichage"
oui, je n'ai pas ce message d'erreur.Est ce que ceci fonctionne quand tu décoches la case?
Ce que j'ai peut être oublié de dire c'est que mon paramètre de rapport est utilisé dans un graph et dans un texte dynamique (pour le titre du graphique)
Je voulais te dire, est ce que cette erreur apparait avant ou après avoir sélectionner tes valeurs ?
Car si c'est avant alors c'est une erreur de paramètre sinon c'est un problème d'utilisation du paramètre!
Ca intervient après que je sélectionnes les valeurs...
Mais je ne comprends toujours pas
Une liste ne peut pas être utiliser comme une variable normale!
Donc si tu écris params["RP_ElementName"], ceci est faux!
Par exemple, tu peux l'utiliser dans ta requête SQL si tu as un IN!
La question est donc de savoir comment récupérer un élément de ma liste ou comment utiliser une liste sous BIRT!
Tu peux regarder ce document pour t'aider: [ame="http://www.scribd.com/doc/15350321/BIRT-Multi-Value-Cascading-Parameters"]BIRT Multi Value Cascading Parameters[/ame]
Tu peux essayer d'utiliser toString() pour afficher ta liste!
Bonjour,
Il faut tout simplement construire ton filtre autrement.
Tu essayes actuellement de comparer un tableau à une valeur.
Il faut comparer la valeur à chaque valeur du tableau :
expression : row["ElementName"]
opérateur : In
valeur 1 : params["RP_ElementName"]
C'est vrai que cette remarque est intéressante. Je l'ai donc suivie et activé la case "Allow Multiple Value" ... et nouveau message d'erreur
je vous l'ai mis en fichier joint.
C'est du à quoi ? je n'ai pas vraiment compris
Comment utilises tu params["RP_ElementName"]? Quel est ton code?
Désolé, j'avais oublié un petit quelque chose de rien du tout.
ca marche parfait !!!!
Merci encore à vous
Effectivement, il faut écrire params["RP_ElementName"].value.
Voici un exemple : ParametreMultipleEtFiltre.rar en version 2.6.1 avec le Data Source d'exemple.
Ah, j'ai une autre petite question par rapport à ça.
J'utilise ce paramètre de rapport dans un texte dynamique en guise de titre de mon graphique (pour des raisons d'esthétisme car je sais qu'on peut le faire dans le graph),
mais lorsque je sélectionne plusieurs éléments, le titre n'affiche pas tous les éléments (d'ailleurs il en affiche même pas un, à la place il me met des codes bizzares)"Number of " + params["RP_ElementName"] + " by state"
Dans un Dynamic Text, si tu mets params["MonParam"].value, tu as les résultats sous la forme : "[Sélection1, Sélection2]".
Sinon, c'est très probablement un simple tableau donc une petite itération devrait le faire aussi.
Oui, j'ai bien essayé avec le .value mais ça ne fonctionne pas.
En fait à la place des valeurs que je voudrais obtenir c'est à dire tous les ElementName que j'ai coché auparavant dans la liste, j'ai :
Serait-tu déchifrer ceci ?Number of[Ljava.lang.Object;@f4a0f4a by state
Par ailleurs, quand tu parles de petite itération ... pourrait-tu me donner un exemple s'il te plaît (je suis débutant, j'ai regardé sur le net mais mes expérimentations ont été sans succés)
En effet, ça marche uniquement s'il y a params["MonParam"].value tout seul dans le Dynamic Text.
Sinon, ceci fonctionne aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var chaine = "Ma sélection : "; for (i=0; i<params["MySelection"].length; i++) { chaine += params["MySelection"].value[i]; if (params["MySelection"].length-1 != i) chaine += ", "; } chaine
Ok, en fait j'ai adapté ce code et d'après ce que je vois, il a aucun impact bizarre...
Cependant j'ai ré-essayé avec params["MonParam"].value[0] et là (avec un paramètre à sélection multiple)... parmi les éléments sélectionnés de ma liste, seul le premier élément apparait.
je n'arrive toujours pas à faire afficher la totalité des éléments sélectionnés.
Je cherche encore mais aidez moi si vous avez une lumière svp
Tu as peut être fais une erreur dans ton code.
Que te renvoie params["MySelection"].length ?
ça me renvoi 0.0
Mais juste pour être sur, quand tu me parle detu veux dire : params["MonParamètre"].length ?params["MySelection"].length
Partager