# 变量

Qlik Sense 和 QlikView 变量可用于自定义 Qlik NPrinting 报表和电子邮件。

Qlik Sense 或 QlikView 中的变量为静态值，该值可为：

* 文本字符串
* 数字
* 日期
* 表达式的评估结果

表达式由开头的等号 = 标识。当您在应用程序或文档中使用变量时，对变量进行的更改会在使用变量的每个地方应用。

变量可包含复杂的表达式、用户信息或公司详细信息。例如，您可使用变量来计算各地区的每周销售额。您可使用变量替代可能在未来更改的产品名。用户名变量可用于个性化公司电子邮件。这些类型的变量让您的报告更加一致，并且更便于维护。

您还可以使用变量创建电子邮件通讯组列表。

## Qlik NPrinting 中使用的变量的最佳实践

Qlik Sense 和 QlikView 中的变量通常结合美元符号扩展使用。当您想要用占位符等变量来替代真正的变量时，您应该使用此扩展。变量美元符号扩展通过将其 "文本" 替换为变量的静态值发挥作用。

例如，您在 Qlik Sense 或 QlikView 中具有这两个变量：

* vSales 定义为：Sum(Sales)
* vSales2 定义为：=Sum(Sales)

类似 =$(vSales) 的表达式可在 Qlik Sense 图表中用作度量或在 QlikView 图表中用作表达式。当 Qlik 引擎计算该表达式时，其将把美元符号扩展 $(vSales) 的内容替代为 vSales 的静态值。vSales 的静态值为 Sum(Sales)。因此计算的最终表达式将为 =Sum(Sales)。

假设总计 Sum(Sales) 为 1560。如果您写下类似 =$(vSales2) 的表达式，Qlik 引擎将和以前一样计算它，并且将美元符号扩展 $(vSales2) 的内容替代为 vSales2 的静态值。vSales2 的静态值为 1560，因为其被定义为表达式。因此计算的最终表达式将为 1560。

这意味着如果没有美元符号扩展，则 vSales 为包含 Sum(Sales) 的文本的变量。

如果您将这些表达式作为 Qlik Sense 图表中的两个不同度量或 QlikView 中的表达式插入，将看到以下结果：

结果

| Dim | $(vSales) | $(vSales2) |
| --- | --- | --- |
| A | 350 | 1560 |
| B | 470 | 1560 |
| C | 740 | 1560 |

如您所见，=$(vSales) 得到维度值的部分和，而 =$(vSales2) 得到总和。

Qlik NPrinting 将总是考虑变量的静态值，永远不考虑其美元符号扩展。如果您希望评估变量中没有以 = 号开头的表达式，则必须在 QlikView 或 Qlik Sense 中更改其定义。如果您无法进行该操作，则必须创建可定义为初始变量的美元符号扩展的第二个变量：vSales3 定义为 =$(vSales)。如果您在使用 Qlik NPrinting Designer，则不必创建另一个变量。取而代之的是，您可使用公式来展开初始变量。

## 错误处理

管理员可设置如果未解析电子邮件中的变量会发生什么。

进行以下操作：

1. 在主菜单中，转到管理员 &gt; 设置。
2. 单击任务按钮。
3. 在电子邮件分配错误下，转到当发布任务无法解析变量标签时。从以下选项中进行选择：
   * 发送带有原样标签的电子邮件
   * 发送删除了标签的电子邮件
   * 请勿发送电子邮件
4. 单击更新。

## 了解详情

* [在计算之前变量不会展开](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/Troubleshooting/Variables-dont-expand-before-calculating.htm) （仅提供英文版本）
* [通过电子邮件分发报告](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/DistributionSchedulesAutomation/DistributingReportsbyEmail.htm) （仅提供英文版本）
* [在表达式中使用变量的示例](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/use-variables-expression.htm) (Qlik Sense)
* [脚本变量](https://help.qlik.com/zh-CN/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptVariables.htm) (QlikView)