User guide
/Data Filtering
Data Filtering
OBS ERP is equipped with advanced data filtering capability. It allows you to filter out data and create complex reports.
Quick search
You can filter data by keyword in any module using the quick search input located on the top bar (shown on Fig. 1). OBS ERP will provide results upon every key press.

Fig. 1
Advanced search
You can use the Filter button shown on Fig. 2 to filter data by different parameters. Depending on the configuration, you can filter the data stored in the selected module by date, categories or other parameter. To do that, you need to perform the following steps:
- Step 1 Click the Filter button
- Step 2 Make a selection
- Step 3 Press Search

Fig. 2
Default filter
Once you are satisfied with the results (after clicking "Search"), you have the option to save the generated report for future reference. Simply click the "Save selected filter" button as depicted in Fig. 2, and provide a name for the report (see Fig. 3).

Fig. 3
You can check the "Default Filter" option and this report will become default for this module. Next time you open the module you will see the name of the report on the bar above the data listing template (in this case "Assignee").

Fig. 4
Adding filter options
If you need to filter the data by a field that isn't currently available, scroll down to the bottom and click on "Additional fields". Doing so will reveal the following fields (Fig. 5).

Fig. 5
Then you can select the fields you would like to include in the advanced filter. In addition, you can toggle "Filter by date" option. It allows you to search data by time interval.
Advanced Table Filters:
Filters in the system allow you to refine data based on specific criteria, even when the data is connected through multiple tables. This section explains how to configure these filters and provides examples to help you understand both simple and complex cases.
How to Configure a Filter
1. Navigate to the Filters Section:
Go to Constructor → Edit a Module → Click Filters.
2. Configure the Following Fields:
- Label: Provide a clear and descriptive name for the filter.
Example: client_industry_id (for filtering by the industry of the client). - Table: Select the table containing the final values for the filter.
Example: industries. - Interface: Choose how the filter will appear in the interface. Filters only work with multiple select (dropdown) fields, allowing users to select one or more options.
- Source Table: Define the relationship path to the desired field. This may involve one or more steps to traverse related tables.
Example: ->companies->industry_id (to filter by the client’s industry). - Source Column: Specify the starting column in the module’s table where the relationship begins.
Example: company_id (representing the client in the Invoices module).
Examples of Filters
Related Modules: A Simple Case
Example: Filter Expenses by Products in Expense Items
Use Case: Search for products listed in the submodule Expense Items.
- Label: product_id
- Table: products
- Interface: multiple select
- Source Table: expense_items
- Source Column: product_id
This filter works because Expense Items is a directly related submodule to Expenses.
Filter Invoices by the Industry of the Client
Example 1: Filter invoices to find those linked to clients in a specific industry.
- Label: client_industry_id
- Table: industries
- Interface: multiple select
- Source Table: ->companies->industry_id
- Source Column: company_id
This configuration filters invoices based on the industry of the client associated with each invoice.
Filter Invoices by the Department of the Client's Account Manager
Example 2: Filter invoices by the department of the account manager responsible for the client.
- Label: client_account_owner_department_id
- Table: departments
- Interface: multiple select
- Source Table: ->companies->account_manager_id->staff->department_id
- Source Column: company_id
This configuration allows users to filter invoices based on the department of the account manager associated with the client.
Filter Data in a Main Module Using a Related Submodule
Example 3: Filter deviation records by their responsibles (which are in a related submodule)
- Main Module: deviations_register
- Label: responsibles
- Table: staff
- Interface: multiple select
- Source Table: qreg_deviations_register_responsibles->responsible_id (Notice: it does not start with arrow)
- Source Column: record_id
This setup allows you to filter deviation records based on the responsible staff members assigned to them.
Rules for Defining Source Table and Source Column
1. When the Source Table starts with "->"- The Source Column must be a column from the main module.
- The first module after the arrow is the one that references the main module.
- Example:
- Source Table: ->companies->industry_id
- Source Column: company_id
- Meaning "invoices.company_id = companies.id", and then we go to industry_id
- The Source Column belongs to the listed submodule, which directly refers back to the main module.
- Example:
- Source Table: qreg_deviations_register_responsibles->responsible_id (Notice: it does not start with arrow)
- Source Column: record_id
- Meaning "qreg_deviations_register_responsibles.record_id = deviations_register.id" and then we go to responsible_id
Key Takeaways
- If source table starts with "->", then the source column shall be a column in the main module, and the first module after the "->" shall be the referring module (invoice.company_id -> companies.id)
- If source table does not start with "->" and starts directly with a module, then the source column is a column in that module which is referring to the main module (qreg_deviations_register_responsibles.record_id = deviations_register.id)
- Filters can handle simple relationships (1-2 steps) and more complex ones (3+ steps).
- Filters only work with multiple select (dropdown) fields, allowing users to refine data intuitively.
- Descriptive labels like client_industry_id or client_account_owner_department_id make filters intuitive for users.
- Understanding the relationships between tables (e.g., parent modules and submodules) is crucial for configuring filters correctly.