引用变量的语法

可以在分析和仪表盘中引用变量。

引用变量的方式取决于您所执行的任务。对于通过对话框中的字段提供的任务,只能指定变量的类型和名称(而不是完整语法),例如在筛选器定义中引用变量。

对于其他任务(例如在标题视图中引用变量),可以指定变量语法。所使用的语法取决于变量类型,如下表中所述。

类型 语法 示例

会话

@{biServer.variables['NQ_SESSION。variablename']}

其中 variablename 是会话变量的名称,例如 DISPLAYNAME。

@{biServer.variables['NQ_SESSION.SalesRegion']}

语义模型(资料档案库)

@{biServer.variables.variablename}

@{biServer.variables['variablename']}

其中 variablename 是变量的名称,例如 prime_begin

@{biServer.variables.prime_begin}

@{biServer.variables['prime_begin']}

表示或请求

@{variables。variablename}[format]{defaultvalue}

@{scope.variables['variablename']}

其中:

variablename 是表示变量或请求变量的名称,例如 MyFavoriteRegion。

(可选)format 是依赖于变量数据类型的格式掩码,例如 #,##0、MM/DD/YY hh:mm:ss。(请注意,格式不应用于默认值。)

(可选)defaultvalue 是一个常量或变量引用,指示在未填充由 variablename 引用的变量时使用的值。

scope 标识变量的限定符。在多个级别(分析、仪表盘页和仪表盘)使用变量并希望访问特定值时,必须指定范围。(如果未指定范围,则优先顺序为分析、仪表盘页和仪表盘。)

将仪表盘提示用于可以具有多个值的表示变量时,语法会因列类型的不同而异。多个值将格式化为以逗号分隔的值,因此,任何格式化子句将在各个值使用逗号联接起来之前应用。

@{variables.MyFavoriteRegion}{EASTERN REGION}

@{dashboard.MyFavoriteRegion}{EASTERN REGION}

@{dashboard.variables['MyFavoriteRegion']}

(@{myNumVar}[#,##0]{1000})

(@{variables.MyOwnTimestamp}[YY-MM-DD hh:mm:ss]{)

(@{myTextVar}{A, B, C})

全局

@{global.variables.variablename}

其中 variablename 是全局变量的名称,例如,gv_region。引用全局变量时,必须使用全限定名称,如示例中所示。

全局变量的命名惯例必须遵守 JavaScript 的 ECMA 脚本编写语言规范。名称不能超过200个字符,不能包含嵌入空格、保留关键字以及特殊字符。如果您不熟悉 JavaScripting 语言要求,请查看第三方参考

@{global.variables.gv_date_n_time}

您也可以在表达式中引用变量。以下主题中介绍了有关在表达式中引用变量的准则:

会话变量

可以使用以下准则在表达式中引用会话变量。

  • 以 VALUEOF 函数的参数形式包含会话变量。
  • 用双引号将变量名引起来。
  • 在会话变量前面放置 NQ_SESSION 和一个句点。
  • 用双引号将 NQ_SESSION 引起来。
  • 用括号将 NQ_SESSION 部分和会话变量名括起来。

例如:

"Market"."Region"=VALUEOF("NQ_SESSION"."SalesRegion")

表示变量

可以使用以下准则在表达式中引用表示变量。

当引用表示变量时,使用此语法:

@{variablename}{defaultvalue}

其中,variablename 是表示变量的名称,defaultvalue(可选)是一个常量或变量引用,指示在未填充由 variablename 引用的变量时使用的值。

要将变量的类型转换为字符串或者要包括多个变量,请将整个语法用单引号引起来,例如:

'@{user.displayName}'

如果 @ 符号后面未跟随 {,则将其视为一个 @ 符号。使用可以具有多个值的表示变量时,语法会因列类型的不同而异。

在 SQL 中为指定列类型使用以下语法以生成有效的 SQL 语句:

  • 文本 — (@{variablename}['@']{'defaultvalue'})

  • 数字 — (@{variablename}{defaultvalue})

  • 日期时间 - (@{variablename}{timestamp 'defaultvalue'})

  • 日期(仅日期)- (@{variablename}{date 'defaultvalue'})

  • 时间(仅时间)- (@{variablename}{time 'defaultvalue'})

例如:

'@{user.displayName}'

语义模型(资料档案库)变量

可以使用以下准则在表达式中引用语义模型(资料档案库)变量。

  • 以 VALUEOF 函数的参数形式包含变量。
  • 用双引号将变量名引起来。
  • 按名称引用静态语义模型(资料档案库)变量。
  • 按全限定名称引用动态语义模型(资料档案库)变量。

例如:

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END