FileMaker - Tip 67

 

Klik op om terug te keren naar het selectiemenu.

Tip 67 - De hoogste waarde in een lijst doen oplichten

"Stel: we hebben voor een kleine school een overzicht nodig van de prestaties per klas en per leerling. We zouden in elke klas het beste resultaat willen zien verschijnen op een andere achtergrondkleur. Kan dat?"

Ja dat kan. Laten we de zaken even bekijken in detail. We hebben een honderdtal leerlingen ingedeeld in 5 klassen. Elke klas heeft een eigen Klas ID (iets als 5 Moderne Talen). Van elke klas willen we bijvoorbeeld het beste cijfer doen uitkomen.

We hebben dus een rapport van alle leerlingcijfers (veld: Resultaat), gesorteerd eerst per klas (dus volgens het veld Klas ID), en binnen de klas op cijfer of op naam (alfabetisch dus). De tweede sortering speelt geen rol (we moeten natuurlijk wel ons subsummary-gedeelte correct definiëren).

We creëren eerst een SelfJoin relatie, op basis van de Klas ID. Op die manier groeperen we alle records (dus: alle leerlingen) per klas. Dan maken we een calculatieveld voor de achtergrondkleur volgens deze formule (met container als resultaat):

If(Resultaat = Max(Selfjoin::Resultaat); Color Red; "")

Vrij vertaald: als het resultaat op deze record gelijk is aan het hoogste resultaat van deze klas, gebruik dan de rode achtergrondkleur. In het andere geval géén kleur.

Natuurlijk kunnen we die kleur ook toekennen aan het slechtste resultaat (Min), of aan het gemiddelde (Average), enzovoort.


Een SelfJoin is een relatie niet tussen twee verschillende databanken maar tussen een bepaalde databank en zichzelf op basis van een gemeenschappelijk veld (in dit geval de Klas ID).

 

 
avd@avd-ci.be - contactformulier