FileMaker - Tip 140

 

Klik op om terug te keren naar het selectiemenu.

Tip 140 - "Onverklaarbare" formuleproblemen bij vreemde bestanden

Blij dat we deze keer iemand uit het gekkenhuis hebben kunnen redden: "Dit heb ik nooit meegemaakt en ik word er knettergek van. Ik krijg een perfect werkend bestand toegestuurd van een Amerikaanse vriend. Alles loopt op wieltjes en ik gebruik het bestand al weken. Nieuwsgierig hoe het precies werkt, open ik een calculatievenster en bestudeer de formule. Ziet er knap uit! Ik wil op OK klikken om het formulevenster weer te sluiten en KRIJG EEN FOUTMELDING die zegt dat mijn formule niet correct is! Ik kan het venster dus niet meer sluiten, tenzij met Cancel. Als ik het daarna weer open, staat alles er netjes zoals voorheen. Ik klik opnieuw op OK... en daar is die foutmelding weer! Help!! Dit is hekserij, voodoo! Ik heb al geprobeerd de komma's te vervangen door puntkomma's, maar niets helpt."

Dit is erg, natuurlijk, temeer daar we de correspondent goed kennen: een hele FileMaker-crack!

Toch moet er een verklaring zijn voor dit vreemde fenomeen.

Laat ons eerst een voorbeeldje geven. Stel dat we de grootte van een bedrag willen controleren: als we in het veld Bedrag een getal groter dan 1.000 intikken, dan krijgen we een foutmelding: "Bedrag te hoog"; in het andere geval meldt het systeem niets: "".

If(Bedrag > 1000;"Bedrag te hoog";"")

Wat is er aan de hand en waarom hebben we hier te doen met een toch wel heel erg speciaal probleem? Vooral in België en Frankrijk doet het zich geregeld voor. Dit geeft al een hint: het zijn onze toetsenbord-instellingen en onze Number-formats die ons hier parten spelen, met name onze AZERTY's en onze numerieke instellingen waarbij niet de punt maar de komma als decimal separator gebruikt wordt. FileMaker gebruikt - afhankelijk van de taalversie - in een formule de puntkomma of de komma als parameter separator: de komma in de States, de puntkomma in de UK-versie . Wanneer niet de puntkomma maar de komma actief is in je FileMaker-systeem (en dat zie je in de functies met hun parameters bovenaan in de rechterkolom in het calculatie-venster), dan kan het zijn dat je computer de komma niet als parameterseparator maar als decimaalseparator interpreteert!

Wanneer in je formule een cijfer gevolgd wordt door een separator, dan interpreteert FileMaker het getal als een decimaal getal waar het of de cijfer(s) na de komma ontbreken! Bij onze vraagsteller stond er dus (let op de komma's in plaats van de puntkomma's):

If(Bedrag > 1000,"Bedrag te hoog","")

FileMaker had de puntkomma's dus netjes vervangen door komma's, en dat werkte perfect. Maar als je na bestudering van de formule het calculatievenster wil sluiten, dan treedt de control engine in werking, en die interpreteert de zaak verkeerd: het systeem ziet die 1000 als een decimaal getal (er staat immers een komma achter), maar na die komma staat niets meer! Dit is uiteraard een fout volgens de control engine van het calculatie-venster: het systeem "denkt" immers dat we een onvolledig getal ingetikt hebben. Je lost dit op door vóór de komma een spatie tussen te voegen... Dan is de komma niet langer een decimal separator, maar een parameter separator... Dus:

If(Bedrag > 1000 ,"Bedrag te hoog","")

 
avd@avd-ci.be - contactformulier