# 故障排除 - 报表任务和生成的报表

本主题提供有关解决在管理报表任务和使用它们生成报表时遇到的常见问题的帮助。

## 上传分发列表文件时应用程序重新加载失败

这可能是由于在添加分发列表之前，加载脚本末尾的格式存在一些问题。

常见示例：

* 当前加载脚本的末尾有一个 `Exit script` 语句。

* 加载脚本中最后一个 LOAD 或 SELECT 语句末尾缺少分号。

鉴于上述示例，以下解决方案可能会起作用：

* 将新添加的 Distribution List 脚本段移动到 `Exit script` 语句上方的新位置。或者，如果考虑到您的用例和脚本上下文，这样做是合理的，请删除 `Exit script` 语句。

* 添加缺少的分号。

## 报表任务：“未能发送给某些用户。”

报表任务可能会发送给某些用户，但未能发送给其他用户。

可能的原因 1

这些收件人的电子邮件地址在分发列表中已更改。在为添加到报表任务的每个收件人生成报表时，Qlik Cloud 会在分发列表中搜索该电子邮件地址。如果未找到匹配项，则无法为该用户生成报表。

建议的操作 1

最佳实践是使用组将用户添加到报表任务中。组是收件人的集合。当您更改作为组的一部分添加到任务的收件人的电子邮件地址时，将生成报表并将其传送到更新后的电子邮件地址。

如果确实需要将单个收件人添加到报表任务中，请从报表任务中删除原始用户，然后使用其更新后的电子邮件地址重新添加他们。

有关更多信息，请参见 [为您的报表创建分发列表](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-distribution.htm)。

可能的原因 2

在应用程序中未找到分发列表中引用的一个或多个报表筛选器。例如：

* 筛选器的名称在应用程序中已更改，但未在分发列表中更新。

* 筛选器在应用程序中已删除，但分发列表中仍继续引用它。

* 分发列表中引用的筛选器尚未添加到应用程序中。

建议的操作 2

更新筛选器名称以使应用程序和分发列表之间保持一致。根据需要添加筛选器。如果筛选器已删除且不再适用，请从分发列表中删除其引用。

## 包含 Excel 模板的报表任务：“未能发送：无法生成”

可能的原因 1

该模板使用了表格报表不支持的 Excel 功能。

示例：

* Visual Basic for Applications、宏和脚本

* 第三方扩展

建议的操作 1

创建一个不使用不受支持的 Excel 功能的模板。

有关适用于 Microsoft Excel 的 Qlik 加载项的限制列表，请参见 [Qlik 报告服务 规范和限制](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Reporting-service-specifications-limitations.htm)。

可能的原因 2

应用程序中的一个或多个字段配置了始终选择一个值，并且没有将任何报表筛选器应用于报表任务以为这些字段中的每一个准确选择一个值。

建议的操作 2

如果应用程序包含一个或多个使用始终一个选定值属性配置的字段，则需要配置报告筛选器，以便筛选器为每个字段恰好选择一个值。这些报告筛选器需要应用于报告任务。

如果筛选器不包含这些字段的值，或者根本没有筛选器与任务关联，则报告任务将失败。

可能的原因 3

发生了以下情况：

* 您使用一个或多个列标记将应用程序中表格图表的数据添加到了模板中。

* 在应用程序中，一个或多个表格列在应用程序中应用了如果满足以下条件则显示列设置。

* 在生成报表时，不满足这些列的如果满足以下条件则显示列条件。

当您添加与在表格图表上设置的如果满足以下条件则显示列条件相关联的列标记时，在运行使用该模板的报表任务时必须满足该条件。否则，报表任务将失败。

建议的操作 3

删除列标记，并将表格图表数据作为表格标记添加回模板。即使不满足条件，使用此模板的报表任务也将成功运行。

## 报表任务执行失败 - 达到唯一报表的最大数量

报表任务执行失败，并显示以下消息：

未发送报表，因为已达到此任务的唯一报表的最大数量。请检查收件人列表以获取更多详细信息。

一个报告任务最多可以生成 500 个唯一的报告。此限制的评估方式是针对添加到任务中的所有模板，而不是针对任务中的每个模板。此限制也适用于所有报告任务，无论是应用了一个还是多个周期。

编辑报表任务，更改定义，以便每次执行生成的唯一报表少于 500 个。如果仍需要一次生成 500 个以上的唯一报表，则可以创建具有类似传送设置的单独任务。

## 我的报表不包含我预期的数据

可能的原因 1

加载脚本包含 Star 语句，并且报表设置为使用筛选器。

建议的操作 1

重新编写加载脚本，使其在不使用任何 Star 语句的情况下按预期工作。

可能的原因 2

该报表是从使用对象筛选器的 Qlik NPrinting 模板迁移而来的，并且模板中的一个或多个对象引用与当前应用程序中的可用对象不匹配。

建议的操作 2

使用编辑器打开模板并验证对象引用。重新上传更正后的模板并运行测试任务以验证对象级筛选器行为。

有关更多信息，请参见 [将报表模板从 Qlik NPrinting 导出到 Qlik Cloud](https://help.qlik.com/zh-CN/migration/Content/Migration/NPrinting/exporting-nprinting-excel-to-qlik-cloud.htm)。

可能的原因 3

报表数据依赖于关键字段的聚合。

建议的操作 3

基于关键字段的聚合可能会导致报表中显示的数据出现问题。

不要聚合关键字段，而是创建关键字段的副本，该副本不显式用于链接多个表。

有关在 Qlik 数据模型中聚合关键字段的最佳实践的更多信息，请参见 [关键字段聚合](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/aggregation-functions.htm#Aggregat)。

## 报表任务已被禁用

可能的原因 1

在应用程序中添加或删除了部分访问表。

建议的操作 1

评估部分访问表中定义的数据安全限制对于报表任务用例是否可接受。如果可接受，请重新启用报表任务。

可能的原因 2

应用程序具有部分访问权限，并且租户管理员更改了报表任务的所有者。这会自动禁用报表任务。在这种情况下，只有报表任务的新所有者才能重新启用该任务。

建议的操作 2

报表任务所有权的更改可能会影响应用于任务各个收件人的数据减少。请记住，如果报表任务配置为将报表发送给不是 Qlik Cloud 租户中用户的个人，则他们将接收的数据将与新报表任务所有者将接收的数据相同。

当新报表任务所有者评估了配置并进行了任何必要的更改后，他们可以重新启用报表任务。

有关更多信息，请参见 [应用内报告和区域权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-section-access.htm)。

## 文件名（或文件名预览）中生成报表的时间戳不正确

报表任务所有者尚未在其个人设置中设置首选时区。如果未显式设置首选时区，则报表文件名将使用 UTC 时间戳。

拥有报表任务的用户需要在其个人设置中设置时区。

执行以下操作：

1. 在 Qlik Cloud 中，单击右上角的用户配置文件菜单。

2. 单击设置。

3. 在时区下，选择您的首选时区。

## 从 Excel 模板生成的报表中使用了不正确的字体

模板中使用了自定义字体。

不支持在 Excel 模板文件中使用自定义字体。如果您的模板包含无法用于生成报告的字体，则使用这些字体的元素将在生成的报告中改为使用默认 Excel 字体。

在创作 Excel 模板时，请使用与您最初使用的自定义字体最匹配的 Excel 字体。这是避免报表输出中出现意外结果的最佳方法。

[故障排除 - 使用报表模板](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Troubleshooting/troubleshooting-report-templates.htm)

[故障排除 - 报表的管理和安装](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Troubleshooting/troubleshooting-report-administration.htm)