|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 16 ![]() |
Bonjour,
Je suis actuellement entrain de travailler sur Cognos 8 dans le but de créer des rapports prédéfinis dans report studio. Dans un de mes rapports, l'utilisateur peut choisir d'afficher des "catégories de produit", ou des "produits", choix par radio button. Lorsque je recharge mon rapport, je filtre donc les données de mon cube selon le choix effectué par l'utilisateur ainsi que sur les lignes à 0. Voici la syntaxe de mon filtre : #'filter(descendants([vente editeur detail quotidien].[Produits].[Produits].[Produits]->:[PC].[@MEMBER].[Nomdif];' + prompt('choixP';'token';'2') + '); tuple([Ca Net];[Total Période])<>0 or tuple([Qtés Mises en vente];[Total Période])<>0)'# Le problème est le suivant, le temps de reponse de cette requète est au moins 10 min. Connaissez-vous une solution ou une piste pour effectuer un filtre moins gourmand en terme de temps? J'espère avoir été claire dans mes explications. Je vous remercie d'avance pour votre aide. Clair |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 205 ![]() |
Quand tu fais le test unitaire statique sans la macro prompt, est-ce que tu rencontres également ce problème de performances?
Je pense que c'est plutôt la condition du filter qui est en cause. Qu'est-ce que [Total Period]? Un autre calcul ou un alias vers un membre? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 16 ![]() |
Bonjour,
Alors, le problème est toujours le même avec le "Prompt". C'est effectivement la la condition du filter qui est en cause, mais je ne sais comment procéder autrement afin de supprimer mes lignes à 0. [Total Period] est un alias vers un autre membre. Je te remercie de ta réponse. Clair |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : janvier 2007 Messages : 205 ![]() |
Pour supprimer les lignes qui remplissent ta condition, il n'y a pas d'autre solution que la fonction filter. C'est la méthode utilisée par le moteur d'Analysis Studio pour implémenter le "Suppress Zero" par exemple.
Tu es sûre que [Total Period] est un alias vers un autre membre? Ce ne serait pas plutot un alias vers un calcul du genre total(... within...), parce que dans ce cas, il se peut que ce total soit effectué pour chaque produit. Si je peux t'orienter vers une solution, ce serait de trouver une expression plus optimisée pour ta condition. Essaye par exemple: not(tuple1=0 and tuple2=0) Si [Total Period] est un calcul, essaye de ne pas utiliser tuple, parce que tuple ne doit prendre que des membres comme argument, même si la syntaxe un peu souple permet de passer autre chose (mais cette syntaxe devient de plus en plus controlée au fur et à mesure des nouvelles versions de Cognos). |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 16 ![]() |
Tu as raison, [Total Period] est alias vers un calcul!
Je te remercie pour les pistes de recherche. Je vais essayer d'utiliser une autre fonction que tuple. Merci encore pour ton aide... Clair |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com