过滤器

过滤器可让您优化数据。您可将过滤器添加至任务、报表、对象和用户。它们可以是静态或动态的。

对于在应用程序中可使用多少任务、报表、对象或用户过滤器没有限制。但是,只能将一个对象过滤器应用至单个对象。下面是您可使用过滤器的几种方式:

  • 任务:过滤发布任务以仅共享来自当前季度的数据。
  • 报表:筛选报表以仅显示和前 5 个销售员相关的信息。
  • 对象:筛选饼图,该饼图将食品杂货销售情况详细化,以仅显示水果销售情况。
  • 用户:过滤用户组以仅查看和其地理位置相关的数据。

借助静态过滤器,您可从 QlikViewQlik Sense 字段选择值列表。要更改值,您必须手动编辑过滤器。

使用 QlikViewQlik Sense 公式动态过滤。公式必须使用 QlikViewQlik Sense 规则和语法,并返回单个值。将会计算公式,然后结果将用于过滤数据。您不必修改动态过滤器即可获取新的值。

过滤器规则

Qlik NPrinting 过滤器规则设计用于通过有限数目的选项提供可预测的行为。当在报表创建期间在不同的实体上应用多个过滤器时:

  • 按以下顺序计算过滤器:任务、用户、报表和对象。
  • 过滤器不一定会覆盖过去的选择。不存在严格的层级。

应用单个过滤器情况下的计算流程:

  1. 在选中覆盖值的情况下,为所有字段清除所有选择。
  2. 用公式为每个字段计算值。
  3. 根据所有字段的值应用选择。

在生成每个报表之前会验证过滤器。将根据文档数据检查任务、用户和报表过滤器。如果它们无效,您将看到一个错误,说明这些过滤器无法在任务执行页面上应用。这发生在报表条件计算之前,以及报表生成之前。

过滤器应用顺序:

  1. 所有任务过滤器依据其排序顺序一次应用一个。
  2. 所有用户过滤器依据其排序顺序一次应用一个。
  3. 所有报表过滤器依据其排序顺序一次应用一个。
  4. 所有对象过滤器依据其排序顺序一次应用一个。

规则

  • 将会先计算公式以管理静态值。
  • 将按顺序分析每个过滤器(任务 -> 用户 -> 报表 -> 对象)。
  • 不同层级中的过滤器字段的值将会相交。
  • 如果因为相交而提供空结果,过滤器链将变得无效。
  • 如果在不可行的选择中应用过滤器结果,则会返回特定错误。
  • 存在一个特定的标记可让您更改这些行为:覆盖值。和特定过滤器字段相关的该标记可让您在特定链层级上清除特定字段上的选择。您也可改为添加其他值。

过滤结果的示例

下面的示例显示在选中或取消选中覆盖值的情况下,为相同字段的不同值分配至特定实体的过滤器:

  • 任务过滤器:Country = ItalySpain
  • 用户过滤器:-
  • 报表过滤器:Country = ItalyGermany
  • 结果过滤器:Country = Italy

 

  • 任务过滤器:Country = ItalySpain
  • 用户过滤器:覆盖值 = 为Country选中
  • 报表过滤器:Country = ItalyGermany
  • 结果过滤器:Country = ItalyGermany

 

  • 任务过滤器:Country = ItalySpain
  • 用户过滤器:Country = ItalyGermany
  • 报表过滤器:覆盖值 = 为Country选中
  • 所得筛选器:Country = 所有国家/地区

 

  • 任务过滤器:Country = Italy
  • 用户过滤器:-
  • 报表过滤器:Country = Germany
  • 结果过滤器:空

 

  • 任务过滤器:Country = Italy
  • 用户过滤器:覆盖值=对于 Country 为 True
  • 报表过滤器:Country = Germany
  • 结果过滤器: Germany

选择值

下拉菜单中,您可从以下项目选择:

  • 值为:如果您想选择字符串则使用此选项。例如,如果您想在Country字段中选择 USA
  • 数值为:在 QlikViewQlik Sense 中,所有字段值都可能为双值。字段值可具有数值和文字值。示例为可具有数值 40908 以及文字表示“2011-12-31”的日期。如果您希望选择数值,可使用该选项。
  • 计算值:如果您希望插入需要计算的表达式,可使用该选项。它必须返回单个值。

如果右侧出现完全缓存通知,则表示 Qlik NPrinting 缓存包含字段的所有值。这意味着当您开始在对话框中键入时,Qlik NPrinting 会搜索匹配您键入的字符串的所有值。

当有大量不同值时,Qlik NPrinting 缓存不会存储来自 QlikView 字段的所有值。在该情况下,完全缓存的绿色标签不会出现。您将改为看到值字段右侧的搜索按钮。键入您要查找的字符串或字符串的一部分。单击搜索以强制 Qlik NPrinting 查找关联的 QlikView 文档中的字符串。

Qlik NPrinting 缓存仅存储来自每个 QlikView 字段的前 1000 个值。如果存在大量不同的值,您必须手动插入要过滤的整个值。

创建静态过滤器

进行以下操作:

  1. Qlik NPrinting 主菜单选择应用程序,然后选择过滤器
  2. 单击创建过滤器
  3. 为您的过滤器输入名称
  4. 应用程序下拉列表选择应用程序。
  5. 单击创建来创建报表。

添加字段

进行以下操作:

  1. 在过滤器菜单中单击字段
  2. 单击添加字段
  3. 连接下,选择您的连接。
  4. 名称下方,选择字段名称。

  5. 覆盖值:如果您选择该复选框,其他过滤器应用在同一字段上的所有选择都将移除并由当前过滤器中设定的字段值取代。如果未选中属于默认设置的覆盖值,通过应用在所选字段上的不同过滤器中的字段值的相交,将创建新的过滤器。

    备注: 您可通过创建具有空值的过滤器并选中覆盖值复选框,为该字段清除所有选择。

将值添加至字段

进行以下操作:

  1. 区域保留值为。该选项会强制 Qlik NPrinting 选择您指定的值列表。
  2. 在对话框窗口中开始键入您需要的值的一部分。
  3. 在值出现时选择您的值。
  4. 如果您希望添加第二个值,单击添加值

    出现新的空行。

  5. 开始在新对话窗口中键入您的第二个值。
  6. 在值出现时选择您的值。
  7. 单击创建

使用公式创建动态过滤器

您可使用 QlikViewQlik Sense 公式来计算要在过滤器中使用的值。每个公式必须返回单个值并使用 QlikViewQlik Sense 语法。例如,您可使用公式来计算去年的值,并将它和过滤器中的年份字段比较。

进行以下操作:

  1. 如上新建过滤器
  2. 向下滚动至区域。
  3. 从下拉列表中选择计算值

    该选项会强制 Qlik NPrinting 将您在对话框中插入的公式发送至 QlikViewQlik Sense,后者将计算结果并将其返回,以在过滤器中使用。

  4. 框中输入公式。

    例如,要检索去年的值,可输入 =Year(now())-1

    您可单击添加值来添加另一个公式。为同一字段添加多个值会创建逻辑“or”关联。过滤器将保留匹配一个或两个值的数据。

  5. 单击创建

将过滤器添加至新报表

备注: 您必须先创建过滤器,然后才可将它们添加至报表、任务、对象或用户。您无法在另一实体内部新建过滤器。

进行以下操作:

  1. 新建报表。
  2. 单击主菜单中的过滤器
  3. 可用项目中选择您需要的过滤器。
  4. 单击 ë 将过滤器移动到所选项目列中。
  5. 单击添加过滤器

将过滤器应用至对象

在您希望过滤特定表格或图像时,可使用对象过滤器。例如,如果您有不带过滤器的报表,但是希望添加仅显示去年销售情况的表格,则可应用对象过滤器。

对象只能有单个过滤器。如果您需要向对象添加复杂过滤器,则必须创建唯一的过滤器,然后才能编辑报表模板。

进行以下操作:

  1. 报表屏幕上,单击您的报表。
  2. 单击编辑模板按钮打开 Qlik NPrinting Designer 模板编辑器。
  3. 在左侧窗格上,右键单击您要过滤的对象类型,然后选择添加对象

    您可过滤表格和图像。

  4. 将会打开新的窗口。选择您要过滤的对象,然后单击确定
  5. 将您的新对象从左侧窗格拖动至您的报表模板。
  6. 属性窗格上,转到过滤器并单击 ¥
  7. 将打开新的窗口。选择您要使用的过滤器,然后单击确定
    备注: 如果您不小心选取了错误的过滤器,可单击 ¥ 旁的橡皮擦图标以从对象删除所有过滤器。
  8. 单击预览

    您的报表对象将仅显示和过滤器相关的信息。

导入和用户相关的对象过滤器

由于性能原因,和用户关联的对象过滤器不会自动包括在 Qlik NPrinting Designer 中。导入和数千个用户关联的过滤器需要较长时间,并且可导致 Qlik NPrinting 停止。

您可通过编辑 webengine.config 文件来更改该行为。

进行以下操作:

  1. 打开 webengine.config 文件。
  2. 取消注释行 <!-<add key="include-user-filters" />->
  3. 关闭并重新打开 Qlik NPrinting Designer
  4. 过滤器的列表现在将上传您之前保存在储存库中的所有过滤器。

    这可能需要较长时间,具体取决于存储的过滤器数目。

如果您不希望编辑 webengine.config 文件,可手动导入特定用户过滤器。可以两种方法实现此操作:

  • 从所有用户删除过滤器关联。
  • 用相同的字段和值新建和任何用户都不关联的过滤器。

配置报表行为

您可在模板中为图表和表格配置报表处理对象过滤器错误的方式。打开报表,向下滚动至错误处理,并从两个选项进行选择:

  • 生成报告。无效内容将由占位符图像取代。

    无效图表将由占位符图像取代。它们具有灰色背景和黑色覆盖文本,其内容为“无效选择”。这些图像根据您报表模板中的最大大小设置缩放。无效的表格替换为没有覆盖文本的空表格。

  • 请勿生成报告。报表生成将失败直至问题得到解决。

    整个报表将在生成上失败。用户将无法查看它。

Qlik NPrinting April 2018 及更高版本中,新报表的默认行为是添加占位符图像。如果您使用 Qlik NPrinting February 2018 或更早版本,并更新至较新的版本,您的报表将保留之前已存在的故障行为。

配置空内容

空内容显示为占位符图像。它们具有黑色覆盖文本,其内容为“无效选择”。可更改该覆盖文本。

进行以下操作:

  1. 打开 scheduler.config 配置文件。
  2. 找到 "empty-content-text" 标签。取消注释该行,并编辑值。
  3. 重新启动 Qlik NPrinting scheduler service

更改即应用至所有空内容占位符图像。