评估加载脚本中的变量

时间:2017-09-19 16:43:48

标签: qlikview

是否有任何理由在Qlikview加载脚本中该语法不起作用?

Let v_myNumber = year(today());
Let v_myString = '2017-08';

If left($(v_myString),4) = text($(v_myNumber)) Then
    'do something
Else
    'do something else
End If;

我尝试过两种方式将变量字符串转换为数字并直接以这种方式对数字变量求值。当他们应该......时,他们不会评估等价。

2 个答案:

答案 0 :(得分:3)

左边的函数正在期待一个字符串,因为它正在获取其他东西作为参数。正如您目前所做的那样,该函数将被称为Left(2017-08,4),这是QlikView无法处理的。

如果你使用Left(' $(v_myString)',4),它将按预期的方式评估为Left(' 2017-08',4)。只需在变量周围添加引号即可。

虽然QlikView将它们称为变量,但它们应该被视为"要在运行时替换(有时评估)和#34;这与标准"变量"略有不同。行为。

答案 1 :(得分:3)

美元符号扩张是一个很大的主题,但简而言之:

  • 如果您要设置变量 - 不需要$()。
  • 如果您使用变量 - 可以使用$()。取决于其背景。
  • 如果您使用的是需要评估的变量,则必须使用$()。 例如在加载脚本中:let var1 = 'if(a=1,1,2)' - 稍后在脚本中您可能希望将此变量用作$(var1),因此它将在运行中进行评估...

我希望现在更清楚一点。变量可以在很多方面使用甚至可以参数!

例如:

var2 = $1*$2

然后您可以这样使用:$(var2(2,3)),这将产生6

为了进一步探讨,我建议阅读this