|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
J'utilise BO 5.1 et j'aimerai faire le calcul de dates dans un rapport BO entre:
* la 'date de fin' et la 'date de debut' afin de trouver la duree. * la date que je rentre dans un "prompt" et la 'date de debut'. au format Date time. Mais je crois que j'ai un pb avec le type de donnees. Pouvez vous me donner un coup de pousse? Merci. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
Il faut que tu convertisses ta date issue de ton invite au format date car une invite a toujours un format "alphanumérique"
donc =Endate(reponseutilisateur("requete","invite"),'jj/mm/aaaa')
__________________
~~ bastoonet ~~ "Team BAB - Spécialistes BO" |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
Ok merci mais j'ai cette meme erreur de type de donnee. pour touver la duree entre deux date qui proviennent de ma base (date debut et date fin) je cherche la duree.
|
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
que veux tu afficher comme durée ? des jours ?
=JoursEntre(<Date 1> ,<Date 2>)
__________________
~~ bastoonet ~~ "Team BAB - Spécialistes BO" |
|
|
00
|
|
|
#5 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Dans ce cas, il faut commencer par vérifier si ces dates sont des données de type Date ou Caractère.
Pour cela il suffit d'aller dans le Gestionnaire de Données (Menu Données / Commande Visualiser les Données. puis sur l'onglet Définition ayant sélectionné un des objet date dans la liste des objets, vérifier lz Type à droite du nom. Ensuite on avisera ...
__________________
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
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
les donnees sont de types Dates.
Je veux afficher la duree en heure. Merci pour la fonction mais elle renvoie 0 jours, ce qui est normal. Mais comment avoir la duree en heure? |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : octobre 2007 Messages : 64 ![]() |
Tu peux peut etre t'inspirer de ce Post, mais vu que c'est pas la meme version de BO je sais pas si c'est possible.
http://www.developpez.net/forums/sho...d.php?t=445307 |
|
|
00
|
|
|
#8 | ||||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Bonsoir
Mouai... J'étais pas simple ce jour là ! Voici la version courte pour tansformer la partie time d'une datetime en secondes. Code :
Code :
Ensuite il faut tester les jours et les heures pour déterminer le nb de jours ENTIERS se sont écoulés et pour la partie non entière calculer la durée de l'heure de début à minuit (le 1er jour) et la durée de 0h00 à l'heure de fin (le dernier jour)
__________________
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
|
|
|
#9 | ||||||||||||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Calcul de la Durée entre deux dates dans BO
La difficulté réside dans la liste limitée de fonctions Date disponibles. De plus la fonction JoursEntre(<Date 1> ,<Date 2>) ne renvoie que des jours entiers.
Il nous faut d'abord tester si les dates couvrent des jours entiers. <JOURS_ENTIERS_ENTRE> = Nb de jours entiers séparant les deux dates Puis calculer les durées suivantes toutes exprimées en secondes. Pour des Dates différentes <PREMIER_JOUR> = 86400 secondes d'une journée d 24h - horaire exprimée en secondes <JOURS_ENTRE> = Nb de jours entiers x 24h x 3600 secondes <DERNIER_JOUR> = horaire exprimée en secondes Pour des horaires à la même date : <DUREE_MEME_JOUR> = horaire de fin - horaire de début exprimés en secondes 2) CREER LES VARIABLES : Code :
Code :
soit cette <DUREE_MEME_JOUR> soit <PREMIER_JOUR> + <JOURS_ENTRE> + <DERNIER_JOUR> Code :
Pour écrire une version texte du résultat en Heures Minutes Secondes : Utiliser la fonction de bastoonet (honorable membre du Team BO) Code :
Code :
3) Tests et Vérifications : Le SQL suivant nous fournira des exemples Pour tester nos variables. les DATETIME sont simpliste pour pouvoir vérifier mentalement. Code :
TEST1 DDEB = 10/12/2007 08:30 DFIN = 13/12/2007 12:00 JOURS_ENTIERS_ENTRE = 2 PREMIER_JOUR = 55 800 JOURS_ENTRE = 172 800 DERNIER_JOUR = 43 200 DUREE_MEME_JOUR = 12 600 DUREE_EN_SECONDES = 271 800 TEST2 DDEB 12/12/2007 08:30 DFIN 13/12/2007 12:00 JOURS_ENTIERS_ENTRE 0 PREMIER_JOUR 55 800 JOURS_ENTRE 0 DERNIER_JOUR 43 200 DUREE_MEME_JOUR 12 600 DUREE_EN_SECONDES 99 000 TEST3 DDEB 13/12/2007 08:30 DFIN 13/12/2007 12:00 JOURS_ENTIERS_ENTRE -1 PREMIER_JOUR 55 800 JOURS_ENTRE 0 DERNIER_JOUR 43 200 DUREE_MEME_JOUR 12 600 DUREE_EN_SECONDES 12 600 SOMME DE DUREE_EN_SECONDES = 271 800 DUREE_HEURES_DECIMALES 75,5 Merci de me signaler d'éventuelles étourderies ou inexactitudes.
__________________
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
|
|
|
#10 | ||
|
Inactif
![]() Inscription : novembre 2006 Messages : 3 569 ![]() |
Il y a une erreur...
Citation:
Pour le reste, je pense que samidodo et les autres membres ayant parcourus ce topic se joignent à moi pour ne dire qu'un mot Citation:
![]() Et longue vie à la team BO-BAB
|
||
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 6 ![]() |
Merci à tous ca marche tres bien
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com