Standaard vereist FileMaker de invoer van tijd met dubbele punten als scheidingsteken tussen uren, minuten en seconden. Snel invoeren van tijden is dan slecht mogelijk en vooral als er veel tijden ingevoerd moeten worden is dat vervelend.
Als u de tijd op een andere wijze wilt invoeren dan kan onderstaande berekening geplaatst worden bij de veldopties, tabblad Automatisch Invoeren, optie Berekende Waarde. Denk er aan dat de bijbehorende optie 'Bestaande waarde van veld niet vervangen' uit staat. Door het gebruik van de functie Self hoeft de berekening niet aangepast te worden.
De berekening negeert seconden en accepteert de invoer als uren en minuten. Een invoer van 1,5 wordt omgezet naar 1:30, 2,25 wordt 2:15 enzovoort.
Bij een invoer zonder dubbele punt en komma neemt de berekening de rechter twee cijfers als minuten en de andere als uren. De minuten mogen groter zijn dan 59 waarbij de uren verhoogd worden en ook mag de invoer korter zijn dan drie tekens. Een paar voorbeelden van invoer en het resultaat:
1 -> 0:01
12 -> 0:12
90 -> 1:30
112 -> 1:12
2112 -> 21:12
12112 -> 121:12
Dit voorbeeld gaat uit van een veld van veldtype Tijd, voor het veldtype Tijdstempel werkt het nog niet. Uiteraard kan een Eigen Functie (FileMaker Pro Advanced vereist) gemaakt worden om de berekening op één centrale plaats te hebben.
De berekening kan ook op een veld toegepast worden met scriptactivering en ook kan het aangepast worden voor het veldtype Tijdstempel, daarover meer in twee volgende tips.
Code: Selecteer alles
Let ( [
veldinhoud = Self ] ;
Case (
// invoer bevat geen dubbele punt en wel een komma van decimale waarde
Position ( veldinhoud ; ":" ; 1 ; 1 ) = 0 and Position ( veldinhoud ; "," ; 1 ; 1 ) > 0 ;
GetAsTime ( Truncate ( GetAsNumber ( veldinhoud ) * 3600 ; 0 ) ) ;
// invoer bevat geen dubbele punt van tijd waarde
Position ( veldinhoud ; ":" ; 1 ; 1 ) = 0 ;
GetAsTime ( Replace ( "000" & veldinhoud ; Length ( veldinhoud ) + 3 - 1 ; 0 ; ":" ) ) ;
veldinhoud
)
)