User interface ideas
-
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
-
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. :)
-
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
-
Anybody found a "nice" way to get users to create and use complex filters? I have simple filters and they work well: A drop down for Type: Name, and four different classes. If it's the name, then they get a drop down to select "Contains", "Starts with", "Ends with", "Does not contain" and so forth together with a text box. If it's one of three classes, you get a drop down for "Includes all of", "Includes any of", "Includes none of", and "Does not include", together with a dropdown list of valid values. The final class gets just "Is in" and "Is not in" and a dropdown list. All grouped up in a simple control that I feed a list, and it does the filtering. No problems. Now I've had a request for making it more complex:
"Name Contains 'ABCD' AND Class Includes any off <list> OR Otherclass Is not in <AnotherList>"
for example. Coding wise this is a doodle - that's partly why I made a filter control in the first place. It's trying to work out how to present it to an average user so it's easy to create, understand and edit that's giving me problems. I was thinking of a tree of some kind so it's obvious if the example above is
"A AND (B OR C)"
or
"(A AND B) OR C"
but I'm not sure a tree is that obvious to the average joe... Anyone seen a good way? And I'm not after code, just the presentation ideas - so this isn't a programming question! :laugh:
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 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.