This one tested well with both the technical and non-technical users and can generate pretty much any possible database query...
The benefits are that it's very clear and a user can drag and drop (or delete) any expression or group of expressions in the tree.
The down side is how much space it consumes.
Nested blocks in a vertical layout
This pattern tested very well with our users. It uses common language to explain what you are looking for and allows any level of complex grouping where individual blocks can be moved around, changed from AND to OR, or deleted.
This level of clarity does take up quite a bit of space but not too much for most simple ...
This is, to say the least, something of a power feature, but OS X implements it thusly:
By default adding additional search criteria simply adds another row to the list (and they're each treated as AND filters).
If you hold the Option key while clicking the + button, it adds a boolean search row and one more search row nested beneath it.
In this way, ...
There's quite a few good ideas/references here, especially to some existing approaches. Often, though not always, Apple's approach is a good place to start - but perhaps in your case it may not be. I get the impression (though you haven't actually said it) that you're working with an awful lot of data comprised of many many fields/variables.
I agree that ...
First you need to know who are the users and if this approach fits their needs and skills. For most business users and/or logic is hard to understand and should be avoided. Technicians or clerks in finance, accounting, ... are used to such a logic.
Depending on the requirements several implementations are conceivable:
Simple filter: Implicit and/...
As opposed to re-using pivot tables as I previously answered, this is an experimental UI that I thought of to handle the repetitive need for writing AND or OR.
It relies on one element you must learn that ANDs are horizontal and ORs are vertical. It manages to deal with fairly complex Boolean logic though.
Assume that A, B, C, D, and E are ...
NN/g article explaining different sorting which should be used depending on the scenario. Alphabetical Sorting Must (Mostly) Die
Widths and heights are ordinal data, meaning that they have an inherent monotonically increasing sequence. Such items should almost always be sorted accordingly.
Other times, items have domain-related logical groupings. You ...
Microsoft Access had a reasonable attempt at a simple database query UI by producing a visual version of "Query by Example"
It has a more natural language that avoids need for nested UI, at the expense of occasionally slightly more redundant entries in lines.
download bmml source – Wireframes created with Balsamiq Mockups
It's an old question, but I thought I'd contribute in case anyone is interested. Although a lot of interesting answers have already been provided, I designed for our app the following:
Initially there's just the first group expression and one rule. Clicking on the 'Add condition' adds a new condition above it, while the 'Add group' adds a new group directly ...
Here's an interface for composing boolean logic.
A Few Thoughts
The interface starts out simple
If it gets complicated, it's because the user built it step by step
No editing or drag/drop - just creating and deleting branches
Conditions are a simple dropdown in this example, but could be more complicated or possibly negated
As an aside, I've ...
Jaroslav M's excellent answer gives the key idea: certain ranges of two-digit years are (almost exclusively) safe to extend to four digits; some are "probably 19xx"; some are "probably 20xx". I don't think you should aim for no manual input, but with that concept in mind you should be able to reduce it to a minimum.
Safe Case: 19...99 – Assume 19xx
Locale and dialects may have more of an influence than technical experience. When I studied Comp. Sci. here in Canada, we called "( )" brackets and "[ ]" square brackets.
I myself would call them parentheses (parenthesis singular) in any user documentation (paren being an abbreviation of that term), but I have no evidence to prove that this is any clearer ...
Yes. It is possible to be too logical in UX design; i.e., to over-analyze a problem. That's one reason why developers tend to be bad at it. Simpler is almost always better.
UX design is more than bridging the gap between designers and developers. From my point of view, UX design is about making things easy and understandable for the user; i.e., UX ...
I would just use the words "and" and "or". Many programming languages use these instead of the more mathematical looking symbols like "&" and "|", in fact the query language SQL uses "AND" and "OR" (it sounds like you might be creating a query language here). Expressions built with the words "and" and "or" would be much more understandable by a larger ...
I can think of three options:
Include a (advance?) search examples link;
Show some search examples in a tooltip on focus;
Include a greyed text in the search field with and example (notice that often these come to replace labels, so may not be an ideal solution).
I would be inclined to pick the first option, but that depends on how likely people are to ...
The examples you give are all achievable using first order set logic without the need for nested operations.
They can be described using a form with 3 simple fields:
Using this interface, the set operations you describe can be created as follows (click image to expand):
If you also need nested operations, this is also doable...leave a comment and I can ...
Adding example from the ticketing app we developed.
Instead of grouping "AND / OR" we settled on an "all / any / none" dropdown at the top. Exactly because of the above mentioned example: when non-technical people say "gimme orders from New York and New Jersey" tit actually means "logical OR".
We also decided against grouping multiple complex AND/OR ...
Let me first set out a few things that make it easier to respond to your question.
Hover. The purpose of a link's or command's hover response is to signal or enhance its affordance, or perhaps to indicate its pliancy—its willingness or receptiveness to action such as the dropping of a dragged object.
The pointer on a computer screen is a proxy for our ...
If it is a legal issue, then you need user's consent before submitting the form. What you can do instead of having 2 buttons is, have a single button 'completed' along with a checkbox which says something like..
I have read and understand the legal sides of the task
Personally I believe that form design improves the process if the process itself is sound, so it is really difficult to 'uncomplicate' something through design of the interactions alone.
But a way to think about the problem is to make the process simpler (if not more intuitive) so that at least the user can work their way through it.
What you would need to ...
I think you're trying too hard to preserve one copy of each field.
You could try this, assuming the most likely case is that the user knows the full SSN (I'm skeptical that three separate fields is the right way to input SSN, as opposed to a single field with an input mask, but use your experience with the users here):
download bmml source – ...
You are right about the order, but it would be much easier to answer if the options are direct answers to the question that is asked. In this case that would be like:
Is this a Not-For-Profit business?
Yes, and registered with CRA
Yes, but not registered
As for branching, you could handle it in either of two ways:
Show the ...
I am working on a redesign of a web app which uses Boolean and the image below shows how it is currently being done. The user can delete the brackets where needed or add them back in. I am struggling to find a better way to do this so may end up keeping this part which users seem to be using quite well.
For creating relatively complex single table queries, pivot tables are very useful.
You can get SUM, AVG and GROUP with relatively little knowledge.
By splitting fields across columns vs rows you get AND queries
The totals give you OR queries
You can properly 'build' queries - i.e. you can quickly see a master set, then add rows / columns and ...
A list can be sorted in one of the following ways
Numerical Ordering (Ascending/Descending)
Logical Ordering (FIFO, LIFO, Sequential)
Ethical / Value Driven (Projected by Paradigms)
2 seems to be a bit more difficult of a case, do you order from most restrictive to least restrictive or the opposite.
What you are looking for is a value driven ordering ...
How does the default value play into your ordering?
What if different features default a different way? (e.g., dropdown has enable, disable for status) [...] How important do you think it is to the user that the logical order you use is the same between dropdown's of different values? (i.e., enable, disable & off, on)
It's good to keep a default ...