EasyKoen Posted January 16, 2014 Share Posted January 16, 2014 Hallo, Onderstaand let statement werkt perfect op mac, maar weigert dienst op windows. Context : Time Field, auto enter calc, replace existing value. Doel: Gebruiker vult 1130 in dit wordt omgezet naar 11:30 Vermoedelijk probleem : Windows evalueert 1130 onmiddellijk naar tijd (1130 uur) nog voor het let-statement kan lopen. Mac doet dat niet... Iemand suggesties? Let ( [ h = Left ( Self ; Length ( Self ) - 2 ) ; m = Right ( Self ; 2 ) ]; Case ( Length (h&m) > 2 and Time (h ;m ;0) ≤ Time (23;59;0) ; Time ( h ;m ; 0 ) ) // END CASE )// END LET Quote Link to comment
0 Willem_P Posted January 16, 2014 Share Posted January 16, 2014 Hallo Koen, Helaas van mij geen antwoord op je vraag hoe het komt dat jouw functie niet onder Windows werkt, maar ik gebruik een soortgelijke functie onder Windows. Deze heb ik even in een Custom Functie gebakken en ziet er zo uit: /* CF_ConvertToTime ( Input ) Zet een ingevoerd getal in (Input) om naar een geldige tijdsweergave. Voorbeelden: Input Resultaat 11 11:00 1115 11:15 825 08:25 WP - 16-01-2014 */ If( PatternCount ( Input;":" ) = 0; // Ingevoerde getal is geen tijdsweergave in hh:mm Let( [ tijd = Time ( Left ( Input; Choose ( Length (Input); 0;1;2;1;2 )); // Uren Right ( Input; Choose ( Length (Input); 0;0;0;2;2 )); // Minuten 0 // Seconden ) ]; Left ( tijd ; Length (tijd)-3 ) // Geeft alleen uren en minuten weer, geen seconden, hh:mm ); Input // Wordt weergegeven als Input al een correcte opmaak in hh:mm heeft ) Edit: Bij mij werkt CF_ConvertToTime ( Self ) dus ook onder windows. Quote Link to comment
0 EasyKoen Posted January 16, 2014 Author Share Posted January 16, 2014 Dag Willem, Jouw oplossing werkt enkel als je veld als "Text" is gedefinieerd. Maar ik heb een "Time" veld nodig... Mijn oplossing werkt ook als het een text veld is... niet als het een tijd veld is. mvg Koen Quote Link to comment
0 Willem_P Posted January 16, 2014 Share Posted January 16, 2014 Koen, bedankt voor je info. Veldtype is in mijn toepassing niet kritisch en dit fenomeen had ik nog niet goed getest. Groet, Willem Quote Link to comment
0 Willem_P Posted January 16, 2014 Share Posted January 16, 2014 Koen, Ik werd toch nieuwsgierig naar de werking van mijn functie in een tijdveld en wat schetst mijn (positieve) verbazing..... het werkt wel! Voor de goede orde: in werk in FMPA 11 en Win 7. Kan het zijn dat jij last hebt van een scripttrigger o.i.d.? Mvg, Willem Quote Link to comment
0 EasyKoen Posted January 16, 2014 Author Share Posted January 16, 2014 Willem, Is test bestandje met 1 Veld zonder triggers 1123 geeft 1123:00:00 in time field, 11:23 in text field FPMA 11 & XP Quote Link to comment
0 Willem_P Posted January 16, 2014 Share Posted January 16, 2014 Bij mij komt 1123 keurig terug als 11:23:00 Toch vreemd....dan is er iets anders aan de hand....maar wat? Quote Link to comment
0 EasyKoen Posted January 16, 2014 Author Share Posted January 16, 2014 Dus enige verschil is dat jij op windows 7 zit en ik op XP, In bijlage mijn test bestand met beide oplossingen ok op Mac nok XP. Koen test.fp7 Quote Link to comment
0 Willem_P Posted January 16, 2014 Share Posted January 16, 2014 Koen, Jouw bestand hier getest en resultaten in de verschillende velden zijn: Koen: leeg veld na bevestiging invoer Willem: weergave 1123:00:00 Nu onze beider functies ingevoerd in twee Time-velden in mijn testbestand, en hier werken ze beide prima! Ik kan niet verklaren waar dit verschil in zit, maar ik stuur mijn testbestand hierbij mee voor de liefhebbers testkanweg.fp7 Quote Link to comment
0 EasyKoen Posted January 16, 2014 Author Share Posted January 16, 2014 SPOOKY Ik kan dit niet verklaren... jouw file werkt wel op mijn XP, met exact dezelfde formules en velden. Jouw bestand werd aangemaakt op PC het mijne op Mac. Heb nu mijn bestand Save as copy gedaan : no go Daarna Save as Clone : Works!!!! Bedankt voor de hulp Willem Quote Link to comment
Question
EasyKoen
Hallo,
Onderstaand let statement werkt perfect op mac, maar weigert dienst op windows.
Context : Time Field, auto enter calc, replace existing value.
Doel: Gebruiker vult 1130 in dit wordt omgezet naar 11:30
Vermoedelijk probleem : Windows evalueert 1130 onmiddellijk naar tijd (1130 uur) nog voor het let-statement kan lopen. Mac doet dat niet...
Iemand suggesties?
Let ( [
h = Left ( Self ; Length ( Self ) - 2 ) ;
m = Right ( Self ; 2 )
];
Case ( Length (h&m) > 2 and Time (h ;m ;0) ≤ Time (23;59;0) ; Time ( h ;m ; 0 )
) // END CASE
)// END LET
Link to comment
9 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.