FileMaker Tip 313

Replace Field Contents en Substitute: nogmaals het verschil

 

Deze week een vraag van een verraste gebruiker: hij wilde de waarde van een globaal veld veranderen en had daarvoor de scriptstap Replace Field Contents gebruikt. Bij de waarde van het globaal veld moest gewoon 1 opgeteld worden.

Wat bleek? Op het einde van het verhaal stond de waarde van het globaal veld 50 eenheden hoger in plaats van één. En er waren precies 50 records in de found set. De vraagsteller herhaalde het experiment met een ander aantal records (laten we zeggen 20) en toen werd de waarde met 20 eenheden verhoogd.

Dat is natuurlijk heel logisch voor FileMaker: Replace is een scriptstap (en ook een commando) dat iteratief is: het herhaalt zich voor elke record van de found set. Het gevraagde verhogen met één werd dus net zoveel keren uitgevoerd als er records waren in de databank (of in de found set).

Hoe hadden we het dan moeten doen?

Vanuit een script gebruiken we SetField waarbij we de opdracht geven om het veld te verhogen met zijn eigen waarde plus één:

SetField(GlobaalVeld;GlobaalVeld + 1)

SetField is immers niet iteratief, niet herhalend dus, en wordt slechts één keer uitgevoerd.

Doen we het zonder een script, dan tikken we gewoon de gewenste waarde in het globale veld.

 

Terug naar het selectiemenu voor de tips.