FileMaker - Tip 191

 

Klik op om terug te keren naar het hoofdmenu.

Tip 191 - Geneste If-functies in een script

Tijdens een discussie over het optimaliseren van geneste if statements bleek aan het licht te komen dat FileMaker tot versie 6 - hoe ongelooflijk ook - alle if's evalueert, zelfs als al meteen de eerste juist was.

If (iets)
Doe dit
Else
If (iets anders)
Doe dat
Else
If (nog iets anders)
Doe dan weer dat
EndIf
EndIf
EndIf

Dit gebeurt in calculaties en in scripts. Je wint dus geen snelheid door bijvoorbeeld het meest waarschijnlijke geval bovenaan te zetten. FileMaker doorloopt ze toch allemaal.

Tenzij...

Tenzij je roept: "Halt! waarom verder zoeken als je de waarheid al gevonden hebt? Stop!".

Dit tamelijk lange zinnetje is géén scriptstap. Exit Script wél.

We herschrijven de if statements dus op deze manier:

If (iets)
Doe dit
Exit Script
EndIf
If (iets anders)
Doe dat
Exit script
EndIf
If (nog iets anders)
Doe dan weer dat
Exit Script
EndIf

We vervangen dus de geneste if statements door een reeks van opeenvolgende met telkens een Exit Script.

Dit is duidelijk te lezen, en het script wordt verlaten, meteen wanneer aan een voorwaarde is voldaan. Voor de calculaties is een analoge oplossing niet mogelijk: daar hebben we geen Exit-stap.

In versie 7 liggen de zaken helemaal anders, niet in het minst dank zij de nieuwe scriptstap Else If.

 
avd@avd-ci.be - contactformulier