FileMaker Tip 281

Automatische verjaardagskalenders (1)

 

Deze week (en ook de volgende) een vraag van iemand die een automatische verjaardagskalender wil: bij het opstarten van zijn zelfgemaakt programma wil hij meteen zien wie vandaag allemaal jarig is. We nemen aan dat het een heel groot gezin is, of waarschijnlijker nog, een tamelijk flink bedrijf...

Laten we beginnen met een algemene maar toch zeer belangrijke opmerking. We kunnen gegevens op twee manieren te zien krijgen: ofwel gaan we ze zoeken (met een vraag, een Find, een query dus) - de klassieke pull-methode - ofwel vragen we FileMaker ze spontaan te tonen volgens de push-methode: we willen dat het programma er "ongevraagd" zelf mee komt aandraven.

De vraag komt van een beginnende gebruiker en we kiezen dus voor het tweede systeem: zo leren we weer een fraaie techniek bij. Het werkingsprincipe is eenvoudig voor iedereen die al ooit met relaties gewerkt heeft: we leggen een relatie tussen ons hoofdmenu (de tabel waar we ons programma binnenkomen) en de tabel waarin de geboortedata staan van (vermoedelijk) de personeelsleden. We zorgen ervoor dat het key-veld in ons hoofdmenu van het datum-type is en liefst nog "globally stored" (deze optie staat bij de Storage options) en dat we een lay-out hebben met een mooi portaaltje gebaseerd op de relatie tussen de twee datumvelden. In dat portaaltje zetten we de naamvelden van onze feestvarkens.

Bij het opstarten van het systeem laten we een scriptje lopen dat met een SetField de huidige datum in dat key-veld zet - die huidige datum vinden we met Get(CurrentDate) - zodanig dat in de portaal meteen alle namen verschijnen van de mensen die op de huidige datum jarig zijn.

Iedereen goed gevolgd? Wat zien we nu? In onze portaal verschijnt alleen de kleine Dirk die vandaag geboren is. Alle anderen die we hadden willen zien, zijn er niet.

Hoe komt dat nu? Het antwoord is nogal eenvoudig: omdat we het jaartal ook hadden laten meetellen. Dat was niet de bedoeling.

Hoe we dit oplossen, zien we in de tip van volgende week.

 

Terug naar het selectiemenu voor de tips.