2024-04-01 23:46:54 +07:00
|
|
|
|
=================================
|
|
|
|
|
Search, filter, and group records
|
|
|
|
|
=================================
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
Odoo allows for the searching, filtering, and grouping of records in a view to display only the most
|
|
|
|
|
relevant records. The search bar is located at the top of the view, start typing to :ref:`search for
|
|
|
|
|
values <search/values>`, or click the :guilabel:`🔽 (down arrow)` icon to access the :ref:`Filter
|
|
|
|
|
<search/filters>`, :ref:`Group By <search/group>`, and :ref:`Favorites <search/favorites>` drop-down
|
|
|
|
|
menus.
|
|
|
|
|
|
|
|
|
|
.. _search/values:
|
|
|
|
|
|
|
|
|
|
Search for values
|
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
Use the search field to quickly look for specific values, and add them as a filter. Type the value
|
|
|
|
|
to search for, and select the desired option from the drop-down menu to apply the search filter.
|
|
|
|
|
|
|
|
|
|
.. example::
|
|
|
|
|
Instead of adding a :ref:`custom filter <search/custom-filters>` to select records where
|
|
|
|
|
*Mitchell Admin* is the salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
|
|
|
|
Reporting --> Sales`), search for `Mitch`, and click the :guilabel:`⏵ (right arrow)` next to
|
|
|
|
|
:guilabel:`Search Salesperson for: Mitch`, and select :guilabel:`Mitchell Admin`.
|
|
|
|
|
|
|
|
|
|
.. image:: search/search-values.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: Searching for a specific value on the Sales Analysis report
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
Using the search field is equivalent to using the *contains* operator when adding a :ref:`custom
|
|
|
|
|
filter <search/custom-filters>`. If a partial value is entered, and the desired field is directly
|
|
|
|
|
selected (without selecting the :guilabel:`⏵ (right arrow)`), *all* records containing the typed
|
|
|
|
|
characters for the selected field are included.
|
|
|
|
|
|
|
|
|
|
.. _search/filters:
|
|
|
|
|
|
|
|
|
|
Filters
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
Filters are used to select records that meet specific criteria. The default selection of records is
|
|
|
|
|
specific to each view, but can be modified by selecting one (or several) :ref:`preconfigured filters
|
|
|
|
|
<search/preconfigured-filters>`, or by adding a :ref:`custom filter <search/custom-filters>`.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. _search/preconfigured-filters:
|
|
|
|
|
|
|
|
|
|
Preconfigured filters
|
2024-04-01 23:46:54 +07:00
|
|
|
|
---------------------
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
Modify the default selection of records by clicking the :guilabel:`🔽 (down arrow)` icon from the
|
|
|
|
|
search bar, and selecting one (or several) *preconfigured filters* from the :guilabel:`Filters`
|
|
|
|
|
drop-down menu.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. example::
|
2024-04-01 23:46:54 +07:00
|
|
|
|
On the *Sales Analysis* report (:menuselection:`Sales app --> Reporting --> Sales`), only records
|
|
|
|
|
that are at the *sales order* stage, with an *order date* within the last 365 days, are selected
|
|
|
|
|
by default.
|
|
|
|
|
|
|
|
|
|
To also include records at the *quotation* stage, select :guilabel:`Quotations` from the
|
|
|
|
|
:guilabel:`Filters`.
|
|
|
|
|
|
|
|
|
|
Furthermore, to *only* include sales order and quotation records from a specific year, like
|
|
|
|
|
2024, for example, first remove the existing `Order Date: Last 365 Days` filter, by clicking the
|
|
|
|
|
:guilabel:`❌ (remove)` icon, then select :menuselection:`Order Date --> 2024`.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. image:: search/preconfigured-filters.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: Using preconfigured filters on the Sales Analysis report
|
|
|
|
|
|
|
|
|
|
.. note::
|
2024-04-01 23:46:54 +07:00
|
|
|
|
The preconfigured :guilabel:`Filters` are grouped, and each group is separated by a horizontal
|
|
|
|
|
line. Selecting preconfigured filters from the same group allows records to match *any* of the
|
|
|
|
|
applied conditions. However, selecting filters from different groups requires records to match
|
|
|
|
|
*all* of the applied conditions.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. _search/custom-filters:
|
|
|
|
|
|
|
|
|
|
Custom filters
|
2024-04-01 23:46:54 +07:00
|
|
|
|
--------------
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
If the :ref:`preconfigured filters <search/preconfigured-filters>` are not specific enough, add a
|
|
|
|
|
custom filter. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select
|
|
|
|
|
:menuselection:`Filters --> Add Custom Filter`.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
The :guilabel:`Add Custom Filter` pop-up window displays the matching option, filter rule, and a
|
|
|
|
|
toggle to :guilabel:`Include archived` records.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
.. image:: search/custom-filter.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: The Add Custom Filter pop-up window.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
The default matching configuration is to :guilabel:`Match any of the following rules`, indicating
|
|
|
|
|
that each filter rule is applied independently. To change the matching configuration to
|
|
|
|
|
:guilabel:`Match all of the following rules`, at least two filter rules must be added to the custom
|
|
|
|
|
filter.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
- :guilabel:`Match all 🔽 of the following rules`: **all** of the filter rules must be met.
|
|
|
|
|
Logically, this is an *AND* (`&`) operation.
|
|
|
|
|
- :guilabel:`Match any 🔽 of the following rules`: **any** of the filter rules can be met.
|
|
|
|
|
Logically, this is an *OR* (`|`) operation.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
By default, a single filter rule is added to the custom filter. The following describes the
|
|
|
|
|
structure of a filter rule:
|
|
|
|
|
|
|
|
|
|
#. The first inline field is the *field name* to filter by. Some fields have refined parameters that
|
|
|
|
|
are nested within another field. These fields have an :guilabel:`> (arrow)` icon beside them,
|
|
|
|
|
which can be selected to reveal the nested fields.
|
|
|
|
|
#. The second inline field is the conditional *operator* used to compare the field name to the
|
|
|
|
|
value. The :ref:`available conditional operators <reference/orm/domains>` are specific to the
|
|
|
|
|
field's data type.
|
|
|
|
|
#. The third inline field is the variable *value* of the field name. The value input may appear as a
|
|
|
|
|
drop-down menu, a text input, a number input, a date/time input, a boolean selector, or it may be
|
|
|
|
|
blank, depending on the operator used and the field's data type.
|
|
|
|
|
|
|
|
|
|
Three inline buttons are also available to the right of the rule's filter criteria:
|
|
|
|
|
|
|
|
|
|
#. :guilabel:`➕ (plus sign)`: adds a new rule below the existing rule.
|
|
|
|
|
#. :guilabel:`(Add branch)`: adds a new group of rules below the existing rule, with the
|
|
|
|
|
:guilabel:`any` and :guilabel:`all` matching options available to define how each rule within
|
|
|
|
|
this branch is applied to the filter. If the matching option is set to the same as the parent
|
|
|
|
|
group, the fields are moved to join the parent group.
|
|
|
|
|
|
|
|
|
|
.. example::
|
|
|
|
|
If the matching option is set to :guilabel:`Match all 🔽 of the following rules`, and a new
|
|
|
|
|
branch is added with its matching option changed from :guilabel:`any 🔽 of` to :guilabel:`all
|
|
|
|
|
🔽 of`, the newly-added branch disappears, and its group of rules are moved to the parent
|
|
|
|
|
group.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
#. :guilabel:`🗑️ (garbage can)`: deletes the node. If a branch node is deleted, all children of
|
|
|
|
|
that node are deleted, as well.
|
|
|
|
|
|
|
|
|
|
A new filter rule can be added to the custom filter by clicking the :guilabel:`New Rule` button.
|
|
|
|
|
|
|
|
|
|
Once the filter criteria are defined, click :guilabel:`Add` to add the custom filter to the view.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. example::
|
2024-04-01 23:46:54 +07:00
|
|
|
|
To target all leads and opportunities from the :menuselection:`CRM` app that are in the *Won*
|
|
|
|
|
stage, and have an expected revenue greater than $1,000, the following should be entered:
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
:guilabel:`Match all 🔽 (down arrow) of the following rules:`
|
|
|
|
|
|
|
|
|
|
#. :guilabel:`Stage` :guilabel:`is in` :guilabel:`Won`
|
|
|
|
|
#. :guilabel:`Expected Revenue` :guilabel:`>` `1,000`
|
|
|
|
|
#. :guilabel:`any 🔽 (down arrow)` :guilabel:`of:`
|
|
|
|
|
|
|
|
|
|
- :guilabel:`Type` :guilabel:`=` :guilabel:`Lead`
|
|
|
|
|
- :guilabel:`Type` :guilabel:`=` :guilabel:`Opportunity`
|
|
|
|
|
|
|
|
|
|
.. image:: search/custom-filter-example.png
|
2022-11-15 19:42:20 +07:00
|
|
|
|
:align: center
|
2024-04-01 23:46:54 +07:00
|
|
|
|
:alt: Adding a custom filter to filter specific records in CRM.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
.. tip::
|
|
|
|
|
Activate :ref:`developer-mode` to reveal each field's technical name and data type, as well as
|
|
|
|
|
the :guilabel:`# Code editor` text area below the filter rules, to view and edit the domain
|
|
|
|
|
manually.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. _search/group:
|
|
|
|
|
|
|
|
|
|
Group records
|
|
|
|
|
=============
|
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
The display of records in a view can be clustered together, according to one of the *preconfigured
|
|
|
|
|
groups*. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select one of
|
|
|
|
|
the :guilabel:`Group By` options from the drop-down menu.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. example::
|
2024-04-01 23:46:54 +07:00
|
|
|
|
To group the records by salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
|
|
|
|
Reporting --> Sales`), click the :guilabel:`Salesperson` option from the :guilabel:`Group By`
|
|
|
|
|
drop-down menu. The view changes to group the records by salesperson, without filtering out any
|
|
|
|
|
records.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. image:: search/group.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: Grouping records on the Sales Analysis report
|
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
It is possible to *customize groups* by using a field present on the model. To do so, click
|
|
|
|
|
:menuselection:`Add Custom Group`, and select a field from the drop-down menu.
|
2022-11-15 19:42:20 +07:00
|
|
|
|
|
|
|
|
|
.. note::
|
2024-04-01 23:46:54 +07:00
|
|
|
|
Several groups can be used at the same time. The first group that is selected is the main
|
|
|
|
|
cluster, the next one that is added further divides the main group's categories, and so on.
|
|
|
|
|
Furthermore, filters and groups can be used together to refine the view even more.
|
|
|
|
|
|
2024-07-17 06:00:46 +07:00
|
|
|
|
.. _search/comparison:
|
|
|
|
|
|
|
|
|
|
Comparison
|
|
|
|
|
==========
|
|
|
|
|
|
|
|
|
|
Certain reporting dashboards include a :guilabel:`Comparison` section in the drop-down menus of
|
|
|
|
|
their :guilabel:`Search...` bars. This includes the :doc:`Overall Equipment Effectiveness
|
2024-07-27 06:12:21 +07:00
|
|
|
|
<../inventory_and_mrp/manufacturing/reporting/oee>` report for the *Manufacturing* app, and the
|
2024-07-17 06:00:46 +07:00
|
|
|
|
:doc:`Purchase <../inventory_and_mrp/purchase/advanced/analyze>` report for the *Purchase* app,
|
|
|
|
|
among others.
|
|
|
|
|
|
|
|
|
|
The options in the :icon:`fa-adjust` :guilabel:`Comparison` section are used to compare data from
|
|
|
|
|
two different time periods. There are two comparison options to choose from: :guilabel:`(Time
|
|
|
|
|
Filter): Previous Period` and :guilabel:`(Time Filter): Previous Year`.
|
|
|
|
|
|
|
|
|
|
.. important::
|
|
|
|
|
For some reports, the :guilabel:`Comparison` section **only** appears in the
|
|
|
|
|
:guilabel:`Search...` bar drop-down menu if one (or more) time periods have been selected in the
|
|
|
|
|
:guilabel:`Filters` column. This is because, if no time period is specified, there is nothing to
|
|
|
|
|
compare.
|
|
|
|
|
|
|
|
|
|
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
|
|
|
|
|
:icon:`fa-pie-chart` :guilabel:`(pie chart)` graph type, or the :icon:`oi-view-pivot`
|
|
|
|
|
:guilabel:`(pivot)` view, is selected. A :guilabel:`Comparison` option can be selected even if
|
|
|
|
|
another view is enabled, but doing so does **not** change the way data is displayed on the
|
|
|
|
|
report.
|
|
|
|
|
|
|
|
|
|
.. image:: search/comparison-section.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: The Search... bar for the production analysis report.
|
|
|
|
|
|
|
|
|
|
To view data using one of the two comparisons, begin by selecting a time period in the
|
|
|
|
|
:guilabel:`Filters` column of the :guilabel:`Search...` bar drop-down menu. Then, select either
|
|
|
|
|
:guilabel:`(Time Filter): Previous Period` or :guilabel:`(Time Filter): Previous Year` in the
|
|
|
|
|
:guilabel:`Comparison` section.
|
|
|
|
|
|
|
|
|
|
With one of the :guilabel:`Comparison` options enabled, the report compares the data for the
|
|
|
|
|
selected period, with the data for the same unit of time (month, quarter, year), one period or year
|
|
|
|
|
prior. The way the data is displayed depends on the selected view:
|
|
|
|
|
|
|
|
|
|
- The :icon:`fa-bar-chart` :guilabel:`(bar chart)` shows two bars, side-by-side, for each unit of
|
|
|
|
|
time for the selected time period. The left bar represents the selected time period, while the
|
|
|
|
|
right bar represents the previous time period.
|
|
|
|
|
- The :icon:`fa-line-chart` :guilabel:`(line chart)` is displayed with two lines, one representing
|
|
|
|
|
the selected time period, and the other representing the previous time period.
|
|
|
|
|
- The :icon:`fa-pie-chart` :guilabel:`(pie chart)` appears as a large circle with a smaller circle
|
|
|
|
|
inside. The larger circle represents the selected time period, while the smaller circle represents
|
|
|
|
|
the previous time period.
|
|
|
|
|
- The :icon:`oi-view-pivot` :guilabel:`(pivot table)` is displayed with each column split into two
|
|
|
|
|
smaller columns. The right column represents the selected time period, while the left column
|
|
|
|
|
represents the previous time period.
|
|
|
|
|
|
|
|
|
|
.. example::
|
|
|
|
|
In the :guilabel:`Production Analysis` report of the :menuselection:`Manufacturing` app, data for
|
|
|
|
|
the second quarter of 2024 is compared to data for the second quarter of 2023. :guilabel:`Q2` is
|
|
|
|
|
selected in the :guilabel:`End Date` filter section of the :guilabel:`Search...` bar drop-down
|
|
|
|
|
menu. In the :guilabel:`Comparison` section, :guilabel:`End Date: Previous Year` is selected.
|
|
|
|
|
|
|
|
|
|
The current year is 2024, so the larger circle shows data for the second quarter (Q2) of 2024.
|
|
|
|
|
The smaller circle shows data for the second quarter (Q2) of 2023, which is the same time period,
|
|
|
|
|
but one *year* prior.
|
|
|
|
|
|
|
|
|
|
If :guilabel:`End Date: Previous Period` is selected instead, the smaller circle shows data for
|
|
|
|
|
the first quarter (Q1) of 2024, which is the same time period, but one *period* prior.
|
|
|
|
|
|
|
|
|
|
.. image:: search/comparison.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: The comparison view of the Production Analysis report.
|
|
|
|
|
|
2024-04-01 23:46:54 +07:00
|
|
|
|
.. _search/favorites:
|
|
|
|
|
|
|
|
|
|
Favorites
|
|
|
|
|
=========
|
|
|
|
|
|
|
|
|
|
Favorites are a way to save a specific search for future use, or as the new default filter for the
|
|
|
|
|
view.
|
|
|
|
|
|
|
|
|
|
To save the current view as a favorite, click the :guilabel:`🔽 (down arrow)` icon in the search
|
|
|
|
|
bar, then select the :guilabel:`Save current search` drop-down menu to display the following
|
|
|
|
|
options:
|
|
|
|
|
|
|
|
|
|
- Filter name: name of the favorited search.
|
|
|
|
|
- :guilabel:`Default filter`: sets the favorited search as the default filter for the view.
|
|
|
|
|
- :guilabel:`Shared`: makes the favorited search available to all users. By default, the favorited
|
|
|
|
|
search is only available to the user who created it.
|
|
|
|
|
|
|
|
|
|
Once the options are set, click :guilabel:`Save` to save the favorited search.
|
|
|
|
|
|
|
|
|
|
.. image:: search/favorites.png
|
|
|
|
|
:align: center
|
|
|
|
|
:alt: Saving a favorite search on the Sales Analysis report
|
|
|
|
|
|
|
|
|
|
Saved favorites can be accessed by clicking the :guilabel:`🔽 (down arrow)` icon in the search bar,
|
|
|
|
|
then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a saved
|
|
|
|
|
favorite, click the :guilabel:`🗑️ (garbage can)` icon next to the favorited search.
|
|
|
|
|
|
|
|
|
|
.. tip::
|
|
|
|
|
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to
|
|
|
|
|
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
|
|
|
|
|
all favorited searches can be viewed, edited, archived, or deleted.
|