|
Forums, dernières contributions
Conversion en minutes, secondes sous BO (Business Object)
Salut,
Le plus simple, plus rapide et plus économique est de précalculer dans la DB ton indicateur en divisant ton nb de secondes par 3600. Ensuite, ce float tu le passe dans une pro stock de convertion qui va te renvoyer un char au format hh:mm:ss. Je le fais sur de grosses volumétries issues de données téléphoniques AVAYA, et c'est le plus aisé et économique en terme de ressource DB. L'astuce est de garder dans la DB le nb de secondes divisé par 3600 pour l'utiliser au sein de tes rapports dès qu'il te faut calculer sur ces valeurs (car pour calculer sur un char, pas possible).
Bref, de mon coté ça tourne d'enfer sur une bonne volumétrie, mais peut être as tu des contraintes différentes ou plus fortes que les miennes ...
Si questions : vteyssier@decisionsystems-studio.fr.
Bye
Vincent Teyssier
Bonjour,
J'ai écrit un peu vite car en fait de pro stock de conversion, j'utilise plus précisement une fonction de conversion stockée dans la DB. Cette fonction, je l'appelle à la volée dans le select de l'objet BO pour lequel je souhaite une convertions vers hh:mm:ss. Au niveau de la table, je garde mes indicateurs en int (nb de secondes) et float (nb secondes / 3600) afin de pouvoir calculer d'autres indicateurs sur toutes les dimensions possibles (car si on stocke un char, plus de calculs possible sur d'autres dimensions ni d'agrégations). Bien sûr, je n'ai pas de contraintes d'espace disque.
Passez moi un petit mail sur vteyssier@decisionsystems-studio.fr et je vous enverrai tout le matériel nécessaire pour appliquer la solution et on aura tout le temps d'échanger plus largement qu'à travers le forum.
PS : ma DB est sql server mais le transcodage vers de la syntaxe oracle ou autre ne posera pas de pb.
A bientot
Vincent Teyssier
|