[Solved] Filtering Data in a Form
[Solved] Filtering Data in a Form
Hello
I just need a hint how to do that
I have imported a spreadsheet into base. The goal is to filter the data
1. 3 columns
2. Colum 1 has characters like a, b, c, etc.
3. Colum 2+3 have to be filtered and shown in a table according to Colum 1
-- The filter can be single like show only colum 2+3 according to a or
-- according to a+b
Do you have a video or an example how this is done
Thank you very much
Dagoxx
I just need a hint how to do that
I have imported a spreadsheet into base. The goal is to filter the data
1. 3 columns
2. Colum 1 has characters like a, b, c, etc.
3. Colum 2+3 have to be filtered and shown in a table according to Colum 1
-- The filter can be single like show only colum 2+3 according to a or
-- according to a+b
Do you have a video or an example how this is done
Thank you very much
Dagoxx
Last edited by Hagar Delest on Tue Sep 26, 2023 8:02 am, edited 1 time in total.
Reason: tagged solved.
Reason: tagged solved.
Re: Filtering Data in a Form
What is the resulting type of database as indicated in the database document's status bar?I have imported a spreadsheet into base.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
@ Dagoxx
Please be so kind to show column titles and at least one record or two. It would make yourself more clear.
Regards
Nick N
Please be so kind to show column titles and at least one record or two. It would make yourself more clear.
Regards
Nick N
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
Hi Nick
Thank you of course
In this attached example I would like to filter "Importance" with XXX and XXXX
The result should be 2 rows in a table with columns Category and SubCategory and rows "Bluetooth"+"Mouse" and "Bluetooth"+"Keyboard"
Hope this gives and idea
Have a great time
Dagoxx
Thank you of course
In this attached example I would like to filter "Importance" with XXX and XXXX
The result should be 2 rows in a table with columns Category and SubCategory and rows "Bluetooth"+"Mouse" and "Bluetooth"+"Keyboard"
Hope this gives and idea
Have a great time
Dagoxx
- Attachments
-
- Example.xlsx
- (4.9 KiB) Downloaded 409 times
OpenOffice 3.1
Re: Filtering Data in a Form
@ Dago
Good evening,
See example below with form filtering. To obtain 2 rows filtered, just modify data in 1st column of Table1.
Bye
Nick
Good evening,
See example below with form filtering. To obtain 2 rows filtered, just modify data in 1st column of Table1.
Bye
Nick
- Attachments
-
- first draft.odb
- (12.36 KiB) Downloaded 387 times
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
Hello
Looks great
Can I choose multiple criterias like "X" & "XX" and without having the "Submit" button.
Just when I choose it gives me the right rows.
Regards and have a great day
Dagoxx
Looks great
Can I choose multiple criterias like "X" & "XX" and without having the "Submit" button.
Just when I choose it gives me the right rows.
Regards and have a great day
Dagoxx
OpenOffice 3.1
Re: Filtering Data in a Form
Hi Dago,
If you intend a form with 2 or more filters you might find a solution (with a little help), but you need anyway to refresh your query by using a button.
The alternative with NO BUTTON TO PUSH, is a form with fixed related subform that you may browse by turning pages using the bar at the bottom of the form.
Hope you enjoy
If you intend a form with 2 or more filters you might find a solution (with a little help), but you need anyway to refresh your query by using a button.
The alternative with NO BUTTON TO PUSH, is a form with fixed related subform that you may browse by turning pages using the bar at the bottom of the form.
Hope you enjoy
- Attachments
-
- 2nd draft.odb
- (19.76 KiB) Downloaded 373 times
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
Hi Nick
Sorry for the delay
Hope you are having a great time.
Ok I understand. But is there a way to chose multiple X's.
Like: I want to see all that have XX and XXX together at once
Because with the 1st draft it is only possible to see XX or XXX
Regards and have a great weekend
Dagoxx
Sorry for the delay
Hope you are having a great time.
Ok I understand. But is there a way to chose multiple X's.
Like: I want to see all that have XX and XXX together at once
Because with the 1st draft it is only possible to see XX or XXX
Regards and have a great weekend
Dagoxx
OpenOffice 3.1
Re: Filtering Data in a Form
The most flexible filter tool is the form based filter available on the form navigation toolbar. It switches the form into a special mode where you enter filter criteria directly into your form controls and then confirm the filter settings. In form filter mode, there is a little filter navigator window where you collect multiple criteria like (A>5) AND (B LIKE *foo*) OR (X IS EMPTY). This allows for rather complex filters in a rather clumsy way. Notice that some form controls (e.g. text boxes) have a property "Filter proposal". When this option is checked, you get a listbox of unique text items while in form filter mode.
There is a dialog based standard filter like the one we know from spreadsheets. I don't know why it is hidden, but you can reach it with one extra click on the last button on the form navigation toolbar which opens an additional grid view on the current form with its own toolbar with the standard filter button.
With some macro code it is possible to get this standard filter dialog triggered by a push button on the form: https://ask.libreoffice.org/uploads/sho ... iFGReG.odt (demo form about form dispatches).
A proper set up with so called "power filtering" (storing crieria in a dedicated table) is tricky but with satifying results: download/file.php?id=14591
The following macro can be assigned to some toggle button's "status changed" event with complex filter criteria like "(A>5) AND (B LIKE *foo*) OR (X IS EMPTY)" stored in the button's "additional info" property.
In order to get the right filter string for the "additional info", create a query and copy the WHERE clause without the "WHERE" keyword. You may also open your form for editing, turn off design mode, apply the filter manually (form filter or standard filter dialog), turn on design mode and copy the filter from the form properties. This predefined form filter can be saved with the form., so the form loads with the filter and you can toggle it on/off without any macro using the toggle filter button on the navi toolbar.
There is a dialog based standard filter like the one we know from spreadsheets. I don't know why it is hidden, but you can reach it with one extra click on the last button on the form navigation toolbar which opens an additional grid view on the current form with its own toolbar with the standard filter button.
With some macro code it is possible to get this standard filter dialog triggered by a push button on the form: https://ask.libreoffice.org/uploads/sho ... iFGReG.odt (demo form about form dispatches).
A proper set up with so called "power filtering" (storing crieria in a dedicated table) is tricky but with satifying results: download/file.php?id=14591
The following macro can be assigned to some toggle button's "status changed" event with complex filter criteria like "(A>5) AND (B LIKE *foo*) OR (X IS EMPTY)" stored in the button's "additional info" property.
Code: Select all
Sub Button_Filter_OnOff(e)
b = cBool(e.Selected)
m = e.Source.Model
s = m.Tag
frm = m.Parent
REM print frm.Filter
frm.ApplyFilter = b
frm.Filter = s
frm.reload()
End Sub
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
OK Dago,
See below for a job you could have done by yourself. I.E. Inserting the duplicated categories in the first raw.
Goodbye
Nick
See below for a job you could have done by yourself. I.E. Inserting the duplicated categories in the first raw.
Goodbye
Nick
- Attachments
-
- Test001.odb
- (21.06 KiB) Downloaded 367 times
-
- Selection screenshot.png (11.08 KiB) Viewed 8925 times
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
Nick's filter form is faulty. You can easily tab from the filter row into the new row, which erases all form contents.
Recipe for a working filter form:
Source type: SQL
Source: SELECT * FROM "Filter" WHERE "ID"=0 (simply select everything from one row with a distinct row number)
Allow modification: Yes
Anything else: No
Navigation toolbar: No (there is only one record to edit)
This way you never lose the filter record while being able to user other row numbers for different kinds of forms.
Recipe for a working filter form:
Source type: SQL
Source: SELECT * FROM "Filter" WHERE "ID"=0 (simply select everything from one row with a distinct row number)
Allow modification: Yes
Anything else: No
Navigation toolbar: No (there is only one record to edit)
This way you never lose the filter record while being able to user other row numbers for different kinds of forms.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
Yes Villeroy, you are right! I have made a mistake in previous selection by showing the blank filter field.
Anyway Dago may nevertheless launch a query. E.G.:
Kindly check my file Test002 after correction.
Regards
Nick
Anyway Dago may nevertheless launch a query. E.G.:
Code: Select all
SELECT "Importance", "Category", "Subcategory" FROM "Table1" WHERE "Importance" = 'XX'
Regards
Nick
- Attachments
-
- Test002.odb
- (20.97 KiB) Downloaded 373 times
Libre Office 6.0.7 on Ubuntu 18.04
-
- Volunteer
- Posts: 1558
- Joined: Wed Jun 24, 2015 12:56 am
- Location: Colorado, USA
Re: Filtering Data in a Form
Nick G
Two more suggestions.
The ListBox query returns multiple identical choices which can be confusing for the user and make long lists even longer! Instead of a simple SELECT use SELECT DISTINCT to list each choice only once.
Filter tables should not hold more that one row of data. But in the Filter table the ID field has AutoValue set to YES , making it easy to add additional rows.
At minimum, set AutoValue to No., making it more difficult to add more rows.
To make it even more difficult, change ID from an Integer to a Boolean type. Then it is clear to anyone that looks at it that this is a special table.
I use the following SQL script as a template when creating a Filter table.
When executing scripts at Tools>SQL you are working directly with the underlying database engine, so when done there be sure to select View>Refresh Tables to inform the Base front end about the changes.
Two more suggestions.
The ListBox query returns multiple identical choices which can be confusing for the user and make long lists even longer! Instead of a simple SELECT use SELECT DISTINCT to list each choice only once.
Filter tables should not hold more that one row of data. But in the Filter table the ID field has AutoValue set to YES , making it easy to add additional rows.
At minimum, set AutoValue to No., making it more difficult to add more rows.
To make it even more difficult, change ID from an Integer to a Boolean type. Then it is clear to anyone that looks at it that this is a special table.
I use the following SQL script as a template when creating a Filter table.
Code: Select all
DROP TABLE "FILTER" IF EXISTS;
CREATE TABLE "FILTER" (
"ID" BOOLEAN NOT NULL PRIMARY KEY,
"FString" VARCHAR(50),
"F1" INTEGER NOT NULL,
"FDate" Date
);
INSERT INTO "FILTER"("ID", "FString","F1","FDate")
VALUES (FALSE, 'AAA', 0, NOW());
If your problem has been solved, please edit this topic's initial post and add "[Solved]" to the beginning of the subject line
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Re: Filtering Data in a Form
UncleDonald,
Thanks for yr suggestions. I appreciated. But, generally speaking, in LO, the form i proposed gives actual response Dago was waiting for, because there's a zone list that can be scrolled and the user can anyway make univoke choice.
Thanks for yr suggestions. I appreciated. But, generally speaking, in LO, the form i proposed gives actual response Dago was waiting for, because there's a zone list that can be scrolled and the user can anyway make univoke choice.
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
Hello
Thank you all
I am complete newbie in Databases
Sorry for my delay in responding
But the example do not work, when I want to see X + XX in the same time as mentioned
Usecase would be
a) show me all with X
b) show me all with X or XX
c) show ma all with X or XX or XXX
Is that possible?
Have a great day
Regards
Dagoxx
Thank you all
I am complete newbie in Databases
Sorry for my delay in responding
But the example do not work, when I want to see X + XX in the same time as mentioned
Usecase would be
a) show me all with X
b) show me all with X or XX
c) show ma all with X or XX or XXX
Is that possible?
Have a great day
Regards
Dagoxx
OpenOffice 3.1
Re: Filtering Data in a Form
Code: Select all
SELECT "T".* FROM "Topics" AS "T","Filter" AS "F"
WHERE "F"."ID" BETWEEN 3 AND 5
AND UPPER("T"."Topic") LIKE UPPER('%'|| "F"."TXT" ||'%')
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
It's easier to do with a separate filter table having an auto-ID where you add or remove criteria rows as needed.
See form and query "Filter2" in https://www.mediafire.com/file/jq7dl1pw ... 7.odb/file
See form and query "Filter2" in https://www.mediafire.com/file/jq7dl1pw ... 7.odb/file
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
Else you could edit query in a notepad and modify the variabile of the criteria as per previous message, E.G. using the statement OR.
With which you could extend selection to criterion X too.
Have a nice time
Code: Select all
SELECT "Importance", "Category", "Subcategory" FROM "Table2" WHERE "Importance" = 'XX' OR "Importance" = 'XXX'
Have a nice time
- Attachments
-
- Both selections using OR.png (20.14 KiB) Viewed 8297 times
Last edited by Nick N, on Tue Sep 19, 2023 12:56 am, edited 1 time in total.
Libre Office 6.0.7 on Ubuntu 18.04
-
- Volunteer
- Posts: 1558
- Joined: Wed Jun 24, 2015 12:56 am
- Location: Colorado, USA
Re: Filtering Data in a Form
Another approach based on the example uploaded by Nick N,
Form document Selection2 allows up to 3 selections.
Form document Selection2 allows up to 3 selections.
If your problem has been solved, please edit this topic's initial post and add "[Solved]" to the beginning of the subject line
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Re: Filtering Data in a Form
Hey
Great examples thank you
One solution is fix that means I need to script it
The other solution ask for saving after selecting.
Is it not possible to use CTRL+Mouse to higlight the selection
and after press enter or submit and get all possible combination according to the higlighting
Regards and have a great day
Dagoxx
Great examples thank you
One solution is fix that means I need to script it
The other solution ask for saving after selecting.
Is it not possible to use CTRL+Mouse to higlight the selection
and after press enter or submit and get all possible combination according to the higlighting
Regards and have a great day
Dagoxx
OpenOffice 3.1
Re: Filtering Data in a Form
Hola Hombre! Que passa?
Anything is feasable in IT, unless you use the good approach!
A zone list made in pure SQL doesn't grant you to do what you fancy.
If AOO Base doesn't suit your moves, why not trying to code in Java? But of course this would be the wrong place.
Anything is feasable in IT, unless you use the good approach!
A zone list made in pure SQL doesn't grant you to do what you fancy.
If AOO Base doesn't suit your moves, why not trying to code in Java? But of course this would be the wrong place.
Libre Office 6.0.7 on Ubuntu 18.04
-
- Volunteer
- Posts: 1558
- Joined: Wed Jun 24, 2015 12:56 am
- Location: Colorado, USA
Re: Filtering Data in a Form
A relatively simple coded Macro can eliminate the push button, if that's the issue.. See form document Selection3 in the attached demonstration.
The problem with coded macros is that they can be difficult to write and once working, easy to break. A seemingly minor change to the form document can sometimes render it useless.
.
The problem with coded macros is that they can be difficult to write and once working, easy to break. A seemingly minor change to the form document can sometimes render it useless.
.
If your problem has been solved, please edit this topic's initial post and add "[Solved]" to the beginning of the subject line
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Apache OpenOffice 4.1.14 & LibreOffice 7.6.2.1 (x86_64) - Windows 10 Professional- Windows 11
Re: Filtering Data in a Form
Would like to thank UncleDonald for his knowledge, as I haven't got sufficient skills.
Regards
Nick
Regards
Nick
Libre Office 6.0.7 on Ubuntu 18.04
Re: Filtering Data in a Form
This is why I wrote viewtopic.php?f=21&t=88831, which can be set up to refresh any listbox, combo box or (sub-)form of the same form document.UnklDonald418 wrote: ↑Fri Sep 22, 2023 2:19 am A relatively simple coded Macro can eliminate the push button, if that's the issue.. See form document Selection3 in the attached demonstration.
The problem with coded macros is that they can be difficult to write and once working, easy to break. A seemingly minor change to the form document can sometimes render it useless.
.Test004.odb
Just install the macro, add a hidden control to the triggering form * where you specify all the elements you want to be refreshed when the triggering form gets a record modified, inserted or deleted. The macro never needs to be touched. When things have been broken (renamed, removed), all you need to adjust is the text of the hidden control.
* RIght-click the triggering form in the form navigator, click New --> Hidden, right click the new element, change its name to AutoRefresh and enter one element or more than one separated by semicolon.
../Subform1 refreshes the triggering form's parent form's element "Subform1".
Subform/TableGrid/Listbox1 refreshes the triggering form's subform's element Listbox1 which is embedded in a table control "TableGrid".
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Ubuntu 18.04 with LibreOffice 6.0, latest OpenOffice and LibreOffice
Re: Filtering Data in a Form
Hello
Thank you very much for all your support and demos.
It has been really worth.
Have a great and fantastic day
Dagoxx
Thank you very much for all your support and demos.
It has been really worth.
Have a great and fantastic day
Dagoxx
OpenOffice 3.1