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 07/06/2011, 21h00   #1
Invité régulier
 
Femme Cynthia
Assistant aux utilisateurs
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Cynthia
Localisation : Canada

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Biens de consommation

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 9
Points : 9
Par défaut Report Studio - Fonction if then else à partir d'une donnée calculée

Bonjour!!

Voici mon problème... Je tente d'afficher, à partir de la date d'échéance, le nombre de jours de retard pour une série de tâches, et indiquer 'N/A' lorsque la tâche en question n'est pas en retard.

Pour l'instant, j'ai créé une nouvelle donnée élémentaire qui fonctionne bien, 'Days Overdue' qui se calcule comme suit:

_days_between ([Due Date]-current_date)

Ensuite, lorsque j'essaie d'ajouter un calcul de la requête afin d'afficher le nombre de jours seulement dans les cas ou la tâche est en retard, je n'y arrive pas.... Voici ce que j'ai essayé:

IF ( [Calcul Days Overdue]<0 ) THEN
( [Calcul Days Overdue] )
ELSE
( 'N/A' )

Quelqu'un peut m'aider??

Merci beaucoup!!
Cynthia1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 22h34   #2
Membre habitué
 
Avatar de tfc3146
 
Homme Robert Labrousse
Développeur décisionnel
Inscription : février 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Robert Labrousse
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2009
Messages : 79
Points : 134
Points : 134
Bonsoir,

La syntaxe a utilisé sous report studio est la suivante :

Code :
1
2
3
4
5
6
 
CASE ...
WHEN condition1 THEN expression
...
ELSE
END
Il ne vous reste plus qu'à transposer votre condition avec un CASE, et ça devrait fonctionner
__________________
Citation:
C'est en faisant n'importe quoi qu'on devient n'importe qui
Si un message vous a aidé, n'hésitez pas à mettre +1
tfc3146 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 00h07   #3
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
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 668
Points : 2 036
Points : 2 036
Bonjour, (ou bonsoir)

J'aurais tendance a penser qu'il s'agit d'un problème lié au type de donnée renvoyée par tel ou tel champs ou résultat.
Certes, je ne sais pas ce qui se passe vraiment, car
Citation:
je n'y arrive pas
n'est pas une information très "expressive": quelle erreur, qu'est ce qui se passe exactement ?
Bref, en attendant, j'aurais envie de demander confirmation:
. a vue de nez, je dirais que [Calcul Days Overdue] est une valeur numérique, et 'N/A' (la, il n'y a pas beaucoup de chance que je me trompe) alphabétique uniquement.
J'aurais tendance a dire que le problème se trouve ici, car pour un champs tu demandes a Cognos de renvoyer tantôt une valeur texte,tantôt numérique; ca peut paraître "con" mais je ne suis pas sur que cela passe, Oracle le ferait tout seul de lui même (le "cast"), mais je crois avoir déjà eu des soucis avec ce genre de choses dans Cognos (dans un DataItem, ou une Variable, je ne sais plus).

Si tel est bien le cas, et que [Calcul Days Overdue] est bien numérique, il suffit pour tester de renvoyer -1 a la place de 'N/A' et l'éventuel message d'erreur devrait ne plus apparaitre.
(il reste juste a "masquer" l'éventuelle valeur -1 (ou autre) avec une variable de style)

@+
__________________
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 08/06/2011, 14h47   #4
Invité régulier
 
Femme Cynthia
Assistant aux utilisateurs
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Cynthia
Localisation : Canada

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Biens de consommation

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 9
Points : 9
Bonjour!!

Ce matin j'ai tenté de remplacer le 'N/A' par une valeur numérique, et je reçois toujours un message d'erreur.... Voici ce qui s'affiche:

UDA-QOS-0006 Erreur
UDA-SQL-0460 Une erreur s'est produite pendant le traitement local.
UDA-EE-0020 The ''Expression Engine'' node ''_days_between'' requires more operands.

QE-DEF-0459 CCL Exception
RQP-DEF-0177 Une erreur s'est produite lors de l'exécution 'sqlPrepareWithOptions' état='-239'.

UDA-SQL-0460 Une erreur générale s'est produite penadant le traitement local.
UDA-EE-0020 The ''Expression Engine'' node ''_days_between'' requires more operands.

RSV-VAL-0004 Impossible de trouver les informations de requête pour l'élément GCC Number

RSV-VAL-0004 Impossible de trouver les informations de requête pour l'élément
....... ainsi de suite pour chacun de mes éléments....

Serait-ce possible que ce soit l'utilisation de Current_date dans ma donnée élémentaire qui cause cette erreur??

Merci beaucoup pour votre aide!!
Cynthia1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h53   #5
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
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 668
Points : 2 036
Points : 2 036
Bonjour,

Désolé, je n'avais pas prêté attention a la fonction qui était utilisée.
Voici ce que dit Cognos:
Citation:
_days_between ( date_exp1, date_exp2 )
Returns a positive or negative number representing the number of days between "date_exp1" and "date_exp2". If "date_exp1" < "date_exp2" then the result will be a negative number.
La fonction attends 2 dates, il semble que tu passes qu'une seule (une date moins un autre ?, il ne va pas aimer).

C'est déjà cela a corriger en premier.

@+
__________________
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 08/06/2011, 15h52   #6
Invité régulier
 
Femme Cynthia
Assistant aux utilisateurs
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Cynthia
Localisation : Canada

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Biens de consommation

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 9
Points : 9
Bonjour Sunchaser!!

En fait, lorsque j'utilise uniquement cette fonction, tout fonctionne correctement, mais c'est plutôt lorsque je tente d'utiliser cette donnée élémentaire dans une autre fonction que j'obtiens des messages d'erreur....

Comment puis-je faire pour déterminer le nombre de jours de retard d'une tâche autrement??

Merci énormément!!
Cynthia1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 16h08   #7
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
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 668
Points : 2 036
Points : 2 036
Chére Cynthia1987

Je ne sais pas ou je ne suis pas sur de comment tu utilises la fonction "_days_between ".
Si je fais un test comme ceci:
Code :
1
2
 
_days_between ([THIS_DAY], [TWO_DAYS])
Ou [THIS_DAY] = sysdate, et [TWO_DAYS] = sysdate -2 (donc respectivement aujourd'hui et il y a 2 jours), j'ai bien 2 qui s'affiche. Le rapport tourne, ok, etc.

Si je créé un autre DataItem, avec dedans:
Code :
1
2
3
4
5
 
IF ( [lap_days] < 0 ) THEN
    ( [lap_days] )
ELSE 
    ( -1 )
Ca marche comme attendu...
(Et de ce fait je confirme que
Code :
1
2
3
4
5
 
IF ( [lap_days] < 0 ) THEN
    ( [lap_days] )
ELSE 
    ( 'NA' )
ne fonctionne pas / ne valide pas
pour les raisons exprimées dans une réponse précédente.
__________________
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 08/06/2011, 16h49   #8
Invité régulier
 
Femme Cynthia
Assistant aux utilisateurs
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Cynthia
Localisation : Canada

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Biens de consommation

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 9
Points : 9
Bonjour Sunchaser!!

Oui je crois en effet que j'avais dû faire une erreur de syntaxe car tout fonctionne superbement maintenant !!!

Merci beaucoup pour ton aide précieuse!!!
Cynthia1987 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 20h44.


 
 
 
 
Partenaires

Hébergement Web