Warning |
---|
This is valid for ConfiForms cloud! |
Info |
---|
This is a page to show how to use ConfiForms Filters by example |
ConfiForms filters is the core component of the app and is used absolutely everywhere where you need to describe a condition, filter the dataset or setup the behaviour (field and IFTTT rules)
In this example we will be more focused on filtering the data, but will also touch the basics of a conditionally applied rules
Let's consider these forms that will, logically, build the bookshelf. Each book can be taken for reading and returned when ready. We will have a form for storing this state and couple of forms to store the data about the book and the author(s)
We have 3 forms
linked together using smart fields (see how on the right, in data structures section)
So, one book may have multiple authors and is on a bookshelf
ConfiForms Form Definition | ||||
---|---|---|---|---|
| ||||
ConfiForms Form Definition | ||
---|---|---|
| ||
ConfiForms Form Definition | ||||
---|---|---|---|---|
| ||||
Form: bookshelf | |||||||||
---|---|---|---|---|---|---|---|---|---|
book | Smart dropdown referencing form "books", and showing "book title" | ||||||||
status | Dropdown field
| ||||||||
takeBook | Action button to take the book, sets
| ||||||||
returnBook | Action button to return the book, sets
| ||||||||
takenBy | User |
Form: books | |||
---|---|---|---|
title | Text field holding a book title | ||
authors | Smart multi-select field referencing "authors" form and showing authors last name and first name
|
Form "books" has an IFTTT rule to "auto-create" a record in the "bookshelf" form when a new book is added
Form: author | |
---|---|
firstName | Text field holding author's first name |
lastName | Test field holding author's last name |
dob | Simple date to store author's "date of birth" |
To show all books, we will leave filter property empty
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
No filter, showing all books in the bookshelf |
To show only available books we should use for filter expression: status:avail, where status is the field name of bookshelf form and avail is the id of one of the status values in dropdown list
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
status:avail |
To show books taken only by current user, we should use for filter expression: takenBy:[entry._user], where takenBy is the field name and _user is built-in property of form to get value of current user
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
takenBy:[entry._user] |
To find books which title starts from word "The", we should use for filter expression: The*
ConfiForms TableView | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Code Block |
---|
book.title:The* |
To find books which any field starts from word "Bridget'', we should use for filter expression: Bridget*
ConfiForms TableView | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Code Block |
---|
Bridget* |
Transformation of authors: book.authors.transform(lastName.append([entry.firstName.prepend(, )]))
To find books which any field ends with word "love", we should use for filter expression: * love
ConfiForms TableView | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Code Block |
---|
*love |
To find books which any field contains word "and", we should use for filter expression: *and*
ConfiForms TableView | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Code Block |
---|
*and* |
To find books which authors born before 01.01.1950, we should use for filter expression: book.authors.dob.formatDate(yyyyMMdd):<19500101 , where book. is the bookshelf form's field of Smart Dropdown type, which is reference to books form record and authors. in its turn is the books form's field of Smart Multiselect type, which is reference to author form record and dob is the field name of author form, which is transformed by virtual function formatDate.
ConfiForms TableView | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Code Block |
---|
book.authors.dob.formatDate(yyyyMMdd):<19500101 |
To find books which status is Available and title starts with word 'The', we should use for filter expression logical operations:
book.title:The* AND status:avail
ConfiForms TableView | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Code Block |
---|
book.title:The* AND status:avail |
To find books which title starts with word 'The' or available books of Jojo Moyes, we should use for filter expression logical operations:
book.title:The* OR book.authors.lastName:Moyes AND status:avail
ConfiForms TableView | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Code Block |
---|
book.title:The* OR book.authors.lastName:Moyes AND status:avail |
To find books that were registered without authors, we should use for filter expression: book.authors:[empty]
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
book.authors:[empty] |
To find books that were registered today, we should use for filter expression: created:[today]
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
created:[today] |
To find books with more than one author, we should use virtual function asCount in filter expression: book.authors.asCount:>1
ConfiForms TableView | ||||||
---|---|---|---|---|---|---|
| ||||||
Code Block |
---|
book.authors.asCount:>1 |
To find books with only single author, we will use symbol ! to reverse the previous expression in filter: !book.authors.asCount:>1
ConfiForms TableView | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Code Block |
---|
!book.authors.asCount:>1 |
Show taken books only for logged in users
ConfiForms TableView | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Code Block |
---|
status:taken AND !_user:"" |
Info |
---|
More examples coming soon! Need help with filtering or wondering how to get the certain data from bookshelf forms? Let us know and we will be happy to help and add your example here! Click "Get support" button on the right and send us a message! |