|
如果在创建或编辑对象时修改了影响计算属性的属性,公式不会立即进行重新计算。一旦处理完创建操作或编辑操作,系统便会重新计算公式并更新计算属性值。
有关如何显示属性布局中所包括的计算属性的信息,请参阅属性显示。
|
|
目前,计算属性还不支持多值函数。
|
函数
|
说明
|
||||||
isNull()
|
空值检查
|
||||||
unit()
|
将“字符串”数据类型转换为“带单位的实数”数据类型
|
||||||
str()
|
将数字转换为“字符串”数据类型
|
||||||
abs()
|
绝对值或模
|
||||||
avg()
|
列表值的平均值
|
||||||
sum()
|
列表值之和
|
||||||
min()
|
最小列表值
|
||||||
max()
|
最大列表值
|
||||||
round()
|
将带小数的数字 (实数) 转换为整数
• 如果小数包含 .5,则会将数字四舍五入至偶数 (例如,将 30.5 舍为 30,将 31.5 入为 32)
• 如果小数包含其他数字,则会将数字四舍五入为最接近的数字 (例如,将 30.8 入为 31,将 33.4 舍为 33)
|
||||||
bround()
|
bround (BigDemical round) 函数的作用与 round 函数类似。在计算小数部分接近 5 (如 xx.5) 的十进制数时,相比于 round 函数,bround 函数可实现更高精度的计算。
使用 bround 函数可以指定舍入值时应考虑的小数位数。例如 ((bround((a+b+c)*10, dp))/10.00),其中 a、b 和 c 是属性,dp 是应考虑舍入的小数位数。如未指定,dp 的默认值为 7。
在下面的示例中,round 函数返回不同的结果,而 bround 函数返回相同的结果:
• ((round((10.20+10.35+02.00)*10))/10.00) —> (round(225.4999999999997)/10.00) —> 225/10.00 —> 22.5
• ((bround((10.20+10.35+02.00)*10))/10.00) —> (bround(225.49999999999997)/10.00) —> 226/10 —> 22.6
• ((round((10.25+10.30+02.00)*10))/10.00) —> (round(225.5)/10.00) —> 226/10.00) —> 22.6
• ((bround((10.25+10.30+02.00)*10))/10.00) —> (bround(225.5)/10.00 —> 226/10) —> 22.6
由于 java 中浮点数的内部表示,((10.20+10.35+02.00)*10) 返回值 225.4999999999997,而 ((10.25+10.30+02.00)*10) 返回值 225.5。
对于值 225.49999999999997,请考虑 bround 函数中指定了不同 dp 值时的结果。
|
||||||
mod()
|
返回一个数除以另一数的余数。(仅限“整数”数据类型)
|
||||||
${}
|
用于将包含特殊字符的属性内部名称括起来,以便将它们用于公式中。可以将所有属性内部名称括起来,但在将包含破折号 (-)、美元符号 ($) 或方括号 ([]) 的属性内部名称用于公式时,必须将其括起来。例如,需按如下形式将内部名称为 my-attribute 或 my[very$complex]-attribute 的属性括起才能将其用于公式中:
• ${my-attribute}
• ${my[very$complex]-attribute}
如果示例:计算数值部分中所用属性的内部名称包含特殊字符,则“总成本”属性将显示为以下形式:(${item-quantity}*${unit-cost})+${handling-fee}
|
运算符
|
说明
|
+
|
加法;还可用于合并字符串
|
-
|
减法
|
*
|
乘法
|
/
|
除法
|
( )
|
圆括号,表示运算顺序中不同的优先级 (先执行括号内的运算)
|
" "
|
双引号,表示引用的内容是文字字符串。不在双引号内的任何非数字均被视为属性名称
|
>
|
大于
|
<
|
小于
|
>=
|
大于或等于
|
<=
|
小于或等于
|
==
|
等于
|
!=
|
不等于
|
^
|
幂或指数
|
&
|
与
|
|
|
或者
|
~
|
非
|
^*
|
异或
|
&&
|
与
|
||
|
或者
|
!
|
非
|
? :
|
条件运算符,表示指定条件为真或假时的结果。
(condition) ? value if true : value if false
例如,假定某个类型具有长度、宽度和形状属性,其中形状属性是使用以下公式的已计算属性:
(length>width) ? "longer" : "wider"
如果长度属性的值大于宽度属性的值,则为形状属性分配 longer 的值。如果长度属性的值不大于宽度属性的值,则为形状属性分配 wider 的值。
|
%
|
余数
|