Claris Studio 计算先导篇
Claris Studio 计算字段和计算编辑器作为预览提供,用以收集客户反馈,在未来的版本中将持续演进。这只是迈向我们的愿景第一步。例如,Claris Studio 计算字段目前已虚拟化。这意味着计算结果不会维持不变,每当有记录显示时,公式都将重新计算。表现出的性能可能因显示的记录数量和计算字段数量而异。这种方法可让我们更快地为您提供预览,同时我们得以继续研究更长期的架构方案。
通过 Claris Studio 或 Claris 社区中的反馈 ,帮助我们改进计算。
本先导篇包括 FileMaker Pro 和 Claris Studio 之间计算差异的简要列表、支持的 Claris Studio 计算函数列表,以及一些已知问题。我们会在进展中分享更多信息。
FileMaker Pro 与 Claris Studio 计算之间的差异
Claris Studio 计算引擎使用常见的计算格式,因此用户更容易构建和自动化处理更复杂的解决方案和流程。
FileMaker Pro | Claris Studio | |
---|---|---|
数学运算符 | ||
将两个值相加 | + | + |
从第一个值中减去第二个值 | - | - |
将每个值相乘 | * | * |
使用第一个值除以第二个值 | / | / |
以第一个值为底数、以第二个值为指数进行计算 | ^ | ** |
设置运算顺序的优先级 | ( ) | ( ) |
比较运算符 | ||
如果项目相等则为真 | = | == |
如果项目不相等则为真 | ≠ | != |
如果左边的值大于右边的值则为真 | > | > |
如果左边的值小于右边的值则为真 | < | < |
如果左边的值大于或者等于右边的值则为真 | ≥ | >= |
如果左边的值小于或者等于右边的值则为真 | ≤ | <= |
逻辑运算符 | ||
仅当两项都为真时则为真 | AND | && |
只要其中一项为真时则为真 | 或 | || |
如果表达式中任意一项(但不是两项)为真时则为真 | XOR | XOR() |
将值由假变为真,或者由真变为假 | NOT | ! |
文本运算符 | ||
将右边的文本字符串附加到左边的文本字符串的结尾处。 | & | + |
标记被视为文本常数的字符的起始和结束。 | " " | ' ' 或 " " |
空值 | "" | '' (单引号) 或 "" (双引号) |
标记被用作字符(而不是运算符)的运算符字符 | \ | 不可用 |
在公式结果中插入一个段落回车 | ¶ | 不可用 |
标记公式中被视为文本注释的字符的起始和结束 | /* */ | /* */ |
标识公式中的单行注释 | // | // |
字段引用 | ||
引用当前表中的字段 | 字段 1 | TableA.Field1 |
从不同的表中引用字段 | TableB::FieldX | 不可用 |
其他运算符 | ||
按位 AND | 不可用 | & |
按位 OR | 不可用 | | |
按位 XOR | 不可用 | ^ |
按位符号右移 | 不可用 | >> |
零填充右移 | 不可用 | >>> |
零填充左移 | 不可用 | << |
模板字符串 | 不可用 | ` ` |
Claris Studio 计算函数
这些是 Claris Studio 目前支持的计算函数。更多函数即将推出。有关更多信息,请参阅计算编辑器中内嵌的描述。
FileMaker Pro | Claris Studio | |
---|---|---|
数学函数 | ||
ABS |
Abs(数字) | ABS(值) |
CEILING |
Ceiling(数字) | CEILING (值, [因数] ) |
EVEN |
不可用 | EVEN (值) |
EXP |
Exp(数字) | Exp(值) |
FLOOR |
Floor(数字) | FLOOR (值, [因数] ) |
INT |
Int(数字) | INT(值) |
LOG |
Log(数字) | LOG (值, [底数] ) |
MOD |
Mod (数字; 除数) | MOD (被除数, 除数) |
ODD |
不可用 | ODD (值) |
POWER |
不可用 | POWER (底数, 幂) |
ROUND |
Round (数字; 精度) | ROUND (值, [位数] ) |
ROUNDDOWN |
不可用 | ROUNDDOWN (值, [位数] ) |
ROUNDUP |
不可用 | ROUNDUP (值, [位数] ) |
SQRT |
Sqrt (数字) | SQRT (值) |
SUM |
Sum (字段 {; 字段...} ) | SUM (数字1, [数字2, ...] ) |
MAX |
Max (字段 {; 字段...} ) | MAX (数字1, [数字2, ...] ) |
MIN |
Min (字段 {; 字段...} ) | MIN (数字1, [数字2, ...] ) |
逻辑函数 | ||
AND |
不可用 | AND ( exp1, [exp2, ...] ) |
FALSE |
不可用 | FALSE ( ) |
IF |
If (检验; 结果1 {; 结果2 } ) | IF (逻辑表达式, value_if_true, [ value_if_false ] ) |
NOT |
不可用 | NOT ( exp ) |
OR |
不可用 | OR ( exp1, [exp2, ...] ) |
TRUE |
不可用 | TRUE ( ) |
XOR |
不可用 | XOR ( exp1, [exp2, ...] ) |
Claris 函数 | ||
GET |
Get ( ) |
GET(
|
GETFILEATTRIBUTE |
GetContainerAttribute ( 字段 ; 属性名称 ) | GETFILEATTRIBUTE ( table_field, [attribute_name] ) |
信息函数 | ||
ISBLANK |
IsEmpty ( 字段 ) |
ISBLANK ( expression ) |
ISERROR |
EvaluationError ( 表达式 ) |
ISERROR ( expression ) |
ISEVEN |
不可用 |
ISEVEN ( expression ) |
ISLOGICAL |
GetAsBoolean ( 数据 ) |
ISLOGICAL ( expression ) |
ISNUMBER |
不可用 |
ISNUMBER ( expression ) |
ISODD |
不可用 |
ISODD ( expression ) |
ISTEXT |
不可用 |
ISTEXT ( expression ) |
TYPE |
不可用 |
TYPE ( expression ) |
日期和时间函数 | ||
DATE | Date ( 月;日;年 ) | DATE ( 年, 月, 日 ) |
DATEVALUE | 不可用 | DATEVALUE ( date_text ) |
DAY | Day ( 日期 ) | DAY ( date_serial_num ) |
DAYS | 不可用 | DAYS ( end_date, start_date ) |
HOUR | Hour ( 时间 ) | HOUR ( time_serial_num ) |
MINUTE | Minute ( 时间 ) | MINUTE ( time_serial_num ) |
MONTH | Month ( 日期 ) | MONTH ( date_serial_num ) |
NOW | 不可用 | NOW ( ) |
SECOND | Seconds ( 时间 ) | SECOND ( 日期 ) |
TODAY | 不可用 | TODAY ( ) |
TO_DATE | 不可用 | TO_DATE ( date_serial_num ) |
WEEKDAY | DayOfWeek ( 日期 ) | WEEKDAY ( date_serial_num, [ return_type ] ) |
WEEKNUM | WeekOfYear ( 日期 ) | WEEKNUM ( date_serial_num, [ return_type ] ) |
WORKDAY | 不可用 | WORKDAY ( start_date, num_days, [holidays] ) |
YEAR | Year ( 日期 ) | Year ( 日期 ) |
文本函数 | ||
CONCATENATE | 不可用 | CONCATENATE ( 值, [值, ...] ) |
FIND | 不可用 | FIND ( 搜索, 文本, [启动中] ) |
JOIN | 不可用 | JOIN ( 分隔符, [值, ...] |
LEFT | Left ( 文本 ; 字符数 ) | LEFT ( 值, [数字] ) |
LEN | Length ( 文本 ) | LEN ( 值 ) |
LOWER | Lower ( 文本 ) | LOWER ( 值 ) |
MID | Middle ( 文本; 开始; 字符数 ) | MID ( 值, 开始, 长度 ) |
REGEXEXTRACT | 不可用 | REGEXEXTRACT ( 值, 正则表达式 ) |
REGEXMATCH | 不可用 | REGEXMATCH ( 值, 正则表达式 ) |
REGEXREPLACE | 不可用 | REGEXREPLACE ( 值, 正则表达式, 替换 ) |
REPLACE | Replace (文本; 开始点; 字符数; 替换的文本 ) | REPLACE ( 文本, 位置, 长度, 新文本) |
REPT | 不可用 | REPT ( 文本, 重复 ) |
RIGHT | Right ( 文本 ; 字符数 ) | RIGHT ( 值, [数字] ) |
SEARCH | Position ( 文本 ; 搜索的字符串 ; 开始 ; 序数 ) | SEARCH ( search_for, text_to_search, [starting_at] ) |
SUBSTITUTE | Substitute ( 文本; 搜索的字符串; 替换字符串 ) | SUBSTITUTE ( 文本, 搜索, 替换, [序数] ) |
T | GetAsText (数据) | T ( 值 ) |
TRIM | Trim ( 文本 ) | TRIM ( 值 ) |
UPPER | Upper ( 文本 ) | UPPER ( 值 ) |
VALUE | GetAsDate ( 文本 , GetAsNumber ( 文本 ), GetAsTime ( 文本 ) | VALUE ( 值 ) |
注释
-
要在 Claris Studio 中引用字段,请使用 TableName.FieldName 格式。不确定在哪里可以找到视图的表名?目前,您只能在电子表格视图中看到表名(在第一列的正上方)。如果您还没有使用与当前视图数据相同的电子表格视图,可以创建一个。
-
虽然 Claris Studio 不允许您指定结果的数据类型(例如,数字、文本、日期),但 Claris Studio 将尝试选择适当的数据类型。例如,在串联期间,如果检测到字符串(从文本字段或文本常量),则 Claris Studio 将返回一个字符串。如果检测到两个数字,Claris Studio 将返回一个数字。
-
模板字符串运算符可以更轻松地编写包含多个文本常量(字面文本)、字段和函数的表达式。
示例:
`文本常量 ${函数或字段引用} 文本常量 ${函数或字段引用}`
-
默认浏览器空白折叠行为将在文本常量(例如 " ")中显示为单个空格。字符串值不受影响。
常见的已知问题
-
不可引用其他表中的字段。
-
支持日期、时间和时间戳字段,但您可能需要将计算字段的“格式”选项设置为日期、时间或日期和时间,以便计算结果按预期显示。例如,此表达式为给日期字段的值加一周,如果格式设置为日期,那么返回的结果为日期:
Tasks.Date + 7
-
在“对象操作”对话框中,目前仅支持短文本、长文本、富文本、数值、电子邮件和货币字段对象使用计算引擎设置字段值。