Ga naar inhoud

Belgische postcodes en gemeenten invullen (FileMaker Pro 8)


Peter Wagemans

Aanbevolen berichten

Vandaag moest ik voor Hilde een Filemaker Pro 8 demo geven in het Keizershof in Aalst, en er kwam een vraag uit de zaal i.v.m. het typisch probleem van de postcode versus de gemeente.

Je wil de postcode ophalen als je de gemeente invult, en de gemeente ophalen als je de postcode invult.

 

Ik kon niet onmiddellijk een volledige oplossing op het forum vinden, en had eigenlijk al min of meer beloofd dat de man het hier ging vinden.

Daarom dit voorbeeld bestandje.

 

Eerst en vooral heb ik de laatste versie postcodes van de site van de post gedownload, en het ding voor de fun eens uitgenormaliseerd. Niet echt nodig voor de techniek die hier getoond wordt, maar wel nuttig om eens te kijken hoe het zit met die gemeenten en deelgemeenten.

 

Het voorbeeld zelf is een tabel met 2 veldjes. De intelligentie zit hem in de auto-enter calculaties. Daar doe ik iets heel vreemds mee, het is een soort ping-pong spelletje, en een zeer onorthodoxe manier om met variabelen te spelen.

 

Hoe dan ook, het werkt, en nog snel ook. Je hebt FileMaker Pro 8 nodig.

Op het eerste zicht geen bugs, maar ik ben niet zeker of dit zal blijven werken.

Hoe dan ook - doe er jullie voordeel mee.

Gemeenten België.fp7.zip

Link naar reactie

Peter,

 

Ziet er goed uit, maar voor het goede begrip twee vragen.

 

1. Je gebruikt een lokale variabele. Deze zijn 'normaal' tijdens een script beschikbaar, maar daarbuiten niet. Het lijkt er hier op dat ze tijdens de validatie binnen een record dus ook beschikbaar zijn.

Heb je bewust geen gebruik gemaakt van een globale versie?

 

2. Is het nog van belang (en zo ja, is het dan ook te regelen) in welke volgorde de auto-enters worden uitgevoerd? Of komt die volgorde mee met de aanmaak van je velden?

 

rmw

Link naar reactie

En nog een leuk fenomeen (waarschijnlijk onbedoeld):

 

Als ik een postcode heb gekozen en daarna een nieuw record maak, dan wordt de laatst gebruikte gemeente alvast ingevuld.

 

Blijkbaar heeft de variabele $gemeente zijn waarde nog niet verloren!!

Dit lijkt erg op gebruik maken van een 'undocumented feature' met alle gevolgen van dien in een nieuwe versie...

 

rmw

Link naar reactie
Als ik een postcode heb gekozen en daarna een nieuw record maak, dan wordt de laatst gebruikte gemeente alvast ingevuld.

 

het volstaat de auto-enter van de gemeente aan te passen als :

 

Case (
Get ( ActiveFieldName ) = "gemeente" ; // we zijn dit veld aan het invullen
Let (
dePostCode = RightWords ( gemeente ; 1 ) ; // OK, deze moet opgepikt worden
If ( 
GetAsNumber ( dePostCode ) = dePostCode // is dat deel nog wel numeriek
and 
postcode = dePostCode ; // en heeft het postcodeveld dit opgepikt
LeftWords ( gemeente ; WordCount ( gemeente ) - 1 ) ; gemeente ) // dan houden we alleen de gemeente over
) ;
Case(
not(IsEmpty(postcode & gemeente));
$gemeente // het postcode veld heeft deze variabele gemaakt, die halen we gewoon op, BEHALVE BIJ EEN NIEUW RECORD
)
)

 

@ peter : prachtig voorbeeld. thx.

Gemeenten België_1.fp7.zip

Link naar reactie
  • 1 maand later...

Ik heb de code een klein beetje aangepast zodat hij ook zonder variabelen werkt.

Misschien lukt het dan zelfs met eerdere versies van FP. :?

 

Ik maak gebruik van een derde onzichtbaar berekeningsveld om een standaard lookup voor zowel Postcode als Plaats uit te voeren (op basis van het laatst ingevulde veld).

 

Ik kan blijkbaar geen attachements plaatsen anders zette ik de code even online :?

Link naar reactie
Ik heb de code een klein beetje aangepast zodat hij ook zonder variabelen werkt.

Misschien lukt het dan zelfs met eerdere versies van FP. :?

 

Ik maak gebruik van een derde onzichtbaar berekeningsveld om een standaard lookup voor zowel Postcode als Plaats uit te voeren (op basis van het laatst ingevulde veld).

 

Ik kan blijkbaar geen attachements plaatsen anders zette ik de code even online :?

Ik ben wel benieuwd, ik zit nog steeds op fp7 namelijk :)

Link naar reactie
  • 1 jaar later...

Hoe kan ik deze fantastische tip integreren in mijn klantenbestand ? Welke velden moet ik in relatie stellen met elkaar ?

 

Ik heb dus "mijn klantenbestand" met een veld "postcode en gemeente" en ik heb het bestand met "postcodes België". Welke concrete stappen moet ik juist ondernemen ?

 

Excuses moest dit alles zeer voor de hand liggend zijn. Ben nog maar net begonnen aan Filemaker en zie zeer veel mogelijkheden maar de weg is nog lang, de filemaker prob bible is erg dik en als ik denk dat ik het heb gevonden dan blijkt het toch niet altijd te werken zoals ik dat wil.

 

Alvast bedankt

Link naar reactie
  • 3 weken later...
  • 1 maand later...
  • 2 jaren later...
  • 9 maanden later...

Peter,

 

Prachtige techniek ... weliswaar vrij ingewikkeld maar alleszins mooi om te zien en te gebruiken in allerlei toepassingen. Tot op heden maakte ik steeds gebruik van de relatiekeuze, hoofdzakelijk op basis van de postcode, de daarbij horende gemeente kiezen. De Belgische posterijen hebben zich gebaseerd op het Franse systeem en niet op het Nederlandse waarbij de postcode dankzij de bijhorende lettercode bijna het volledige adres omvat. Tot overmaat van ramp waren er ook nog de fusies van de gemeenten en daarbij rekening houden dat ca 20% van de bevolking zelf niet weet waar ze woont, ze kennen hun postcode en/of (deel)gemeente niet, betekent dit dat postcodes automatiseren in België niet echt zo eenvoudig is.

 

Met ware bewondering,

 

Danny

Link naar reactie
  • 1 jaar later...

In Filemaker 11 is het nog eenvoudiger om zoiets te implementeren, gebruik events.

 

Bij het wijzigen van een postcode of plaats vul je d.m.v. een scriptstap een derde veld "laatstePostcodeOfPlaats" in met de nieuwe waarde.

Van daaruit kan je dan een standaard lookup doen uit de tabel "Postcodes en Plaatsen".

Link naar reactie
  • 2 weken later...
  • 2 weken later...

Intussen ben ik weer een stapje verder geraakt. Ik heb het voorbeeld van Peter in mijn toepassing kunnen verwerken.

 

Er blijft nog wel een probleempje.

 

Ik heb gewerkt met de aangepaste versie die Ronny gepost heeft.

Ronny heeft er voor gezorgd dat als je bij gemeente een selectie doet, dat in het voorgaande veld van postcode de postcode van de selectie ingevuld wordt.

Enkel blijft er nu in het veld van gemeente ook nog de postcode staan.

 

Iemand een idee hoe dit opgelost kan worden.

 

Alvast bedankt.

Link naar reactie
  • 2 jaren later...

2 jaar en 2 dagen later... mijn dank voor aangegeven oplossing.

 

Leftword in laatste scriptstap blijkt inderdaad niet te werken.

 

Momenteel als volgt "opgelost" :

 

Scriptactivering instellen - BijOpslaanObject aanvinken - Script selecteren

 

Script voorbeeld :

 

Variabele instellen [ $ContactID; Waarde:Contactpersonen::Contact_ID ]

Zoekopdracht uitvoeren [ Opgegeven zoekopdrachten: Records zoeken; Criteria: Contactpersonen::Contact_ID: “$ContactID” ] [ Herstellen ]

Ga naar veld [ Contactpersonen::Plaats1 ]
Veldinhoud vervangen [ Vervangen door berekening: LeftWords ( Contactpersonen::Plaats1 ; 1 ) ]

[ Geen dialoogvenster ]

Alle records tonen

 

Tabel Contactpersonen

Veld Plaats1=gemeente

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Antwoord op deze discussie...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...