Evaluate

Evalueert een uitdrukking als een berekening.

Opmaak 

Evaluate (uitdrukking {; [veld1 ; veld2 ;...]})

Parameters 

uitdrukking - een tekstuitdrukking of tekstveld.

velden - een lijst met velden waarvan deze functie afhankelijk is. Wanneer deze velden worden gewijzigd, wordt het resultaat van de berekening bijgewerkt.

Parameters tussen accolades { } zijn optioneel. Het optionele veld bevindt zich tussen haakjes [ ].

Resulterend gegevenstype 

tekst, getal, datum, tijd, tijdstempel, container

Afkomstig uit versie 

7.0

Beschrijving 

De optionele parameter velden is een lijst met velden waarvan deze berekening afhankelijk is. Als een vereist veld niet is vermeld, zal het resultaat van de berekening niet worden bijgewerkt als dat afhankelijk veld wordt gewijzigd.

Opmerkingen 

  • Als het script op de server de functie Evaluate bevat, gebruikt u de Engelse functienamen in de berekening van Evalueren. Evalueren herkent geen gelokaliseerde functienamen bij een evaluatie in een script op een server. Raadpleeg Scripts uitvoeren via FileMaker Server en FileMaker Cloud.

Voorbeeld 1 

Evaluate (Tekstveld) geeft als resultaat 4 wanneer Tekstveld 2 + 2 bevat.

Evaluate ("tekstveld") geeft als resultaat 2 + 2 wanneer het tekstveld 2 + 2 bevat.

Evaluate (GetField("tekstveld")) geeft als resultaat 4 wanneer het tekstveld 2 + 2 bevat.

Evaluate (Tekstveld;[Bedrag]) geeft als resultaat 0,80 wanneer Tekstveld 0,08 * Bedrag bevat en het veld Bedrag bevat de waarde 10,00.

Voorbeeld 2 

Evaluate ("Let (Belastingtarief=0,05 ; "& Berekening belastingtarief &")") geeft als resultaat 0,50 wanneer het veld Berekening belastingtarief de waarde Subtotaal * Belastingtarief bevat, waarbij Subtotaal een getalveld is dat de waarde 10,00 bevat.

Voorbeeld 3 

Het volgende voorbeeld geeft aan hoe u benoemde parameters moet doorgeven met de functies Evaluate, Let en Get (ScriptParameter), waarbij u alleen toegang verleent tot de variabele "a" (het voorbeeld geeft 6 als resultaat):

Kopiëren
Scriptparameter = "a = 5; b = 10"
Kopiëren
Evaluate ("Let ([" & Get (ScriptParameter) & "]; a + 1)")

Voorbeeld 4 

Het volgende voorbeeld geeft aan hoe u benoemde parameters moet doorgeven, waarbij u toegang verleent tot zowel variabele "a" als variabele "b". De vereenvoudigde eerste parameter maakt de tweede parameter complexer (het voorbeeld geeft 6, 12 als resultaat):

Kopiëren
Scriptparameter = "a = 5; b = 10"
Kopiëren
Evaluate ("Let ([" & Get (ScriptParameter) & "]; a + 1 & \", \" & b + 2)")

Voorbeeld 5 

Het volgende voorbeeld geeft aan hoe u benoemde parameters moet doorgeven en daarbij de mogelijkheid behoudt om de syntaxis van de tweede parameter van de functie Let te controleren (het voorbeeld geeft 6, 12 als resultaat):

Kopiëren
Scriptparameter = "a = 5; b = 10"
Kopiëren
Let ([a = Evaluate ("Let([" & Get (ScriptParameter) & "]; a)"),
            b = Evaluate ("Let([" & Get (ScriptParameter) & "]; b)")]; a + 1 & ", " & b + 2)

Voorbeeld 6 

De functie Evaluate evalueert een uitdrukking, met inbegrip van veldwaarden die als een berekeningsformule moeten worden geëvalueerd. U kunt er ook veldafhankelijkheden voor opgeven, zodat een berekening die de functie Evaluate gebruikt, kan worden gestart naar aanleiding van wijzigingen in andere velden van dezelfde record. Deze functie evalueert door de gebruiker gedefinieerde formules. U kunt bijvoorbeeld in het veld Totaal een formule maken die de BTW berekent:

Kopiëren
Evaluate (BTW-formule) + Verzendkosten

waarbij het veld BTW-formule dit bevat:

Kopiëren
Subtotaal * 1,19

en het veld Subtotaal het subtotaal vóór BTW en verzending bevat.

De functie Evaluate heeft een tweede optionele parameter: een veld waarvan de berekening afhankelijk is. Wanneer de inhoud van het afhankelijke veld wijzigt, evalueert FileMaker Pro de berekening opnieuw. In het volgende voorbeeld wordt de berekening van Totaal opnieuw geëvalueerd wanneer Subtotaal wijzigt:

Kopiëren
Evaluate (BTW-formule, Subtotaal) + Verzendkosten

De afhankelijke parameter kan ook in andere gevallen nuttig zijn. Bijvoorbeeld:

Kopiëren
Evaluate ("Get (HuidigeTijdstempel)" ; [VeldB ; VeldC])

zal in het berekeningveld een tijdstempel opslaan wanneer VeldB of VeldC wijzigt.