|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
Bonjour,
J'aimerais créer un filtre pour mon tableau croisé via script dans le onPrepare. Mon problème c'est que j'ai trouvé des exemples pour les tableaux mais ils ne fonctionnent pas avec les tableaux croisés. Je pense savoir comment créer le filtre mais je ne trouve pas comment l'ajouter à mon tableau croisé : Code :
Code :
Code :
Bonne après-midi, -- Marie |
||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
Hello,
Le cube est hérité ou est dans le rapport? Ce cube c'est généré avec un .datadesign? Sinon , il y a un onglet filtres dans le Cube et dans le Crosstab , vous pouvez filtrer à partir d'un paramètre par là , pas besoin de script.
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#3 | ||||
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
Le cube est hérité.
Il est créé dans un .datadesign. Oui si je pouvais filtrer directement par l'onglet ce serait mieux. Mais dans mon cas je ne pense pas que ce soit possible. Je m'explique : je veux ajouter une condition seulement dans certains cas et pas dans d'autres. Si je passe par l'interface voilà ce que je fais :
Je ne peux pas filtrer la valeur 'Tous' car elle ne se trouve pas ds mon cube. Je l'ai ajouté "à la main" pour donner le choix à l'utilisateur de pouvoir tout sélectionner. J'espère que je suis assez claire. J'ai aussi essayé de mettre ça ds le résultat : Code :
C'est pourquoi j'ai pensé au script. -- Marie |
||||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Nicolas Vives Inscription : avril 2010 Messages : 178 ![]() |
Bonjour,
J'ai pu produire le comportement que tu cherches. Ta dernière idée est la bonne, l'erreur se trouve sans doute dans la syntaxe ou les fonctions utilisées. Tu peux télécharger mon exemple ici (tu peux le tester avec les valeurs de paramètre "TOUS" ou "Italy", par exemple). Les différences notables :
En tout cas, tu n'es pas loin. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
Le paramètre en question est un paramètre multi valeur?
Si oui , il retourne un objet et non un string. params["CountryParameter"].value.join(); passer par ce genre de script http://blog.zenika.com/index.php?pos...eurs-multiples
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
@nicolas.1.vives
Je vais tester ton rapport. J'en profite pour expliquer pourquoi je n'ai pas utiliser cette méthode. Si dans mon premier crosstab je fais ce que tu dis ça fonctionne. Mais si je c/c ce crosstab alors ça ne fonctionne plus (erreur génération état ...). Bref dès que j'ai deux conditions ou plus identiques ça crash. Mais je vais quand même regarder par là. @Stephan Non ce n'est pas un paramètre multi valeur. Il s'agit d'une liste avec un seul choix possible. |
|
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
@nicolas.1.vives
Ci-joint ton fichier avec un filtre sur les dimensions, qui ne fonctionne pas. J'ai mis l'extention en .txt car le site ne voulait pas du rptdesign, je ne sais pas trop pourquoi. Sinon j'ai essayé un nouveau code pour le script : Code :
Je continue de chercher. Merci pour vos réponses. -- Marie |
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
J'ai rajouté un filtre sur le Crosstab.
[GEO/COUNTRY] LIKE if (params["Pays"].value == 'All') { '%' } else { params["Pays"].value } ça marche nickel.
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Nicolas Vives Inscription : avril 2010 Messages : 178 ![]() |
Moi j'ai continué sur l'état que tu viens de poster.
J'ai cru voir (j'ai eu des problèmes pour ouvrir le fichier) que dans la condition du filtre tu utilises la syntaxe "dimension["Pays"]["COUNTRY"]" pour désigner la donnée. Cette syntaxe est utilisée quand tu utilises les éléments de la catégorie "Current Data Cube" dans l'expression builder. Moi j'ai fait la même chose avec la catégorie "Available Column Bindings", qui produit la syntaxe "data["COUNTRY"]"... et ça marche. Remplace l'un par l'autre et regarde. Si ça ne marche toujours pas, j'aurais besoin de plus d'éléments pour comprendre tes erreurs (analyse du retour d'erreur, explication de ta procédure - est ce que tu fais des copiés-collés, etc). Bon courage. |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
Effectivement , je pense que Nicolas a raison. Il faut filtrer le Crosstab et pas le Cube car hérité.
donc data["..."] ( le binding ) à la place de dimension["..."] ( membre du cube ). les 2 API sont très similaires , mais c'est pas la même chose , le Crosstab est l'image du Cube , ce que vous voulez faire c'est filtrer l'image , pas sa source ( le cube Actuate est déjà généré et monté en mémoire lors de son usage comme source ).
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#11 | ||||
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
@nicolas.1.vives & Stephan
En remplaçant l'un par l'autre chez moi ça ne fonctionne pas. Je trouve ça bizarre. Mais mon code : Code :
Du coup je viens de le remplacer par : Code :
Je ne sais pas pourquoi j'ai pas pensé à l'opérateur LIKE ... j'ai testé beaucoup de choses improbables mais pas ça. Tout de même je trouve ça étrange que ça ne fonctionne pas avec l'opérateur égal. Cependant je suis trop débutante pour comprendre le fonctionnement interne des tableaux croisés / cubes / dimensions pour le moment. Merci à vous deux en tout cas ! -- Marie |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com