关于计算属性

计算属性是只读属性。

管理员可以在“操作”对话框中向属性部分添加计算属性,工作流用户可以在操作对话框和事务中查看属性。管理员可以将访问权限设置为“不显示”,从而将访问权限只给予某些角色。例如,对于计算属性 XYZ,管理员可以为其添加“查看者: 不显示”访问权限,这样,XYZ 便不会显示给查看者。

任何用户角色均可在视图和列表中将计算属性添加为列。此外,也可以在“筛选器”面板中将它们添加为可筛选属性。

下表列出了选择了“计算”选项时各种属性类型可使用的计算类型:

Table 4-1 当选择了“计算”选项时每个属性类型可以使用的计算类型

属性类型 将值分配给列表 条件 脚本形式 将列表分配给值
日期     X  
日期/时间     X  
整数 X X X  
列表   X   X
多行文本 X X X  
数字 X X X  
文本 X X X  
True/False   X    
用户        
是/否   X    

脚本形式函数示例

对于所有数字函数,在计算结果时将忽略输入中的任何空值。

  • 添加月:返回与开始日期相差指定月数的日期。该日期始终处于指定的偏差月内。如果开始日期所在的那一天超过了偏差月中的最后一天,则将使用偏差月的最后一天。例如,EDate (31-Jan-2017, 1) 返回 (28-Feb-2017)。对于 Months,输入开始日期之前或之后的月数。月数为正值将产生将来的日期。负值将产生过去的日期。

    EDate(<Start Date>, <Months>, <Length>)

    示例:EDate(DATE(2017, 2, 15) 3)

  • 先前期间的平均值函数:计算前 X 个期间的数字金额平均值。

    AVERAGE_PRIOR(<Value>, <Number of Periods>, <To Currency*>, <Rate Type*>, <Rate Period*>

    示例:AVERAGE_PRIOR( {Source System Balance (Reporting)}, '2', 'EUR', 'REC')

    Note:

    如果值是余额类型的属性(如源系统),则带星号 * 的参数是必需的。如果值是一般值(如数字属性),则忽略带 * 的参数。

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。Rate Period 参数必须是 "CURRENT" 或 "PRIOR",表示在兑换货币时使用当前期间或前一期间的汇率类型。
  • 日期:基于在年、月和日指定的整数值返回日期值。例如,此函数创建日期类型的值,所以 DATE(2018, 5, 31) 将转换为 2018 年五月 31 日。然后,此项可用于日期差额函数,以拉取某个日期(例如结束日期)与此特定日期之间的天数差。

    DATE(<Year>, <Month>, <Day>)

    此外,在创建计算数据属性时,还可以使用期间起始日期期间结束日期期间关闭日期。例如,您希望比较调整事务的关闭日期与期间结束日期。

  • 日期差额:返回两个日期之间相差的天数、小时数、分钟数或秒数。对于 Date1 和 Date2,可使用值 'TODAY' 和 'NOW',它们分别表示当前的日期(不含时间组件)和日期时间。

    有效类型为 DAYS、HOURS、MINUTES、SECONDS。

    DATE_DIFF(<Date1>, <Date2>, <Type>)

    示例:DATE_DIFF('TODAY', {Preparer End Date}, 'DAYS') 或 DATE_DIFF({Preparer End Date}, 'NOW', 'HOURS')

  • :以整数返回日期所在的那一天

    DAY(<DATE>)

  • 提取文本:返回值中自指定位置起的子字符串。“提取文本/文本位置”使用值 1 表示第一个字符。

    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')))
    
  • Instring:返回值中子字符串的索引。

    INSTRING(<Value1>, <Value to Search>)

    示例:INSTRING({Name}, 'a')

  • 长度:接受文本值作为参数,并返回整数,即文本中的字符数。

    LENGTH('Value') 返回 5,LENGTH({Name}) 将返回对象名称中的字符数。如果值为空,则计算将返回 0。

    使用 SUBSTRING 计算提取文本值的最后 4 个字符。

    示例:SUBSTRING( {MyString}, LENGTH ({MyString}) - 4

  • 小写:返回小写形式的值。

    LOWERCASE(<Value>)

    示例:LOWERCASE( {Description} )

  • 最大值:返回属性列表中的最大值。可以包含任意数量的参数。

    MAX(<Value1>, <Value2>,<ValueN>)

    示例:MAX( TRANSLATE( {Source System Balance (Entered)}, 'USD', 'Accounting'), TRANSLATE( {Source System Balance (Functional)}, 'USD', 'Accounting'), TRANSLATE( {Source System Balance (Reporting)}, 'USD', 'Accounting') )

  • 先前期间的最大值:返回前 X 个期间的最大值。

    MAX_PRIOR (<Value>, <Number of Periods>, <To Currency*>, <Rate Type*>, <Rate Period*>)

    示例:MAX_PRIOR( {Source System Balance (Functional)}, '6', 'CAD', 'REC', 'CURRENT')

    Note:

    如果值是余额类型的属性(如源系统),则带星号 * 的参数是必需的。如果值是一般值(如数字属性),则忽略带 * 的参数。

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。Rate Period 参数必须是 "CURRENT" 或 "PRIOR",表示在兑换货币时使用当前期间或前一期间的汇率类型。
  • 最小值:返回属性列表中的最小值。可以包含任意数量的参数。

    MIN(<Value1>, <Value2>,<ValueN>)

    示例:MIN( TRANSLATE( {Source System Balance (Entered)}, 'CAD', 'REC'), TRANSLATE( {Source System Balance (Functional)}, 'CAD', 'REC'), TRANSLATE( {Source System Balance (Reporting)}, 'CAD', 'REC') )

  • 先前期间的最小值:返回前 X 个期间的最小值。

    MIN_PRIOR (<Value>, <Number of Periods>, <To Currency*>, <Rate Type*>, <Rate Period*>)

    示例:MIN_PRIOR( {Source System Balance (Functional)}, '6', 'EUR', 'Simplified')

    Note:

    如果值是余额类型的属性(如源系统),则带星号 * 的参数是必需的。如果值是一般值(如数字属性),则忽略带 * 的参数。

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。Rate Period 参数必须是 "CURRENT" 或 "PRIOR",表示在兑换货币时使用当前期间或前一期间的汇率类型。
  • :以整数返回日期所在的月份 (1-12)

    MONTH (<DATE>)

  • 幂:将一个数提升为另一个数的指数幂。

    POWER(x,y),其中 x=基数,y=指数,x 和 y 可以是属性或计算(只要它们是数字)。

    示例:POWER(3,4)=81

    Note:

    分数值将数字还原为其根。例如,POWER(27, 1/3) = 3,即多维数据集根。

    Note:

    负值将执行指数计算的逆运算。例如,POWER(2, -2) = 1 / (2^2) = 1 / 4 = .25
  • 先前期间:返回指定先前期间的值。如果省略了先前期间数,则假定值为 1。

    PRIOR(<Value>, <Number of Periods Prior*>, <To Currency*>, <Rate Type*>, <Rate Period*>)

    示例:PRIOR( {Source System Balance (Entered)}, '1', 'EUR', 'rec', 'prior')

    Note:

    如果值是余额类型的属性(如源系统),则带星号 * 的参数是必需的。如果值是一般值(如数字属性),则忽略带 * 的参数。

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。Rate Period 参数必须是 "CURRENT" 或 "PRIOR",表示在兑换货币时使用当前期间或前一期间的汇率类型。
  • 舍入:返回舍入到指定小数位数的值。

    ROUND(<Value>, <Decimal Places>)

    示例:ROUND( ({Scripted Translate} /7), 4)

  • 先前期间的总和:返回前 X 个期间的值的总和。

    SUM_PRIOR(<Value>, <Number of Periods>, <To Currency*>, <Rate Type*>, <Rate Period*>)

    示例:SUM_PRIOR( {Source System Balance (Reporting)}, '3', 'EUR', 'REC')

    Note:

    如果值是余额类型的属性(如源系统),则带星号 * 的参数是必需的。如果值是一般值(如数字属性),则忽略带 * 的参数。

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。Rate Period 参数必须是 "CURRENT" 或 "PRIOR",表示在兑换货币时使用当前期间或前一期间的汇率类型。
  • 文本位置:返回值中子字符串的索引,1 表示第一个位置。

    INSTRING(<Value>, <Value To Search>)

    示例:INSTRING( UPPERCASE( {Name} ), 'TAX' )

  • 转换:使用指定的汇率类型将货币属性转换为数字属性。

    TRANSLATE(<Value>, <To Currency>, <Rate Type>)

    示例:TRANSLATE( {Source System Balance (Entered)}, 'EUR', 'Accounting')

    Note:

    Rate Type 必须是系统中的有效汇率类型,或者为值 "REC"(表示使用分配给调节的汇率类型)。
  • 大写:返回大写形式的值。

    UPPERCASE(<Value>)

    示例:UPPERCASE( {Name} )

  • :以整数返回日期所在的年份。

    YEAR (<DATE>)