0

J'ai un champ sur mon BD (appelé Minutes) et il compte le temps total. J'ai besoin de le montrer comme hh: mm et j'ai fait cette fonction qui fonctionne parfaitement mais je suis tellement sûr qu'il y a un moyen plus rapide et plus facile d'obtenir le même résultat ... savez-vous comment puis-je le faire? Je l'ai essayé avec time() et quelques essais avec totext() mais rien ne marche ... vu aussi This mais il écrit 04h08 par exemple au lieu de 04h08Crystal Reports 8 comment passer les minutes à hh: mm

if Truncate(REMAINDER({TABLE.MINUTES},60))<10 then //if hour<10 
     if len(TOTEXT(TRUNCATE((({TABLE.MINUTES}) MOD 60)/10),0))>0 then //if minutes >9 
      "0" + TOTEXT(Truncate ({TABLE.MINUTES}/60),0)+" : "+ TOTEXT(TRUNCATE((({TABLE.MINUTES}) MOD 60)/10),0) & TOTEXT((({TABLE.MINUTES}) MOD 60) MOD 10,0) 
     else 
      "0" + TOTEXT(Truncate ({TABLE.MINUTES}/60),0)+" : 0"+ TOTEXT((({TABLE.MINUTES}) MOD 60) MOD 10,0) 
    else 
     if len(TOTEXT(TRUNCATE((({TABLE.MINUTES}) MOD 60)/10),0))>0 then 
      TOTEXT(Truncate ({TABLE.MINUTES}/60),0)+" : "+ TOTEXT(TRUNCATE((({TABLE.MINUTES}) MOD 60)/10),0) & TOTEXT((({TABLE.MINUTES}) MOD 60) MOD 10,0) 
     else 
      TOTEXT(Truncate ({TABLE.MINUTES}/60),0)+" : 0"+ TOTEXT((({TABLE.MINUTES}) MOD 60) MOD 10,0) 

Voici quelques exemples de ce que je dois:

  • données dans Minutes: 09 -> Résultat devrait être: 00:09
  • données dans Minutes: 50 -> Résultat devrait être: 00:50
  • données dans Minutes: 60 -> Résultat devrait être: 01:00
  • données dans Minutes: 65 -> Résultat devrait être: 01:05
  • données dans Minutes: 605 -> Résultat devrait être: 10:05

Merci tant

+0

ne connaît une meilleure façon ?? – Megasa3

Répondre

0

Essayez ceci: (dans la syntaxe Crystal)

if(Truncate({TABLE.MINUTES}/60) < 10) then 
    ToText(Truncate({TABLE.MINUTES}/60),"00")+" : " +ToText(Remainder({TABLE.MINUTES},60),"00")