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(predefined_variable)

predefined_variable:帐户名、记录 ID、用户 ID 或用户名

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

  • 在“对象操作”对话框中,目前仅支持短文本、长文本、富文本、数值、电子邮件和货币字段对象使用计算引擎设置字段值。