FileMaker - Tip 224

 

Klik op om terug te keren naar het selectiemenu.

Tip 224 - Benzineverbruik berekenen: de vorige kilometerstand aftrekken van de actuele

Jan V. stuurde deze vraag in: "Ik wil mijn benzineverbruik zorgvuldig bijhouden en registreer elke tankbeurt in een databank. Daarbij zou ik op elke nieuwe record de actuele kilometerstand moeten verminderen met de vorige, zodat ik precies weet hoeveel kilometers ik gereden heb met het aantal getankte liters. Maar hoe krijg ik de kilometerstand van de vorige record op mijn nieuwe record?".

Zoals steeds zijn er verschillende mogelijkheden. Eerst en vooral is er de scriptstap Insert from last record. Daarmee kunnen we de kilometerstand (uit het veld Actuele kilometerstand) via een script kopiëren naar de nieuwe record en die daar dan verplaatsen met een SetField naar het veld Vorige kilometerstand. Erg simpel, dus.

Maar het gaat ook zonder script: met een eenvoudige calculatie. Eenvoudig omdat in FileMaker 7 en FileMaker 8 een relatie gebaseerd kan zijn op de vergelijking van meer dan één veld. We leggen daarbij een relatie tussen deze databank en zichzelf (een SelfJoin heet dat) en omdat we kiezen voor een x-relatie is elke record gerelateerd aan elke andere. We hebben echter wel een bijkomende eis: we willen de actuele nieuwe record uitsluiten: die mag niet in die portal verschijnen. Dat doen we door in de relatiedefinitie het veld Datum te betrekken* en als operator kiezen we voor "niet gelijk aan". Op elke record kunnen we dan een portaal tonen (maar dat doen we niet) die alle vorige tankbeurten toont. Op het veld Actuele Kilometerstand laten we dan de Max-functie los. Die geeft ons de hoogste kilometerstand (die van de voorlaatste tankbeurt). Dan gewoon die waarde aftrekken van de Actuele kilometerstand en Jan kan weer verder.

 


* We moeten wel een ander veld gebruiken als we twee keer op één dag tanken. Met de huidige prijzen doen we dat liever niet...

 
avd@avd-ci.be - contactformulier