|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Bonjour,
Je travaille sur: Base de données: MySQL Business Objects: XI R3 Mon problème: dans une table des Temps, j'ai une durée en centième, ex: 0,75 correspond à 3/4 d'heure. Le type de ce champ est Double (Numérique dans Designer). Je souhaiterais, dans mes rapports Webi, afficher l'objet Durée sous format hh:min, ex: 0,75 => 45 min ou 1,25 => 01h15min .... Dans Designer, pour l'objet Durée (Numérique), j'ai mis dans le select: Code :
{fn sec_to_time({fn cast(temps.TEMPS_DUREE AS date)}*60*60)} Ma requête testée dans la BD MySQL, focntionne bien ainsi que dans Designer quand j'affiche la liste des valeurs MAIS quand je passe sous Webi ou InfoView dans un rapport, j'ai un #DATATYPE. Je ne comprend pas pourquoi ! Quelqu'un a déjà rencontré ce problème ? Merci d'avance. |
|
|
00
|
|
|
#2 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
Bonjour,
Pour t'affanchir de certains problèmes, il serait plus simple d'effectuer le calcul sur BO : Code :
=FormatDeNombre(Tronque([Indicateur];0);'###0'&'h'&FormatDeNombre(([Indicateur]-Tronque([Indicateur];0))*60;'00')&'mn'
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Malheureusement je dois le faire dans Designer, c'est pour un client et les utilisateurs finaux n'ont pas les compétences de créer ce type de requête dans un rapport Webi.
|
|
|
00
|
|
|
#4 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
OK, dans le designer, qu'as-tu choisi comme type d'objet ? Numérique, Date, Chaîne ?
Est ce que ça correspond bien au résultat de ta fonction ?
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Dans Designer, j'ai mis la fonction cité dans mon premier message. L'objet est un indicateur type Date. ça marche bien sauf quand je passe sous Webi
|
|
|
00
|
|
|
#6 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
Arrête moi si je me trompe, mais ne sachant pas ce que fait ta fonction...
Dans ton premier post, tu parles d'afficher le résultat sous la forme ...h...mn, hors si ta fonction renvoie ce type de données, il faudra que ton objet soit de type "Chaîne"... Car tu ne pourras pas afficher ces caractères même en utilisant le format de cellule.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Toutes mes excuses, c'est vrai j'ai mal exposé mon problème. Le format souhaité est sans la chaine 'h' et 'min'. Ex: 0,75 => 00:45 ou 1,25 => 01:15 .....
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Ma fonction citée dans mon premier post, permet de transformer la durée en secondes en la multipliant par 3600. Si tu fais dans un outil de gestion de BD (ex DbVisualizer):
select sec_to_time(1.25 * 3600) tu auras comme résultat: 01:15 |
|
|
00
|
|
|
#9 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
OK, je pense que le problème est là. En effet, BO ne sait pas gérer les heures sans une date.
Du coup, ce que je te conseille, c'est de rajouter une date "bidon" dans ta formule afin que le résultat soit par exemple : "01/01/1900 01:15". Ensuite, toujours dans le designer, si tu fais un clic droit sur ton objet tu pourras sélectionner le format de cellule afin de ne faire afficher par défaut que les heures et les minutes.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Nawal Consultant en Business Intelligence Inscription : avril 2010 Messages : 115 ![]() |
Enfin une explication
Mais je ne vois pas comment je peux concaténer des dates ! La fonction concat(,) c'est pour les chaînes de caractère |
|
|
00
|
|
|
#11 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 271 ![]() |
Tout à fait, c'est pourquoi il faut que tu transformes ta date en chaine. Tu peux le faire directement sous le designer, mais tout dépendra de ton SGBD pour la syntaxe. Dans le cas d'Oracle :
Code :
to_date('01/01/1900 '||to_char(ta fonction)||':00','dd/mm/yyyy hh:mi:ss')
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#12 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 168 ![]() |
Pour moi, une durée n'est pas une date.
Vous vous proposez de la transformer en Date pour l'afficher exprimée dans le format de date hh:mi:ss. Aucune Sommation ne sera alors possible. Le même client qui veut aujourd'hui une définition dans Designer vous reprochera demain qu'une durée ne puisse être agrégée dans BO. Je suis de l'avis de Tom cette mise en forme doit se faire dans BO et sur un objet Durée de type Numérique Au minimum je prévoirait dans Designer la sommation dans la définition de l'objet (je suppose que SUM existe en Mysql) Code :
{fn sec_to_time({fn cast(SUM(temps.TEMPS_DUREE) AS date)}*60*60)}
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com