Global filters

Global filters, represented by the Filters icon at the top right of an Odoo spreadsheet, allow you to apply one or more filters to all the Odoo data that has been inserted in that spreadsheet.

These filters are particularly useful for reports and dashboards as users can easily and dynamically customize the view to answer complex business questions spanning multiple data sources.

小技巧

When a spreadsheet with global filters is added to a dashboard, the filters appear as dropdown menus at the top of the dashboard. In a spreadsheet, they appear in a pane to the right of the spreadsheet.

Global filters at the top of a dashboard

Three types of global filters are available:

  • 日期:根据特定时间范围筛选数据,可使用 月/季度相对周期从 / 至 选项。

  • 关系:根据相关模型中的关系字段筛选数据,例如,通过 销售人员 并将 用户 模型设置为相关模型。

  • ref:文本 <spreadsheet/global-filters/create-text>:根据文本字符串或预定义值范围(如产品编号或条形码)筛选数据。

全局筛选器与标准的 :icon:`fa-filter`(添加筛选器)`电子表格函数不同,前者可让您对数据进行排序和临时隐藏,后者则作用于底层的 :ref:`数据源 <spreadsheet/insert/data-sources>`,在数据载入电子表格之前对其进行筛选。

创建全局过滤器时,每个数据源的 字段匹配 将确保过滤器作用于正确的数据库 字段

小技巧

  • 全局筛选器的工作原理是在电子表格中所有数据源的域中添加额外的条件。因此,如果打算使用全局筛选器,在配置数据库中的初始列表、透视表或图表时,不要使用相同的条件。

  • 在相关情况下设置默认值,可确保电子表格或仪表盘快速加载,并提供有用的初始视图,如有需要还可进一步自定义。例如,可以设置 日期 筛选器,默认显示过去 30 天的数据。

字段匹配

重要

这一过程至关重要,因为匹配错误的字段或根本不设置匹配字段,会导致全局筛选器无法显示所需的结果。

全局筛选器需要作用于正确的数据库字段,才能发挥预期功能。请看应用于销售数据的 日期 筛选器。由于*销售订单* 模型包含多个日期字段,因此确定哪个字段与筛选器相关至关重要,例如订单日期、交货日期、预期日期或到期日期。

当 :ref:` 创建全局筛选器 <spreadsheet/global-filters/create>` 时,筛选器属性字段匹配 部分允许您为电子表格中的每个 数据源,确定筛选器应作用于或匹配哪个数据库字段。

字段匹配将在创建 日期关系文本 全局筛选器的相关章节中进一步解释。

创建全局筛选器

Odoo 文件管理 应用程序或通过 Odoo 仪表板 应用程序打开所需的电子表格(如果您要向仪表板添加筛选器)。

小技巧

要访问仪表板的底层电子表格,请在**仪表板**应用程序打开时, 激活开发人员模式,然后点击悬停在仪表板名称上时出现的 (编辑) 图标。

要添加新的筛选器,请点击 筛选器,然后在 添加新筛选器… 下酌情点击 日期关系 或 :guilabel:` 文本`。此时将打开 :guilabel:`筛选器属性 ` 窗格。

保存全局筛选器时,如果缺少任何必填信息,或如果在 字段匹配 部分中提供的任何信息不合适,则会显示错误,说明 某些必填字段无效

日期

注解

日期 筛选器只能与 日期日期和时间 字段匹配。

打开 筛选器属性 窗格:

  1. 标签 字段中输入新日期筛选器的名称。

  2. 时间范围 下拉菜单中,选择以下选项之一:

    • 月/季度:启用特定月份和/或季度的下拉菜单以及年份选择器。默认启用 月份季度 值。如果禁用这两个值,则只能按年份进行筛选。

      要设置 默认值,请启用 自动筛选当前时段,并选择是否筛选当前的:guilabel:月份季度 或:guilabel:年度

    • 相对期间:启用相对于当前日期的特定时间范围的下拉菜单(例如,截至日期的一年过去 7 天、:guilabel:`过去 30 天`等)。

      要设置 默认值,请从可用值中选择一个。

    • 起始/截止日期:启用 开始日期…结束日期… 日期选择字段,以定义特定的时间范围(例如,06/05/202406/27/2024)。

  3. 字段匹配 部分,针对每个数据源,点击 日期字段 下方,选择筛选器应匹配的字段。

    使用 周期偏移 功能,可以将时间范围向过去或未来偏移一个或两个周期,从而进行比较。默认情况下,不设置周期偏移。可用的偏移有:上一个上一个之前下一个下一个之后

    小技巧

    要使用 周期偏移 功能有效地比较数据,请使用 复制相关插入列表数据透视表,然后在设置字段匹配时,为第二个数据源而不是第一个数据源设置周期偏移。

    应用筛选器时,原始列表或数据透视表显示所选时间范围内的数据,而第二个列表或数据透视表则显示该时间范围之前或之后的数据。

  4. 点击:guilabel:保存

Example

在下面的示例中,创建了 日期 全局筛选器,以便透视表和图表显示每个季度的销售数据。如果只选择年份,则显示全年的数据。

日期筛选器,用于筛选季度和年份

筛选器属性字段匹配 部分,已选择 订单日期 字段作为匹配日期字段。列表 #1 不需要匹配日期字段,因为我们不会在相关数据源上使用此筛选器。

日期筛选器,选择订单日期作为匹配字段

关联

注解

关系 筛选器只能与 Many2OneOne2ManyMany2Many 字段匹配。

打开 筛选器属性 窗格:

  1. 标签 字段中输入新关系筛选器的名称。

  2. 相关模型 字段中,开始键入模型名称以显示所有模型的列表,然后选择相应的模型。一旦选择了一个模型,默认值可能值 字段以及 字段匹配 部分就会出现。

  3. 要设置 默认值,请从可用值中选择一个;这些值是模型中的记录。如果相关模型是*用户*模型,则可启用 :guilabel:`自动筛选当前用户`选项。

  4. 要限制可显示的值,请启用 用域限制值,然后点击 编辑域 添加或编辑规则。

  5. 字段匹配 部分,检查是否已为每个数据源分配了正确的匹配字段。如果没有,请点击数据源名称下方以选择正确的字段。

  6. 点击:guilabel:保存

Example

在下面的示例中,创建了 关系 筛选器,以便数据透视表和图表只显示与选定销售人员相关的销售数据。*用户*模型被设置为 相关模型

在数据透视表上设置关系筛选器

筛选属性字段匹配 部分,字段 销售人员 被自动指定为数据透视表和图表的匹配字段。列表 #1* 不需要匹配字段,因为我们不会在相关数据源上使用此筛选器。

配置了用户模型的关系筛选器

文本

注解

文本 筛选器只能与 文本(字符)整数十进制(浮点数) 字段匹配。

打开 筛选器属性 窗格:

  1. 标签 字段中输入新文本筛选器的名称。

  2. 可选择启用 将数值限制在一定范围内。这样,您就可以通过键入范围或在电子表格中选择范围来输入电子表格范围。

  3. 可选择输入 默认值

  4. 字段匹配 部分,点击每个数据源的数据源名称下方,选择 文本 筛选器应匹配的字段。

  5. 点击:guilabel:保存

Example

在下面的示例中,创建了一个 文本 全局筛选器,允许用户从 产品 筛选器中选择一个产品,并使数据透视表和图表只显示与该特定产品相关的销售数据。

设置在枢轴表上的全局筛选器

筛选器属性 中,筛选器的 可能值 被限制为范围 ‘产品(清单#1)’!A2:A34。这对应于包含插入电子表格的列表中产品的 显示名称 的范围。

限制范围的文本筛选器

通过此配置,可在文本筛选器中选择一个预定义值,按产品名称筛选数据透视表和图表。在本例中,家具 已被选为 产品类别,这意味着只能选择该类别的产品作为可能的值。

此外,如果范围中的值是动态从数据库中获取的,那么文本筛选器也是动态的,即会反映对这些值所做的更改。

管理和使用全局筛选器

点击 Odoo 电子表格右上方的 筛选器 图标,即可访问为该电子表格创建的全局筛选器。

有可能:

  • 通过选择每个筛选器的适当值,应用一个或多个全局筛选器

    小技巧

    Reloading the browser will cause any global filters to reset to their initial state or default value, as relevant. To refresh data in an inserted list, pivot table, or chart without losing global filters that have been applied, click Data ‣ Refresh all data from the menu bar.

  • 将鼠标悬停在筛选器上,使用 (拖动手柄) 图标更改位置,即可**更改现有筛选器的顺序**。

  • 点击筛选器值旁边的 (清除) 图标,即可**清除筛选器值**(无论是默认值还是选定值)。

  • 编辑现有筛选器 通过选择 (编辑) 图标打开筛选器的 筛选器属性,然后根据需要进行编辑。

  • 通过选择 :icon:`fa-cog`:guilabel:`(编辑)` 图标打开筛选器的 :guilabel:`筛选器属性`,然后点击 :guilabel:`移除`,**删除现有的筛选器