Data Source

Filtering Records

By default, all of the records you chose when setting up the data component will be displayed. For example, if you’re working on the details page of a customer and chose to view all the jobs connected to this customer - all records for this customer will be displayed.

If you would like to filter the records to only display certain records based on criteria you choose, you can do so in the Data Source Tab under Filters. In our case if you want to filter the jobs to only show jobs that meet specific criteria (on top of the original criteria) you can do so in the Data Source tab.

You can create as many filter groups, conditions and nested filter groups as you see fit.

Conditions have the following options: Choose the field, operator and value.

For example: Job Status (Field) is (operator) “Open” (value)

You can choose if the conditions should be AND or OR by changing between the “Match All” and  “Match Any” options:

In some cases you might want to nest conditions as a “Child Filter Group” which can give you much filtering flexibility.

For example, suppose we want to find the following jobs in our table:

All jobs where the title contains “Video” AND where status is “Open” OR status is “Pending”.

In most query languages this would look something like this:

`job title` CONTAINS “video” AND

(

`status` = “open”

OR

`status` = “pending”

);

This will first check for any jobs with the title “Video” and then it will check if the status is “Open” or “Pending”.

The relationship between the parent and child filter will always be filtered as “AND.”  So in our case it will check for jobs with the title “Video” and the status is “Open” OR the title is “Video” and the status is “Pending”.

To take this even a step further we can nest another filter below our second filter.

For example, suppose we want to find all jobs where title contains “Video” AND the status is “Open” OR status is “Pending” AND the due date is today.

In most query languages this would look something like this:

`job title` CONTAINS “video” AND

(

`status` = “open”

OR

`status` = “pending”

AND

(

`due date` “is today"

)

);

The following is a comprehensive list of filter options available depending on the field type:

Operator:

For Fields:

is

Text, Long Text, Rich Text, Name, Email, Address, Phone, Text Formula, Radio, Select, Complex Formula, Auto Increment, Link, Connection, Checkbox, Multi-Select, Number, Currency, Basic Formula, Rating, Slider

is not

Text, Long Text, Rich Text, Name, Email, Address, Phone, Text Formula, Radio, Select, Complex Formula, Auto Increment, Link, Connection, Checkbox, Multi-Select, Number, Currency, Basic Formula, Rating, Slider

contains

Text, Long Text, Rich Text, Name, Email, Address, Phone, Checkbox, Multi-Select

does not contain

Text, Long Text, Rich Text, Name, Email, Address, Phone, Checkbox, Multi-Select

starts with

Text, Long Text, Rich Text, Name, Email, Address, Phone,

ends with

Text, Long Text, Rich Text, Name, Email, Address, Phone,

is blank

Text, Long Text, Rich Text, Name, Email, Address, Phone, Text Formula, Radio, Select, Complex Formula, Auto Increment, Link, Connection, Checkbox, Multi-Select, Number, Currency, Basic Formula, Rating, Image, Signature, Slider

is not blank

Text, Long Text, Rich Text, Name, Email, Address, Phone, Text Formula, Radio, Select, Complex Formula, Auto Increment, Link, Connection, Checkbox, Multi-Select, Number, Currency, Basic Formula, Rating, Image, Signature

higher than

Number, Currency, Basic Formula, Rating, Slider

lower than

Number, Currency, Basic Formula, Rating, Slider

is unchecked

Decision Box

is checked

Decision Box

is not unchecked

Decision Box

is not checked

Decision Box

size is less than

File

size is greater than

File

file type is

File

file type is not

File

Filters for date fields:

Operator:

Operator Value 1:

is

 

is not

 

is during the current

week, month, quarter, year

is during the previous

X days, weeks, months, years

is during the next

X days, weeks, months, years

is before the previous

X days, weeks, months, years

is after the next

X days, weeks, months, years

is before

 

is after

 

is today

 

is today or before

 

is today or after

 

is before today

 

is after today

 

is blank

 

is not blank

 

is before current time

 

is after current time

 

There are several advanced filtering functions on top of the basic filtering that can be added based on the user who’s currently logged in:

  1. Show records that share a connection with the logged in user.

  2. Show records that are connected to a user who has one of the same role as the logged in user.

For the first scenario, we’ll assume the following data structure.

We have 3 tables:

  • Users

  • Companies

  • Jobs

Each Job belongs to a single company and each User belongs to a company- as can be seen in this diagram:

Suppose we want to view all the Jobs that belong to the same Company that the logged in user belongs to.

Since each User belongs to a specific company, we can easily add a filter to show only his company. But in our case there is no direct connection between the User and the Job. So how can we only show jobs that are for the same company that the user belongs to?

This can be done by adding a “Jobs” component and filtering to only show Jobs where the Company is connected to the Company the logged in user belongs to.

The second advanced filter is the ability to filter records that are connected to a record that is in the same role as the user logged in. That’s a mouthful so let’s break it down.

For this example we’ll assume the following database structure:

We have 2 tables and 3 user roles:

Tables:

  • Jobs

  • Users (our default table)

Each Job belongs to a specific user in our case - the one who created the record.

We also have 3 different user roles: Marketing, Human Resources, and Engineering.

Here is a list of our users currently in the app and their associated roles.

Notice how Jennifer Weiss and Alison Marcus are both assigned the Human Resources role.

Now let’s look at the jobs table.

Notice how Alison has 2 jobs and Jennifer has one job.

Our objective is to allow anyone that shares the same role as the person who created the job the ability to view the job. (For this instance it’ll be helpful to think of each role as a group.)

In this case, suppose Jennifer from Human Resources logs in the app, we want her to see all the jobs created by anyone in the Human Resources team, in this case that would be Alison… and vice versa.

You can accomplish this by adding the filter in the data source to show records where Created By is connected to any logged in user’s roles. As you can see in screenshot below:

Sorting records

You can choose which field is used for sorting records from the server. This can have an impact on which records you see especially when you combine this with limiting how many records you see.

Limit records

By default all records that match the predefined criteria are sent from the database. However, you can limit the number to a specific amount by changing the record limit.