Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Cognos
Cognos Forum d'entraide Cognos : Impromptu, Powerplay, transformer,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2008, 15h35   #1
Nouveau Membre du Club
 
Inscription : septembre 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : septembre 2007
Messages : 79
Points : 36
Points : 36
Par défaut [COGNOS Advanced Report] : Peut-on utiliser plusieurs requêtes dans une variable ?

Bonjour à tous,

Le titre résume bien ce que je souhaite faire.
voici un exemple de variables utilisées pour de l'affichage conditionnel :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
CASE 
   WHEN ([NO_OF_FAILURES] > 0)
   THEN 'With_Data'
   ELSE 
      CASE 
         WHEN ([WO_IS_COMPLETED] = 'Yes')              
         THEN 'Comp_No_Data'
         ELSE 'Not_Comp_No_Data'
      END
END
Une requête me permet de calculer No_OF_FAILURES et une autre requête me permet de savoir si WO_IS_COMPLETED est 'Yes' or 'NO'.
La variable est de type chaine pour récupérer plusieurs valeurs et varier les affichages.

Est-ce que l'on peut faire comme cela ou faut-il une autre syntaxe ?

Merci par avance pour votre réponse
@++
Darcynette
Darcynette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 23h06   #2
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 669
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 669
Points : 2 038
Points : 2 038
Bonsoir,
Hé oui ... encore moi (!) ...

Bon perso, je dirais que non, ce genre de choses ne doit pas être possible, lorsque tu vas appliquer une condition sur une liste alimentée par une "Query1" et que cette condition implique un champs d'une "Query2", il ne reconnaîtra pas ce champs.
Fort peu probable a mes yeux, maintenant je ne prétends pas tout connaître de Cognos et je me base a sur ce que je vois de la 8.2 actuellement.

L'idéal serait que tout ce dont tu as besoin vienne de la requête sur Oracle, et donc dans ce cas modifier la "query" qui contient les champs utilisés pour les conditions.

++
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 10h19   #3
Nouveau Membre du Club
 
Inscription : septembre 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : septembre 2007
Messages : 79
Points : 36
Points : 36
Bonjour !!

Merci pour la réponse !
C'est bien ce que je pensais, mais une confirmation n'a jamais fait de mal

Tout le problème maintenant va être de réussir à créer les variables pour qu'elles fonctionnent, ce qui ne sera pas gagné d'avance....

@++
Darcynette
Darcynette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 17h12   #4
Nouveau Membre du Club
 
Inscription : septembre 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : septembre 2007
Messages : 79
Points : 36
Points : 36
Par défaut Et si c'est possible !!

bonjour à tous,

Je reviens sur ce post car il existe une solution pour faire fonctionner ce genre de requête.
En effet, il "suffit" de créer des listes, imbriquées les unes dans les autres. Je m'explique et je vous donne la solution, telle qu'elle m'a été fournie (je l'ai adapté à l'exemple fourni dans mon premier message) :
1 - Créer une liste portant sur la requête permettant de créer la donnée [WO_IS_COMPLETED]
2 - Ajouter en tant que colonne à cette liste un bloc.
3 - Dans ce bloc, insérer une liste portant sur la requête qui crée [NO_Of_FAILURES] (ces deux requêtes sont complètement indépendantes l'une de l'autre).
4 - Dans cette second liste, insérer un bloc comme colonne.
5 - Dans ce second bloc, insérer une liste portant sur la requête sur laquelle vous souhaitez appliquer la variable et l'affichage conditionnel.
6 - A l'aide des différentes options de masque des en-têtes de colonnes, de cadrage, .... afficher seulement la requête finale (cette dernière étape est juste là pour le design du rapport).

Selon les 3 valeurs possibles de la variable (With_Data, Comp_No_Data et Not_Comp_No_Data), on crée 3 affichages conditionnels différents (avec des couleurs par exemple) et on lance le rapport.
Cela fonctionne parfaitement !!

Explication : Pour que qu'une variable s'applique, la requête qui permet de la créer doit avoir été lancée au moins une fois avant l'emplacement dans le corps de page où on doit l'appliquer. Dans notre cas, cela concerne 2 requêtes, il faut donc que les deux requêtes aient été lancées avant.
La méthode précédente résout ce problème.

Attention, cette astuce fonctionne car les requêtes sont en SQLnatif, je ne sais pas quel serait le comportement avec des donnée provenant du Framework.

voilà, j'espère que cette astuce va en aider certains !!
Je clos le post, si certains ont des questions, il faudra en ouvrir un nouveau

@++
Darcynette.
Darcynette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h57.


 
 
 
 
Partenaires

Hébergement Web