计算属性是只读属性。管理员可以在“操作”对话框中向属性部分添加属性,工作流用户可以在操作对话框和事务中查看属性。管理员可以将访问权限设置为“不显示”,从而将访问权限只给予某些角色。例如,对于计算属性 XYZ,管理员可以为其添加“查看者: 不显示”访问权限,这样,XYZ 便不会显示给查看者。
任何用户角色均可在视图和 Portlet 中将计算属性添加为列。此外,也可以在“筛选器”面板中将它们添加为可筛选属性。
Note:
您不能创建导致循环依赖的计算属性。例如,不允许使用以下计算属性,其中 A 和 B 彼此相互依赖:A= {B}*(-1)
和 B= {A} + 100
,因为这会产生不允许的循环依赖并导致错误。关于计算类型
将值分配给列表 - 将值分配给列表类型的属性
将列表分配给值 - 将列表值分配为另一个属性的值。仅限列表类型的属性使用
条件 - 条件计算 (If – Then – Else)
脚本形式 - 自由形式的脚本计算。“脚本形式”可供文本、数字或整数类型的属性使用
下表列出了选择了“计算”选项时各种属性类型可使用的计算类型:
Table 10-3 当选择了“计算”选项时每个属性类型可以使用的计算类型
属性类型 | 将值分配给列表 | 条件 | 脚本形式 | 将列表分配给值 |
---|---|---|---|---|
日期 | X | |||
整数 | X | X | X | |
列表 | ||||
数字 | X | X | X | |
文本 | X | X | X | |
是/否 | X |
脚本形式函数示例
其他脚本形式函数示例:
日期差额:返回两个日期之间相差的天数、小时数、分钟数或秒数。对于 Date1 和 Date2,可使用值 'TODAY' 和 'NOW',它们分别表示当前的日期(不含时间组件)和日期时间。
DATE_DIFF(<Date1>, <Date2>, <Type>)
示例:DATE_DIFF('TODAY', {Preparer End Date}, 'DAYS') 或 DATE_DIFF({Preparer End Date}, 'NOW', 'HOURS')
提取文本:返回值中自指定位置起的子字符串。
SUBSTRING(<Value>, <Location>, <Length>)
示例:SUBSTRING( {Name} , 5, 10)
If Then Else:允许用户将条件计算插入脚本形式的计算中。还可以嵌套 IF_THEN_ELSE 计算以支持 "ELSE IF" 类型的计算。
IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)
示例:
IF_THEN_ELSE( {Risk Rating} = 'Low', 'Good', IF_THEN_ELSE( {Risk Rating} = 'Medium', 'Better', IF_THEN_ELSE({Risk Rating} = 'High', 'Best','Bad')))
LENGTH('Value') 返回 5,LENGTH({Name}) 将返回对象名称中的字符数。如果值为空,则计算将返回 0。
使用 SUBSTRING
计算提取文本值的最后 4 个字符。
示例:SUBSTRING( {MyString}, LENGTH ({MyString}) - 4
小写 返回小写形式的值。
LOWERCASE(<Value>)
示例:LOWERCASE( {Description} )
最大值:返回属性列表中的最大值。可以包含任意数量的参数。
MAX(<Value1>, <Value2>,<ValueN>)
示例:MAX({Acccount1},{Account2},{Account3})
最小值:返回属性列表中的最小值。可以包含任意数量的参数。
MIN(<Value1>, <Value2>,<ValueN>)
示例:MIN({Acccount1},{Account2},{Account3})
舍入:返回舍入到指定小数位数的值。
ROUND(<Value>, <Decimal Places>)
示例:ROUND( ({Scripted Translate} /7), 4)
文本位置:返回值中子字符串的索引,1 表示第一个位置。
INSTRING(<Value>, <Value To Search>)
示例:INSTRING( UPPERCASE( {Name} ), 'TAX' )
大写:返回大写形式的值。
UPPERCASE(<Value>)
示例:UPPERCASE( {Name} )