Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 30/07/2007, 18h46   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 13
Points : 13
Par défaut Format de durée

Bonjour tout le monde,

Voici mon problème:

J'ai un objet numérique dans mon univers qui représente une durée en secondes, qui devrait s'afficher en format hh:mm:ss dans les rapports, tout en gardant ses capacités d'agrégation.

BO refuse d'y appliquer un format de date/heure (ce n'est pas un objet de type date), et si je le convertis en date BO refuse de le sommer.

Avez-vous déjà rencontré ce problème ? Comme pourrais-je le résoudre (si je le peux)?
bybeach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 14h39   #2
Membre régulier
 
Inscription : juillet 2007
Messages : 87
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 87
Points : 85
Points : 85
Je n'ai pas fait l'essai mais as-tu essayé de le déclarer en date, par exemple en mettant EnDate(<variable>,"s"). Et de le formater normalement ensuite?
BzhCH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 19h04   #3
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Par défaut ne pas perdre une seconde

Salut,
Un objet NUMERIQUE! d'un univers ... est numérique
la fonction
Code :
=EnDate("01/01/2007 13:25:46" ,"jj/mm/aaaa hh:mm:ss")
attend du texte pas du numérique à l'identique de
Code :
SELECT to_date('01/01/2007 13:25:46','dd/mm/yyyy hh24:mi:ss') FROM dual
dans Oracle.

Ne pas penser un seul instant pouvoir transformer 112 en charactère puis en date en précisant que ce sont des secondes. BO comme Oracle attend un nombre de secondes limité à 60 !

Le plus simple est de se faire un objet personnel en utilisant les fonctions
Tronque et Mod de la façon suivante
Exemple soit une durée de 262 secondes ramenée par une variable DUREE
Code :
1
2
3
=Tronque((Somme(<DUREE>)/3600) ,0) &"H "
&Tronque((Mod(Somme(<DUREE>) ,3600)/60) ,0)&"' "
&Tronque(Mod(Mod(Somme(<DUREE> ),3600) ,60) ,0)&"''"
Le résultat est 0H 4' 22''
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 16h38   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 13
Points : 13
D'accord, je l'envisageais comme ça aussi. Mais dans ce cas, cet objet ne sera plus aggrégable dans le rapport.

Imaginons.

Je stocke la durée des appels téléphoniques de ma famille. Je crée mon objet pour afficher la durée de manière jolie.
Dans mon rapport, je ramène la durée par membre de la famille, le tableau s'affiche avec l'axe des membres de la famille, et la durée.
Si je retire l'axe des membres de la famille, la durée ne sera pas la durée totale de communication, mais un truc complètement aberrant.

Y a-t-il un moyen d'arranger cela ?

PS: merci pour vos réponses BzhCH et BRUNO2R
bybeach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 10h24   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 13
Points : 13
Oui en effet, j'avais compris

Finalement voila la formule que j'ai mise en place (<MA DUREE> est en minutes dans l'univers)

Code :
1
2
3
4
5
6
7
8
9
trunc(@SELECT(<MA DUREE>)/60,0) || ':' || 
CASE WHEN trunc(mod(@SELECT(<MA DUREE>),60),0) < 10 
   THEN '0' || to_char(trunc(mod(@SELECT(<MA DUREE>),60),0)) 
   ELSE to_char(trunc(mod(@SELECT(<MA DUREE>),60),0)) 
END || ':' || 
CASE WHEN mod(@SELECT(<MA DUREE>)*60,60) < 10 
   THEN '0' || to_char(mod(@SELECT(<MA DUREE>)*60,60)) 
   ELSE to_char(mod(@SELECT(<MA DUREE>)*60,60)) 
END
L'objet est une dimension de type alphanumérique, et donne un affichage HH:MM:SS.

Bien sur, toute aggrégation à l'intérieur des rapports est impossible.

Quelqu'un aurait-il une idée pour rendre cette aggrégation possible ?
bybeach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 12h04   #6
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Par défaut Agrégation

Si ton objet est de type alphanumérique ... pas d'agrégation possible
C'est pour cela que j'opterais pour une solution dans BO et non pas en amont ce qui permet de se créer une variable sur Somme(DUREE)
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 12h39   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 13
Points : 13
C'est bien ce que je me disais. Le problème était que les utilisateurs voulaient avoir un objet dans l'univers, une durée affichée dans le format hh:mm:ss.

L'objet est créé, on s'assurera que les utilisateurs sont conscients de ses limites.

Merci à tous pour votre aide
bybeach 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 08h16.


 
 
 
 
Partenaires

Hébergement Web