|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : septembre 2007 Messages : 31 ![]() |
Bonjour,
Je cherche à faire une différence entre deux heures que je récupère pour pouvoir calculer un temps de traitement. Est- ce possible avec BO ? Merci d'avance de vos réponses. |
|
|
00
|
|
|
#2 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Bonjour,
Quel type de données ? Date ? 01/01/1900 18:42:25 ou 20/11/2007 10:59:00 Texte ? 18:42 ou 18h42 ou "20/11/2007 10:59" ou n'importe quoi d'autre Et le résultat en HH OU MINUTES OU SECONDES OU DECIMALES ?
__________________
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
|
|
|
#3 | |
|
Invité régulier
![]() Inscription : septembre 2007 Messages : 31 ![]() |
Citation:
En fait je voudrai faire la différence entre deux heures, mais pas sur la date car c'est toujours la même (date du jour). Dans l'univers j'ai une variable qui me permet de récupérer l'heure (HH:mm:ss) qui m'intéresse. De celle-ci je peux former des objets pour récupérer uniquement l'heure (format HH) , uniquement les secondes (format ss) mais impossible de récupérer uniquement les minutes. En effet si je mets dans le format : mm, je vais récupérer le mois ! Il y a une cependant une possibilité, en faisant un objet de format Hmm, ou je vais bien avoir mes minutes, mais précédées d'un H (ex: H39 , si j'ai 39 minutes dans mon heure). Mais de là je n'arrive pas à retirer ce H... Si j'y parvenais il me suffirait alors de créer de nouvelles variables pour convertir l'heure en nombre de secondes, pour ensuite faire une différence de secondes et pour finir repasser un mode "heure", mais c'est un peu farfelu je trouve. (Mon résultat final doit être en HEURE:MINUTES:SECONDES) N'existe-t-il pas de méthodes moins endurantes et donc plus simples ? Merci. |
|
|
|
00
|
|
|
#4 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Salut,
Pourrais tu me dire ce que tu as comme fonctions de date dans BO XI (je n'ai que BO 6.5 sous la main) avant que je ne te propose une solution basée sur un traitement de chaîne de caractère. Merci.
__________________
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
|
|
|
#5 | |
|
Invité régulier
![]() Inscription : septembre 2007 Messages : 31 ![]() |
Citation:
- Année - DateActuelle - DateRelative - DernierJourDeLaSemaine - DenierJourDumois - EnDate - HeureActuelle - JoursEntre - Mois - MoisEntre - NomDuJour - NuméroDuJourDeAnnée - NuméroDuJourDeLaSemaine - NuméroDuJourDuMois - NuméroDuMoisDeAnnée - Semaine - Trimestre ... bref, comme tu pourras le constater, pas grand chose en relation avec uniquement la notion d'heure ! |
|
|
|
00
|
|
|
#6 | ||||
|
Membre du Club
![]() Inscription : octobre 2007 Messages : 64 ![]() |
J'ai une ou deux idée qui pourront peut etre te menner sur une autre voix.
Si tu utilise oracle tu peux peut etre calculer ce temps en utilisant une requete de ce genre: Code :
Code :
Si tu es en sql server tu peux essayer la fonction datediff: Code :
datediff(dd,dbo.CLI_RUM.DAT_ENT_UM,dbo.CLI_RUM.DAT_SOR_UM) ps: Bon courage... Aitone : merci de penser aux balises codes Greg : Ok, je cherchai justement comment faire, merci... |
||||
|
|
00
|
|
|
#7 | ||||||||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
On est pas , si j'ai bien compris, en SQL à la carte mais avec des DateHeure ramenées par un objet d'Univers.
Donc on va chercher la solution dans BO Mais comme nous n'avons pas Extract() qui n'est d'ailleurs pas non plus en Oracle 8 Partons de l'idée que la Date 1 qu'on appellera l'Objet DTE1 (pour raccourcir le code dans cette page) est 21/11/2007 17:35:06 Pour facilité lecture et clarté chaque étape sera abordée par une formule nommée en variable utilisée pour la suite On va commencer par transformer en chaîne de caractères la zone qui nous intéresse. Code :
Code :
Code :
Code :
61200 + 2100 + 6 = 63306 secondes Il suffit de faire la même conversion pour la Date 2 Les soustraire d2 - d1 = durée et convertir cette durée de secondes en HHmmss Sur cette dernière étape la solution a été donnée par notre bastoonet (modèle breveté Team BO-BA) dans le sujet ci-dessous http://www.developpez.net/forums/sho...d.php?t=421156 Alors ? ????
__________________
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
|
|
|
#8 |
|
Invité régulier
![]() Inscription : septembre 2007 Messages : 31 ![]() |
Salut,
Merci beaucoup, en effet ça marche nikel. J'ai par contre une petite remarque, j'ai utilisé : plutot que : Code :
EnNombre(Gauche(FormatDeDate(<a> ,"HHmmss") ,2) ) Mais sinon ça résoud parfaitement mon problème. Encore Merci !! |
|
|
00
|
|
|
#9 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Tu as tout à fait raison
![]() Le FormatDeDate(<a>.... était de trop puis que je l'avais déjà mis dans la formule de <a> Je vais le corriger dans mon message au cas où quelqu'un le copierait ... A +
__________________
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