Tips en trucs over FileMaker met code, afbeeldingen of te downloaden bestanden. Als u zelf in FileMaker programmeert dan kunnen deze u wellicht helpen. Volg ons om nieuwe tips & trucs te ontvangen. Als u hulp nodig heeft bij het toepassen neem dan gerust contact op.

De bestanden openen automatisch met volledige toegang zodat u alle tabellen, velden, scripts, enzovoort kunt bestuderen, aanpassen en overnemen.

2018

Gewoon, berekenen van voorloopnullen

7 mei 2018 | Niveau: FileMaker Gevorderden Training

Een kleine tip om in berekeningen voorloopnullen aan een getal toe te voegen en ook aan een datum. Soms zien we heel lange berekeningen die voor elk getal onder de 10 een enkele nul toevoegt. En wat als het om getallen van meer dan twee cijfers gaat? Dat kan handiger...

Het principe is om een getal om te zetten naar tekst en ervoor een maximum aantal nullen te plaatsen. Vervolgens wordt daarvan de rechter tekens genomen. Een getal dat altijd drie cijfers moet zijn, kan als volgt berekend worden:

Right ( "000" & GetAsText ( getal ) ; 3 )

Door als getal de dag en maand te gebruiken kan een datum met voorloopnullen berekend worden, zoals 07-05-2017.
Dat is handig voor het berekenen van een tekst, e-mail, export en dergelijke waar getal- en datumnotatie niet beschikbaar zijn. Helemaal handig als het als Eigen Functie wordt toegepast.


If ( IsEmpty ( datum ) ;
  "ongedateerd" ;
  Right ( "00" & GetAsText ( Day ( datum ) ) ; 2 ) & "-" &
    Right ( "00" & GetAsText ( Month ( datum ) ) ; 2 ) & "-" &
    GetAsText ( Year ( datum ) )
)

Postcode online opvragen met JSON

4 april 2018 | Niveau: FileMaker Kenniswerkers Training

Al jaren wil iedereen een postcode-tabel in zijn database maar het was altijd duur, omslachtig en niet-actueel. Tegenwoordig zijn er on-line diensten en de JSON-functies van FileMaker 16 passen daar prima bij.

De website Postcode API biedt een interessante dienst om on-line gegevens op basis van postcode en huisnummer op te vragen. Na registratie krijgt u de benodigde API key en tot 100 aanroepen per dag is de dienst gratis.
De informatie is afkomstig van de Basisregistraties Adressen en Gebouwen (BAG) van de overheid. Het wordt continu geactualiseerd om de foutmarge te minimaliseren en nieuwe postcodes up-to-date te houden.

De webdienst wordt met een URL aangeroepen waarin postcode en huisnummer zijn opgenomen en het resultaat wordt in JSON-opmaak geretourneerd. Met de JSON-functies van FileMaker 16 is de data eenvoudig uit het resultaat te halen en in velden te plaatsen. Of andere toepassingen die u zelf bedenkt.
De straat, plaats en provincie kunnen zo snel en eenvoudig in het record van bijvoorbeeld een nieuwe klant geplaatst worden. Maar ook gemeente, soort pand, gebruik, woonoppervlakte, bouwjaar en kaartcoördinaten zijn beschikbaar.

De code hieronder heeft een eenvoudige versie van een mogelijk script. Het voorbeeldbestand toont ook de uitgebreidere mogelijkheden.


Variabele instellen [ $apikey; Waarde: "-Uw eigen API-key hier-" ]
Variabele instellen [ $url; Waarde:"https://api.postcodeapi.nu/v2/addresses/" & "?postcode=" & Postcode & "&number=" & Huisnummer ]
Variabele instellen [ $urlopties; Waarde:"--header \"X-Api-Key: " & $apikey & "\" --dump-header $result_header --show-error" ]

Invoegen vanuit URL [ Selecteren; Geen dialoogvenster ; $result; $url; Opties voor cURL: $urlopties ]

If [ Get ( LaatsteFout ) = 0 and GetAsNumber ( MiddleWords ( $result_header ; 3 ; 1 ) ) = 200 ]
  Variabele instellen [ $adresdata; Waarde:JSONGetElement ( $result ; "_embedded.addresses[0]" ) ]
  Veld instellen [ PostcodeData::Straat; JSONGetElement ( $adresdata ; "street" ) ]
  Veld instellen [ PostcodeData::Plaats; JSONGetElement ( $adresdata ; "city.label" ) ]
  Veld instellen [ PostcodeData::Provincie; JSONGetElement ( $adresdata ; "province.label" ) ]
End If

Scriptstap ging goed en tóch een foutmelding

19 maart 2018 | Niveau: FileMaker Gevorderden Training

Instellingen voor Ga naar gerelateerde record

Als een scriptstap precies doet wat u ingesteld heeft dan verwacht u geen foutmelding. Toch is dat wat de scriptstap 'Ga naar gerelateerde record' soms doet. Dat leggen we graag uit.

Met de optie 'Alleen gerelateerde records' wordt niet alleen van het parent record naar een gerelateerde (child) record gegaan, ook de gevonden reeks in de gerelateerde (child) tabel wordt beperkt tot een specifiek aantal records.
Die gevonden reeks zijn alle gerelateerde records van het huidige parent record als de optie 'Alleen overeenkomst met huidige record' is ingesteld. Bijvoorbeeld alleen de vijf personen die bij één bedrijf horen.
De optie 'Overeenkomst met alle records in huidige gevonden reeks' zorgt dat de huidige reeks alle child records bevat van alle parent records. Met hetzelfde voorbeeld: 385 personen van 124 bedrijven.

Met de optie 'Alleen overeenkomst met huidige record' kunnen er twee foutnummers volgen: geen fout (0) en record ontbreekt (101).
Als de optie 'Overeenkomst met alle records in huidige gevonden reeks' is ingesteld dan kan ook de fout 'Geen records die overeenkomen aan de zoekopdracht' (401) optreden. Dat gebeurd als geen enkel parent record een child record heeft.
Wat minder logisch is, is als toevallig het huidige parent record geen gerelateerde records heeft toch ook fout 101 optreedt en wordt teruggegeven. Omdat de gevraagde actie keurig is uitgevoerd zou je dit een bug kunnen noemen. Hoe dan ook, bij foutafvanging moet daar rekening mee worden gehouden (zie voorbeeld script en bestand hieronder).

En bedenk dat als de scriptstap 'Ga naar gerelateerde record' geen gerelateerde records vindt, het ook niet naar de opgegeven lay-out gaat. En dat heeft tot gevolg dat de volgende scriptstappen op de verkeerde tabel worden uitgevoerd.

Als er een scriptstap is waar u met de Ophaal-functie Get ( LaatsteFout) moet controleren of het goed is uitgevoerd, dan is het wel 'Ga naar gerelateerde record'. En nu weet u wat u kunt verwachten.


Ga naar gerelateerde record [ Alleen gerelateerde records ; Overeenkomst met gevonden reeks ; Van tabel: "Personen" ; Met lay-out: "Personen" (Personen) ]

If [ Get ( LaatsteFout) = 0 or Get ( LaatsteFout ) = 101 ]
  # andere script stappen als de gerelateerde records zijn gevonden
End If

Bellen met een QR barcode

7 maart 2018 | Niveau: FileMaker Basis Training

QR Barcode

U heeft een telefoonnummer op een FileMaker lay-out staan en de persoon naast u wil dat bellen? Of een webadres openen met een mobiele telefoon waar geen FileMaker Go op is geïnstalleerd?

Een hele leuke en eenvoudige manier is om een QR barcode met een webdienst op een scherm lay-out te plaatsen. Een QR barcode kan met de meeste mobiele telefoons via de camera 'gescand' worden.
Het e-mail adres kan dan gebruikt worden voor een nieuwe e-mail, het webadres geopend worden, een WiFi netwerk ingesteld worden, enzovoort.

Maar een QR barcode kost veel ruimte en meer dan één kan de oorzaak zijn dat de verkeerde gelezen wordt. Een mooie oplossing is om een pop-overknop te plaatsen met daarin een webviewer. Afdrukken kan natuurlijk ook en dan is de webviewer voldoende.
Een webviewer wordt meestal gebruikt om een webpagina te tonen maar een enkele afbeelding is ook mogelijk. Met de scriptstap 'Invoegen vanuit URL' kan de afbeelding ook in een containerveld opgeslagen worden als dat gewenst is.

Een webdienst die een plaatje van een QR barcode genereert is bijvoorbeeld de QR Code Generator van goQR. Het voorbeeldbestand dat bij deze tip hoort gebruikt deze webdienst en bevat een Eigen Functie om het webadres te berekenen. In elke webviewer wordt de data samengesteld die in de barcode moet komen.
Voorbeelden die getoond worden zijn telefoonnummer, e-mail, website en WiFi-netwerk. Daarnaast zijn SMS, vcard, geolocatie en events mogelijk. Voor hulp met implementeren kunt u contact met ons opnemen. Deelnemers aan onze trainingen kunnen gratis vragen stellen, per e-mail of op ons forum.


Met een barcode kan ook met FileMaker Go hetzelfde record geopend worden als op de bureaucomputer. Bijvoorbeeld om op een iPad een foto in het record te plaatsen. Dat kan met een URL in een QR-barcode maar ook met een getalwaarde in een Code 39 barcode.

Werkt een database-kopie ook goed?

14 februari 2018 | Niveau: FileMaker Gevorderden Training

FileMaker training

We zijn bijna allemaal met een lege database begonnen en tijdens het gebruik zijn gegevens ingevoerd en aanpassingen gemaakt. Maar werkt uw database ook goed als u een kopie opent en waarom is dat belangrijk?

Zorg in de eerste plaats dat de bestandspaden voor de Externe Gegevensbronnen niet absoluut maar relatief zijn. Een relatief pad begint met "file:" met de bestandsnaam* en soms mapnamen als de database lokaal gebruikt wordt.
In een absoluut pad zit een IP-adres of hostnaam zodat bij het openen van een kopie wordt geprobeerd de bestanden op een FM Server te openen terwijl ze gewoon lokaal in dezelfde map staan. Dit kan het best getest worden op een computer zonder netwerkverbinding.

Bij het openen van een backup-kopie wilt u niet dat automatisch herinneringsberichten worden verzonden voor facturen die nog niet betaald zouden zijn, om een voorbeeld te geven.
Ook wilt u niet dat automatisch oude data via een ODBC-verbinding in de SQL-tabel op de website terecht komt! Zorg dat er een veiligheidsklep is ingebouwd bijvoorbeeld door te controleren met de ophaalfunctie Get ( StatusSamengebruik ) of de gebruiker om toestemming te vragen.
En werkt de database goed als u een lege kopie (kloon) opent of een lege tabel hebt? Verschijnen er dan foutmeldingen of proberen scripts dan onbedoelde dingen te doen?

Wellicht moet u uw scripts eens op deze zaken controleren? En doe dan ook een test met een backup-kopie. Als het echt een keer nodig is, wilt u niet verrast worden en nog verder in de problemen komen...


* Een extensie zoals fmp12 is niet nodig zodat dit niet aangepast hoeft te worden na het converteren naar een toekomstig bestandsformaat met een andere extensie.

FileMaker Webviewer Demo

31 januari 2018 | Niveau: FileMaker Gevorderden Training

Sinds FileMaker 8.5 kan met de Web Viewer webpagina's in een lay-out getoond worden. De berekeningen van de webadressen in ons voorbeeldbestand zijn geactualiseerd.

De gevorderde programmeur kan de webadressen in de Web Viewer zelf laten berekenen en daarin de inhoud van velden gebruiken.
Het Webviewer Demo bestand laat enkele berekeningen van webadressen voor Nederlandse gebruikers zien: Klok, Google Maps luchtfoto, De Telefoongids, Kamer van Koophandel Handelsregister e.v.a.

De berekende webadressen kunnen door wijzigingen in de aangeroepen website hun werking verliezen.