|
Eddy Vluggen wrote: I often wonder how they ever discovered that there's a function hidden in
a particular screen.
Their kids told them.
Be excellent to each other. And... PARTY ON, DUDES!
Abraham Lincoln
|
|
|
|
|
I have designed a simple filter control for LIKE as well as AND/OR logic.
For anything more complex I have an export to Excel button with which the users can export the data and use the Excel filters - my view is that if the user wants sophisticated filtering then outside of using SQL, Excel is probably the next best thing.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
NodeGraph[^].
Very cool control.
brisingr_aerowing@Gryphon-PC $ rake in_the_dough
Raking in the dough
brisingr_aerowing@Gryphon-PC $ make lots_of_money
Making lots_of_money
|
|
|
|
|
I like the TFS query editor which displays grouped clauses in a simple manner. See this[^] screenshot for example.
/ravi
|
|
|
|
|
OriginalGriff wrote: Anybody found a "nice" way to get users to create and use complex filters?
It's called a "user guide". With screenshots.
And don't assume that anything is not worth explaining. Using a new prog can be scary, to people whose jobs depend on their using them properly, so help them gain confidence by explaining every detail in very simple language (i.e. don't use any programming terms).
- Show what to click, and explain what it is.
- Show how to select, and explain what they're selecting.
- Etc.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
The problem with user guides (and I've written enough of 'em) is that people don't read them - and with a good interface they shouldn't need to for most tasks.
For example: I learnt to drive a long time ago, but most of last month I spent in a hire car while mine was mended - a brand new Ford Fiesta Diesel. Now, Ford have been around for a long time, and (should) have most things right by now: I've driven enough of their cars over the years to see progress.
But I had to stop the car, find the manual, trawl through it and hunt down some information: how to activate the rear window wiper in the rain. Why? Because it is on a stalk that you can't see at all from the drivers normal seated position (it's hidden by one of the "fat bits" of the steering wheel at 10 & 2) and labeled on the top surface so you have to lean all the way forward and far to the left, then look hard right and down to see the pictogram - which isn't a good idea when you're doing 70! That's not a "good user interface" because the mechanism you need to use is hidden from you and you have to look it up and remember it instead of seeing a control and pressing it.
I'm after the "there's the button, press it" type of UI on this, so they don't have to look in the manual!
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|
|
OriginalGriff wrote: people don't read them
Hmm, I've found that not to be true. People only don't read the ones that are written badly, or that are not written from their perspective (one element of that perspective that's often forgotten is "I don't want to read the whole bluddy book! Just tell me which buttons to click and what to fill in to do A!")
Most users who tend not to read user guides have anecdotes on how they were doing something the hard way, but found the easy way when browsing the user guide out of boredom (or when looking for something else). My hand is in the air for that one.
OriginalGriff wrote: with a good interface they shouldn't need to for most tasks
Absolutely. As I say, though, users are people whose salaries depends on their using the product well, and there is a definite fear/nerve/unwillingness to change factor (especially after big updates), which a good user guide can help overcome.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
You may have used Process Monitor[^]. I think it's Filter UI has one of the best UI ever.
Behzad
|
|
|
|
|
Depends on the sophistication of the end user.
For most end users the paradigm used by PivotViewer is about the limit.
For higher end uses, it becomes tough to code and some BI and reporting tools are more what they are after. Who'd want an end user writing queries against an online oltp db?
There's my 2 cents.
|
|
|
|
|
The users are already familiar with your current filtering so keep that.
As they enter each filter, number them:
1. expr_1
At the top of the screen show the expression combinations.
1
1. expr_1
as they add additional filters, assume AND operation, always add ( ) if there is more than one expression.
Require N-1 parentheses pairs! Requiring parens means you don't need to educate on order of operations.
(1 AND 2)
1. expr_1
2. expr_2
The user can edit this
(1 OR 2)
1. expr_1
2. expr_2
If they add another expression, append with AND + parens
((1 OR 2) AND 3)
1. expr_1
2. expr_2
3. expr_3
If you want the parsing to be more complicated, then you could only require parens for each change of operation.
e.g. 1 OR 2 OR 3 AND 4 OR 5 OR 6 would require at least 2 parens. OR -> AND -> OR
e.g. 1 AND 2 AND 3 AND 4 AND 5 OR 6 would require at least 1 parens. AND -> OR
e.g. 1 AND 2 OR 3 AND 4 OR 5 AND 6 would require 5 parens. AND -> OR -> AND -> OR -> AND
e.g. 1 AND 2 AND 3 AND 4 AND 5 AND 6 would require 0 parens. AND
I would implement NOT as a function look that always requires parens NOT( 1 OR 2 )
Matthew Faithfull had a posting similar to this one.
|
|
|
|
|
Is is all going in the WHERE clause of an SQL query?
If so, don't forget to put a default in first.
I usually do WHERE 1=1, then all the AND/OR/LIKE user stuff.
Othewise, if the user doesn't pick anything, you end up with something like WHERE ORDER BY, and the server yells at you.
|
|
|
|
|
I think there is a huge chasm between the Average Joe and a developer. If I had to guess, I would say that the average Joe doesn't want the filtering functionality. If they could get away with it, they would press a big button that says "Do what I Want" and they'd be done.
My guess is that what Joe would want instead is a view of the data that was designed specifically for his primary use case scenario(s). In other words, avoid filters the best you can for the average Joe. Understaninding the content and how it is consumed and why is key here.
Identify a default functionality that serves the purposes of the user 90+% of the time. Then Devote the whole screen to making that default scenario feel like a kindergartener could do it. Use the language that Joe is already used to hearing around the shop in your design.
Then if a power user still needs filters, put that on a different "Advanced" screen. Maybe a power user could build and save other common scenarios for the Average Joe to consume.
Getting Joe to learn to program queries via a user interface is not low hanging fruit even if you deliver a killer UX.
Hope it's hepful,
-Mikhael 
|
|
|
|
|
OriginalGriff wrote: Anybody found a "nice" way to get users to create and use complex filters?
No.
Seriously, most users simply don't understand a logic series more than two items long; they grasp something like "If A then B", but I've found that they get lost beyond that.
|
|
|
|
|
I've approached this problem by using a left to right tree structure and a drag and drop palette. See http://www.codeproject.com/script/Membership/Uploads/383127/RuleEditor.png[^]. The nice thing about this approach is that you can read it top to bottom just the way you would describe it in language, it contains no parentheses you need to track and it enables arbitrary boolean combinations. From a behavioral perspective, if you drop a logical operator on an expression, it creates the structure seen at the bottom, with a blank spot for a new field. Clicking on any expression that has a field will bring up an in-place editor for that field type.
|
|
|
|
|
Nice, this would be a good article.
Talking about which, I believe the link in your signature would benefit from an update.
Be excellent to each other. And... PARTY ON, DUDES!
Abraham Lincoln
|
|
|
|
|
I've thought about this Jörgen. Honestly, I think this would be too big for an article. This is a custom drawn editor and quite complex. As currently written, it's very specific to our data model. The most interesting aspect of it that might be share-worthy really is the visual design and most of that is pretty self explanatory.
I could be wrong, and I like writing articles. But I don't see how I can do with without doing more work than I'm able to right now.
|
|
|
|
|
Tom Clement wrote: But I don't see how I can do with without doing more work than I'm able to right
now
I know all about that.
Be excellent to each other. And... PARTY ON, DUDES!
Abraham Lincoln
|
|
|
|
|
Hello, we designed a clever visualization of logical expressions once. Imagine a a huge pile of sand we poured into a vertical flow of sieves. The sand is the set that is to be filtered. The sieves are the conditions. At each sieve the amount of grains is reduced. When there is an OR-path, the flow forks and of course it lets more grains of sand through. This way the sand ripples down from top to bottom and in the end you have your final set.
Sounds really colourful, eh? When you design it, it looses a lot of the original metaphor. But it works astonishingly. We made people create complex filters who usually have problems using google. I can send you a wireframe if you're interested.
Jan
|
|
|
|
|
Sounds interesting - anything which helps user understand what they're doing has got to be worth a look!
I'll send you a private email so you get my address without exposing either of them to public scrutiny.
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|
|
I don't know if it qualifies as 'nice' or not, but we had a similar problem where we tried several approaches but the one that stuck was using a tree view.
The filter rules are setup using controls like you described and then the rule is added to the tree. Each rule is displayed in the tree as the near-English description of the rule (i.e where name is one of 'roy', 'fred').
The basic idea is that rules nested below another row (i.e a child) are and-ed together (with the parent). Rules that are at the same level of the tree are or-ed together with their sibilings. In short, the tree becomes a visual indication of the parentheses. The rules can also be dragged/dropped to reposition within the tree, or copied and pasted between trees in different windows with the same filter control. Double-clicking a rule reloads it for editing.
I can't say I'm totally 100% in love with it, but so far our users seem to understand the concept, or do so with just a little training, and it works. I haven't yet seen anything better - even the TFS style grouping of rules in a grid (see work item query construction) seems to confuse a lot of users.
Of course the real problem is users are apt to try and build conditions that are beyond their level of comprehension regardless of the UI they're using.
|
|
|
|
|
I have read through this thread and have come to the conclusion that you all are thinking like programmers. The average user will not create a complex filter. Even above average users are unlikely to do so.(Most will do a simple filter they understand and transfer data to excel.)
The real question is: How well do you know your users and how they use the system?
In order for most to use a complex filter, it needs to be easy. And I mean really easy. That means saving complex filters and allowing them to choose them with a single click. A very limited number of these filters will likely fulfill the needs of 90%+ of your users, will save the company/users time, and will make the data set that gets discussed consistent (as everyone would likely pull it using the same filter).
This does not take lots of work to do and you will be seen as a miracle worker. Write a good user manual and allow the <10% of the users to create/edit/save complex filters else you will get phone calls when needs change.
|
|
|
|
|
|
TVG!
---------------------------------
Obscurum per obscurius.
Ad astra per alas porci.
Quidquid latine dictum sit, altum videtur.
|
|
|
|
|
Eh ?
We can’t stop here, this is bat country - Hunter S Thompson RIP
|
|
|
|
|
Televisión de Galicia (Television of Galicia; abbreviated as TVG)
It is a paradox that paradoxes would actually exist in reality.
That means of course that they don't exist.
However, they do!
∫(Edo )dx = Tzumer
∑k( this.Kid) k = this. ♥
|
|
|
|