Inleiding tot Claris Studio-berekeningen
Het berekeningsveld en de berekeningseditor van Claris Studio worden geleverd als voorbeeld om feedback van klanten te verzamelen en zullen in toekomstige versies aanzienlijk veranderen. Dit is slechts de eerste stap in de richting van onze visie. De berekeningsvelden van Claris Studio zijn momenteel bijvoorbeeld gevirtualiseerd. Dit betekent dat de berekende resultaten niet behouden blijven en formules opnieuw worden berekend wanneer records worden weergegeven. Prestaties kunnen variëren, afhankelijk van het aantal weergegeven records en berekeningsvelden. Deze aanpak stelt ons in staat om u sneller een voorbeeld te kunnen bieden, terwijl we verder werken aan een architectonisch aanpak voor de langere termijn.
Help ons berekeningen beter te maken met uw feedback via Feedback in Claris Studio of op Claris Community.
Deze inleiding bevat een snel overzicht van de verschillen tussen berekeningen in FileMaker Pro en Claris Studio, een lijst met ondersteunde Claris Studio-berekeningsfuncties en enkele bekende problemen. Naarmate we verder komen, zullen we over meer informatie beschikken om te delen.
Verschillen tussen FileMaker Pro- en Claris Studio-berekeningen
De berekeningsengine van Claris Studio maakt gebruik van een algemene berekeningsopmaak, zodat het voor gebruikers gemakkelijker is om complexere oplossingen en processen te creëren en te automatiseren.
FileMaker Pro | Claris Studio | |
---|---|---|
Wiskundige operatoren | ||
Voegt twee waarden toe | + | + |
Trekt de tweede waarde van de eerste af | - | - |
Vermenigvuldigt elke waarde | * | * |
Deelt de eerste waarde door de tweede | / | / |
Verheft de eerste waarde tot de macht van de tweede waarde | ^ | ** |
Stelt voorrang in voor de volgorde van bewerkingen | ( ) | ( ) |
Vergelijkingsoperatoren | ||
Waar als de items gelijk zijn | = | == |
Waar als de items niet gelijk zijn | ≠ | != |
Waar als de waarde links groter is dan de waarde rechts | > | > |
Waar als de linkerwaarde kleiner is dan de rechterwaarde | < | < |
Waar als de linkerwaarde groter is dan of gelijk is aan de rechterwaarde | ≥ | >= |
Waar als de linkerwaarde kleiner is dan of gelijk is aan de rechterwaarde | ≤ | <= |
Logische operatoren | ||
Alleen waar als beide items waar zijn | AND | && |
Waar als een van beide items waar is | OF | || |
Waar als een van beide uitdrukkingen waar is (maar niet beide) | XOR | XOR() |
Wijzigt de waarde van Onwaar in Waar of van Waar in Onwaar | NOT | ! |
Tekstoperatoren | ||
Voegt de tekstreeks rechts toe aan het eind van de tekstreeks links | & | + |
Geeft het begin en het eind aan van tekens die als een tekstconstante moeten worden beschouwd | " " | ' ' of " " |
Lege waarde | "" | '' (enkele aanhalingstekens) of "" (dubbele aanhalingstekens) |
Markeert een operatorteken dat als een teken moet worden gebruikt, en niet als een operator | \ | Niet beschikbaar |
Voegt een regelterugloopteken in het resultaat van een formule in | ¶ | Niet beschikbaar |
Geeft het begin en het eind aan van tekens die in een formule als een tekstuele opmerking moeten worden beschouwd | /* */ | /* */ |
Geeft in een formule een opmerking van één regel aan | // | // |
Veldverwijzingen | ||
Verwijst naar een veld in de huidige tabel | Veld1 | TabelA.Veld1 |
Verwijst naar een veld uit een andere tabel | TabelB::VeldX | Niet beschikbaar |
Extra operatoren | ||
Bitwise AND | Niet beschikbaar | & |
Bitwise OR | Niet beschikbaar | | |
Bitwise XOR | Niet beschikbaar | ^ |
Bitwise ondertekende verschuiving naar rechts | Niet beschikbaar | >> |
Niet-ingevulde verschuiving naar rechts | Niet beschikbaar | >>> |
Niet-ingevulde verschuiving naar links | Niet beschikbaar | << |
Sjabloontekenreeks | Niet beschikbaar | ` ` |
Berekeningsfuncties van Claris Studio
Dit zijn de berekeningsfuncties die momenteel worden ondersteund in Claris Studio. Binnenkort worden er meer geïntroduceerd. Raadpleeg voor meer informatie de inline-beschrijvingen in de berekeningseditor.
FileMaker Pro | Claris Studio | |
---|---|---|
Wiskundige functies | ||
ABS |
Abs ( getal ) | ABS ( value ) |
CEILING |
Ceiling ( getal ) | CEILING ( value, [factor] ) |
EVEN |
Niet beschikbaar | EVEN ( value ) |
EXP |
Exp ( getal ) | EXP ( value ) |
FLOOR |
Floor ( getal ) | FLOOR ( value, [factor] ) |
INT |
Int ( getal ) | INT ( value ) |
LOG |
Log ( getal ) | LOG ( value, [base] ) |
MOD |
Mod ( getal ; deler ) | MOD ( dividend, divisor ) |
ODD |
Niet beschikbaar | ODD ( value ) |
POWER |
Niet beschikbaar | POWER ( base, exponent ) |
ROUND |
Round ( getal ; aantal decimalen ) | ROUND ( value, [places] ) |
ROUNDDOWN |
Niet beschikbaar | ROUNDDOWN ( value, [places] ) |
ROUNDUP |
Niet beschikbaar | ROUNDUP ( value, [places] ) |
SQRT |
Sqrt ( getal ) | SQRT ( value ) |
SUM |
Sum ( veld {; veld...} ) | SUM ( number1, [number2, ...] ) |
MAX |
Max ( veld {; veld...} ) | MAX ( number1, [number2, ...] ) |
MIN |
Min ( veld {; veld...} ) | MIN ( number1, [number2, ...] ) |
Logische functies | ||
AND |
Niet beschikbaar | AND ( exp1, [exp2, ...] ) |
FALSE |
Niet beschikbaar | FALSE ( ) |
IF |
If ( test ; resultaat1 {; resultaat2 } ) | IF ( logical expression, value_if_true, [ value_if_false ] ) |
NOT |
Niet beschikbaar | NOT ( exp ) |
OR |
Niet beschikbaar | OR ( exp1, [exp2, ...] ) |
TRUE |
Niet beschikbaar | TRUE ( ) |
XOR |
Niet beschikbaar | XOR ( exp1, [exp2, ...] ) |
Claris-functies | ||
GET |
Get ( ) |
GET(
|
GETFILEATTRIBUTE |
GetContainerAttribute ( veld ; kenmerknaam ) | GETFILEATTRIBUTE ( table_field, [attribute_name] ) |
Informatiefuncties | ||
ISBLANK |
IsEmpty ( veld ) |
ISBLANK ( expression ) |
ISERROR |
EvaluationError (uitdrukking ) |
ISERROR ( expression ) |
ISEVEN |
Niet beschikbaar |
ISEVEN ( expression ) |
ISLOGICAL |
GetAsBoolean ( gegevens ) |
ISLOGICAL ( expression ) |
ISNUMBER |
Niet beschikbaar |
ISNUMBER ( expression ) |
ISODD |
Niet beschikbaar |
ISODD ( expression ) |
ISTEXT |
Niet beschikbaar |
ISTEXT ( expression ) |
TYPE |
Niet beschikbaar |
TYPE ( expression ) |
Datum- en tijdfuncties | ||
DATE | Date ( maand ; dag ; jaar ) | DATE ( year, month, day ) |
DATEVALUE | Niet beschikbaar | DATEVALUE ( date_text ) |
DAY | Day ( datum ) | DAY ( date_serial_num ) |
DAYS | Niet beschikbaar | DAYS ( end_date, start_date ) |
HOUR | Hour ( tijd ) | HOUR ( time_serial_num ) |
MINUTE | Minute ( tijd ) | MINUTE ( time_serial_num ) |
MONTH | Month ( datum ) | MONTH ( date_serial_num ) |
NOW | Niet beschikbaar | NOW ( ) |
SECOND | Seconds ( tijd ) | SECOND ( date ) |
TODAY | Niet beschikbaar | TODAY ( ) |
TO_DATE | Niet beschikbaar | TO_DATE ( date_serial_num ) |
WEEKDAY | DayofWeek ( datum ) | WEEKDAY ( date_serial_num, [ return_type ] ) |
WEEKNUM | WeekofYear ( datum ) | WEEKNUM ( date_serial_num, [ return_type ] ) |
WORKDAY | Niet beschikbaar | WORKDAY ( start_date, num_days, [holidays] ) |
YEAR | Year ( datum ) | YEAR ( date ) |
Tekstfuncties | ||
CONCATENATE | Niet beschikbaar | CONCATENATE ( value, [value, ...] ) |
FIND | Niet beschikbaar | FIND ( search, text, [starting] ) |
JOIN | Niet beschikbaar | JOIN ( delimiter, [value, ...] |
LEFT | Left ( tekst ; aantal karakters ) | LEFT ( value, [number] ) |
LEN | Length ( tekst ) | LEN ( value ) |
LOWER | Lower ( tekst ) | LOWER ( value ) |
MID | Middle ( tekst ; begin ; aantal karakters ) | MID ( value, starting, length ) |
REGEXEXTRACT | Niet beschikbaar | REGEXEXTRACT ( value, regex ) |
REGEXMATCH | Niet beschikbaar | REGEXMATCH ( value, regex ) |
REGEXREPLACE | Niet beschikbaar | REGEXREPLACE ( value, regex, replacement ) |
REPLACE | Replace ( tekst ; begin ; aantal karakters ; vervangende tekst ) | REPLACE ( text, position, length, newText ) |
REPT | Niet beschikbaar | REPT ( text, repetition ) |
RIGHT | Right ( tekst ; aantal karakters ) | RIGHT ( value, [number] ) |
SEARCH | Position ( tekst ; zoekreeks ; begin ; item ) | SEARCH ( search_for, text_to_search, [starting_at] ) |
SUBSTITUTE | Substitute ( tekst ; zoekreeks ; vervangende reeks ) | SUBSTITUTE ( text, search, replace, [occurrence] ) |
T | GetAsText ( gegevens ) | T ( value ) |
TRIM | Trim ( tekst ) | TRIM ( value ) |
UPPER | Upper ( tekst ) | UPPER ( value ) |
VALUE | GetAsDate ( tekst ), GetAsNumber ( tekst ), GetAsTime ( tekst ) | VALUE ( value ) |
Opmerkingen
-
Om in Claris Studio naar een veld te verwijzen, gebruikt u de notatie TabelNaam.VeldNaam. Weet u niet waar u de tabelnaam van een weergave kunt vinden? Momenteel kunt u alleen een tabelnaam zien in een spreadsheetweergave (net boven de eerste kolom). Als u nog geen spreadsheetweergave hebt met dezelfde gegevens als uw huidige weergave, kunt u er een maken.
-
Hoewel Claris Studio u niet toestaat het gegevenstype van een resultaat te specificeren (bijvoorbeeld getal, tekst, datum), zal Claris Studio proberen een geschikt gegevenstype te kiezen. Als er bijvoorbeeld tijdens aaneenschakeling een tekenreeks wordt gedetecteerd (hetzij uit een tekstveld, hetzij uit een tekstconstante), dan zal Claris Studio een tekenreeks als resultaat geven. Als er twee getallen worden gedetecteerd, geeft Claris Studio een getal als resultaat.
-
Met de sjabloontekenreeksoperator kunt u gemakkelijker een uitdrukking schrijven die meerdere tekstconstanten (letterlijke tekst), velden en functies bevat.
Voorbeeld:
`Tekstconstante ${Functie- of veldreferentie} Tekstconstante ${Functie- of veldreferentie}`
-
Het standaard samenvouwgedrag voor witte ruimten van de browser toont meerdere spaties in een tekstconstante (bijvoorbeeld " ") als één spatie. De tekenreekswaarde wordt niet beïnvloed.
Meest bekende problemen
-
Verwijzingen naar velden uit een andere tabel zijn niet beschikbaar.
-
Datum-, tijd- en tijdstempelvelden worden ondersteund, maar mogelijk moet u de optie Opmaak van het berekeningsveld instellen op Datum, Tijd of Datum en tijd, zodat het berekende resultaat wordt weergegeven zoals verwacht. Deze uitdrukking voegt bijvoorbeeld een week toe aan de waarde in een datumveld en retourneert het resultaat als een datum als Opmaak is ingesteld op Datum:
Tasks.Date + 7
-
In het dialoogvenster Objectacties wordt het instellen van de waarde van een veld met behulp van de berekeningsengine momenteel alleen ondersteund in korte tekst-, lange tekst-, rich text-, getal-, e-mail- en valutaveldobjecten.