Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. User interface ideas

User interface ideas

Scheduled Pinned Locked Moved The Lounge
tutorialquestiondesigndata-structures
44 Posts 23 Posters 6 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • OriginalGriffO Offline
    OriginalGriffO Offline
    OriginalGriff
    wrote on last edited by
    #1

    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 no idea what I did, but I'm taking full credit for it." - ThisOldTony
    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

    F M B J L 19 Replies Last reply
    0
    • OriginalGriffO OriginalGriff

      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.

      F Offline
      F Offline
      Forogar
      wrote on last edited by
      #2

      I once was told to design a boolean filter diagram for a similar kind of thing but to support potentially many, many conditions and groups of conditions. I ended up with a set of boxes that could be dragged around a panel and connected with ANDs and ORs and NOTs and then would be grouped (actually showing parentheses sort of in the background). It was fun to do at first but ended up being a nightmare when I had to add BETWEEN and some similar list based things. I would avoid the GUI approach unless you have six months to spare! I think most users will either understand the parenthetical approach - or will learn to if they have to use it repeatedly. Good luck

      - I would love to change the world, but they won’t give me the source code.

      1 Reply Last reply
      0
      • OriginalGriffO OriginalGriff

        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.

        M Offline
        M Offline
        Matthew Faithfull
        wrote on last edited by
        #3

        I've not seen one that does this but there are 2 things I would certainly do. Break down the expression building so that at any time the user is building a single operator condition A AND B and then B OR C. Allow them to use the conditions they've already created as the A or B in subsequent conditions. This does two things: It limits the otherwise unlimited potential UI complexity and it makes the user think in a way that means confusion of A AND (B OR C) with ( A AND B ) OR C is unlikely. At all stages as the expression is being built show the user the query text. The slightly intelligent ones will soon spot how it works. Allow them to bypass much of the UI by simply entering a query directly, not by overwriting the displayed partial one but in another parallel edit control. This is where validation becomes a major issue but it can be done. Only if the directly entered query passes validation should they be given the option to use it to replace the built query. When I went to university it was still assumed that GUIs could not be used to create SQL queries as SQL was too complex. We laughed at the lectures who sagely told us this. Now it's often assumed that users are incapable of learning to use a simple query language and will have heart failure if they are shown anything so code-like. They must use a GUI that hides all the details from them and teaches them nothing. Revolution, counter revolution but nothing actually gets improved, what are we French? :doh:

        "The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)

        B 1 Reply Last reply
        0
        • OriginalGriffO OriginalGriff

          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.

          B Offline
          B Offline
          BillWoodruff
          wrote on last edited by
          #4

          Are you "constrained" in any way here in terms of the UI you present: is the UI for this going to be visible, at all times; or, is it okay if a special UI "pops-up;" or, is it the case, perhaps, that for very simple (typical) use cases, there will be an always visible UI, with an option for the user to "pop=up" a more complex one in which arbitrarily complex logical expressions can be created ? And, how complex is the end-user allowed to make the query ? Is it the case that, as you describe in your current example, that two Lists<Stuff> are always going to exist, and that the user cannot modify these lists (create, or, edit) them ? This is a very interesting UI design challenge, I think, and I wish CP had a forum for UI/UX design issues. yours, Bill

          ~ “This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal

          OriginalGriffO 1 Reply Last reply
          0
          • OriginalGriffO OriginalGriff

            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.

            J Offline
            J Offline
            Jorgen Andersson
            wrote on last edited by
            #5

            Have a look at the DevExpress filter control[^]. You can make the filter as complex as you'd want to, while staying easy to use. Well, as easy as it gets when it can do "everything". It's not that quick to use though I have to say.

            Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

            M OriginalGriffO Mike HankeyM R 4 Replies Last reply
            0
            • J Jorgen Andersson

              Have a look at the DevExpress filter control[^]. You can make the filter as complex as you'd want to, while staying easy to use. Well, as easy as it gets when it can do "everything". It's not that quick to use though I have to say.

              Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #6

              That's pretty close to what I was originally thinking with the "tree" idea. I understand it, I'm just not sure the indentation makes it that obvious to a "normal" user.

              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 no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              J 1 Reply Last reply
              0
              • J Jorgen Andersson

                Have a look at the DevExpress filter control[^]. You can make the filter as complex as you'd want to, while staying easy to use. Well, as easy as it gets when it can do "everything". It's not that quick to use though I have to say.

                Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                M Offline
                M Offline
                Matthew Faithfull
                wrote on last edited by
                #7

                You linky is broky. Needs an l http://www.devexpress.com/Products/NET/Controls/ASP/Grid/filter_editor.xml[^] That's not a terrible UI but it lacks the editable query string I mentioned and it doesn't promote query or sub query reuse.

                "The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)

                J 1 Reply Last reply
                0
                • M Matthew Faithfull

                  I've not seen one that does this but there are 2 things I would certainly do. Break down the expression building so that at any time the user is building a single operator condition A AND B and then B OR C. Allow them to use the conditions they've already created as the A or B in subsequent conditions. This does two things: It limits the otherwise unlimited potential UI complexity and it makes the user think in a way that means confusion of A AND (B OR C) with ( A AND B ) OR C is unlikely. At all stages as the expression is being built show the user the query text. The slightly intelligent ones will soon spot how it works. Allow them to bypass much of the UI by simply entering a query directly, not by overwriting the displayed partial one but in another parallel edit control. This is where validation becomes a major issue but it can be done. Only if the directly entered query passes validation should they be given the option to use it to replace the built query. When I went to university it was still assumed that GUIs could not be used to create SQL queries as SQL was too complex. We laughed at the lectures who sagely told us this. Now it's often assumed that users are incapable of learning to use a simple query language and will have heart failure if they are shown anything so code-like. They must use a GUI that hides all the details from them and teaches them nothing. Revolution, counter revolution but nothing actually gets improved, what are we French? :doh:

                  "The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)

                  B Offline
                  B Offline
                  BillWoodruff
                  wrote on last edited by
                  #8

                  :thumbsup:

                  Matthew Faithfull wrote:

                  At all stages as the expression is being built show the user the query text. The slightly intelligent ones will soon spot how it works. Allow them to bypass much of the UI by simply entering a query directly, not by overwriting the displayed partial one but in another parallel edit control. This is where validation becomes a major issue but it can be done. Only if the directly entered query passes validation should they be given the option to use it to replace the built query.

                  On the level of UI design, you, and I, are, evidently, somewhat compatible :) The challenge in your "parallel entry mode" model is, I think, validation of the user-entered query in standard boolean expressions (or whatever format) text. imho, unless you want to make a heroic effort, this is a slightly binary choice: if the user entered, in text-mode, a very complex nested filter, synchronizing the visual presentation of the GUI-mode filter facility with the text expression could be daunting. What if the user enters, in a TextBox: Contains "AB" && (! Contains "BC") || Contains "BC" || "CD" && (! BeginsWith("AB")) ... keep on going ... I'd solve this in a kind of "Alexander cuts Gordian Knot" style, by simply having the visual-mode facility "hidden" when the user decides to edit the contents in text-mode facility. As I said to OriginalGriff, I wish CP had a UI/UX forum for discussion of these kinds of ideas. yours, Bill

                  ~ “This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal

                  M 1 Reply Last reply
                  0
                  • B BillWoodruff

                    Are you "constrained" in any way here in terms of the UI you present: is the UI for this going to be visible, at all times; or, is it okay if a special UI "pops-up;" or, is it the case, perhaps, that for very simple (typical) use cases, there will be an always visible UI, with an option for the user to "pop=up" a more complex one in which arbitrarily complex logical expressions can be created ? And, how complex is the end-user allowed to make the query ? Is it the case that, as you describe in your current example, that two Lists<Stuff> are always going to exist, and that the user cannot modify these lists (create, or, edit) them ? This is a very interesting UI design challenge, I think, and I wish CP had a forum for UI/UX design issues. yours, Bill

                    ~ “This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal

                    OriginalGriffO Offline
                    OriginalGriffO Offline
                    OriginalGriff
                    wrote on last edited by
                    #9

                    No real constraint - a pop up is probably the way I'll go, as the details of the filter would just clutter the display and serve no real purpose (I'll probably let them "name and save" them then display the name instead of the detail on screen) - that's part of the reason I want to get it as obvious as possible how to use it since I suspect they will actually use it maybe a couple of times a year after the initial enthusiasm has worn off. Complexity? Not sure. I suspect they won't make really complex ones - in reality they will probably be ok with "A AND B" or "A OR B", but once I've issued it it's a lot harder to change it to allow for "(A AND B) OR C" if one person needs it in six months time! :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 no idea what I did, but I'm taking full credit for it." - ThisOldTony
                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                    1 Reply Last reply
                    0
                    • B BillWoodruff

                      :thumbsup:

                      Matthew Faithfull wrote:

                      At all stages as the expression is being built show the user the query text. The slightly intelligent ones will soon spot how it works. Allow them to bypass much of the UI by simply entering a query directly, not by overwriting the displayed partial one but in another parallel edit control. This is where validation becomes a major issue but it can be done. Only if the directly entered query passes validation should they be given the option to use it to replace the built query.

                      On the level of UI design, you, and I, are, evidently, somewhat compatible :) The challenge in your "parallel entry mode" model is, I think, validation of the user-entered query in standard boolean expressions (or whatever format) text. imho, unless you want to make a heroic effort, this is a slightly binary choice: if the user entered, in text-mode, a very complex nested filter, synchronizing the visual presentation of the GUI-mode filter facility with the text expression could be daunting. What if the user enters, in a TextBox: Contains "AB" && (! Contains "BC") || Contains "BC" || "CD" && (! BeginsWith("AB")) ... keep on going ... I'd solve this in a kind of "Alexander cuts Gordian Knot" style, by simply having the visual-mode facility "hidden" when the user decides to edit the contents in text-mode facility. As I said to OriginalGriff, I wish CP had a UI/UX forum for discussion of these kinds of ideas. yours, Bill

                      ~ “This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal

                      M Offline
                      M Offline
                      Matthew Faithfull
                      wrote on last edited by
                      #10

                      I agree. If the user is going to enter the query in textual expression form they probably don't need it represented in another form by the GUI. The graphical builder can close/grey out at that point. The good thing about the dual approach is discoverability. The user can begin constructing a query with the slow but simple GUI, see how the textual Boolean expression works with &&, ||, ! and the various functions and then cut to exactly what they want by typing it in. Most users will initially ignore the code string being built up for them but will absorb subconsciously and quite effortlessly what &&, || and ! mean. When they later see a Boolean expression they'll understand what it means and they probably won't even know how. It will just be obvious. :)

                      "The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)

                      R 1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        That's pretty close to what I was originally thinking with the "tree" idea. I understand it, I'm just not sure the indentation makes it that obvious to a "normal" user.

                        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.

                        J Offline
                        J Offline
                        Jorgen Andersson
                        wrote on last edited by
                        #11

                        I while ago I sat down and tried to think out a better UI for a "general" filter, it contained expandable brackets instead of just indentations, but I didn't go any further.

                        Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                        OriginalGriffO 1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          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.

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #12

                          OriginalGriff wrote:

                          Anybody found a "nice" way to get users to create and use complex filters?

                          Quite some, but "nice" is a very stretchable term. It's always a tradeoff between power and simplicity. The DevExpress filter is a "nice" one, in that sense; one can define a simple filter in the grid itself[^], or a complexer filter using an editor[^]. The complexer filter is all that the average user doesn't want; a column to denote "and/or", a column for the field-name to operate on, a column for the operator and a column for the value. Most home-made filters will act like the DevExpress-version; a grid that holds the same info. It's not recommended for novice users. It seems as if you do not only have filters, but also multiple datasources/tables to choose from. I've lost the bookmark, but there's a freeware QBE-editor available for .NET (similar to Active Query Builder[^]); works exactly like the Query-editor from Microsoft Access. I'd recommend that one as it's very easy to operate - simply hand them a manual for MS Access. If your audience isn't built from novices, I'd suggest putting a textbox in there and have the user type his/her filter. It's very effective, powerfull and easy - my favourite.

                          OriginalGriff wrote:

                          but I'm not sure a tree is that obvious to the average joe...

                          So, how does your average Joe muck around in his/her UI? I'm all in favor of keeping the Win3.11 UI, as it's familiar to most users - things always work in the same way. Then, when I look at the average Joe and his phone, I often wonder how they ever discovered that there's a function hidden in a particular screen.

                          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[

                          J 1 Reply Last reply
                          0
                          • J Jorgen Andersson

                            Have a look at the DevExpress filter control[^]. You can make the filter as complex as you'd want to, while staying easy to use. Well, as easy as it gets when it can do "everything". It's not that quick to use though I have to say.

                            Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                            Mike HankeyM Offline
                            Mike HankeyM Offline
                            Mike Hankey
                            wrote on last edited by
                            #13

                            That looks about as easy and intuitive as you can get without a really complex GUI.

                            VS2010/Atmel Studio 6.1 ToDo Manager Extension You're about to exceed the limitations of my medication.

                            J 1 Reply Last reply
                            0
                            • M Matthew Faithfull

                              You linky is broky. Needs an l http://www.devexpress.com/Products/NET/Controls/ASP/Grid/filter_editor.xml[^] That's not a terrible UI but it lacks the editable query string I mentioned and it doesn't promote query or sub query reuse.

                              "The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)

                              J Offline
                              J Offline
                              Jorgen Andersson
                              wrote on last edited by
                              #14

                              Matthew Faithfull wrote:

                              You linky is broky

                              Oops, fixed.

                              Matthew Faithfull wrote:

                              That's not a terrible UI but it lacks the editable query string I mentioned and it doesn't promote query or sub query reuse.

                              No, but as Eddy writes, it's a tradeoff...

                              Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                              1 Reply Last reply
                              0
                              • Mike HankeyM Mike Hankey

                                That looks about as easy and intuitive as you can get without a really complex GUI.

                                VS2010/Atmel Studio 6.1 ToDo Manager Extension You're about to exceed the limitations of my medication.

                                J Offline
                                J Offline
                                Jorgen Andersson
                                wrote on last edited by
                                #15

                                Yes, but as Eddy so well puts it, it's still not for the average Joe, you need the simple filter functions still. I've been thinking out "better" solutions to the problem, but they always miss out on something else instead. Usually space.

                                Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                                Mike HankeyM 1 Reply Last reply
                                0
                                • L Lost User

                                  OriginalGriff wrote:

                                  Anybody found a "nice" way to get users to create and use complex filters?

                                  Quite some, but "nice" is a very stretchable term. It's always a tradeoff between power and simplicity. The DevExpress filter is a "nice" one, in that sense; one can define a simple filter in the grid itself[^], or a complexer filter using an editor[^]. The complexer filter is all that the average user doesn't want; a column to denote "and/or", a column for the field-name to operate on, a column for the operator and a column for the value. Most home-made filters will act like the DevExpress-version; a grid that holds the same info. It's not recommended for novice users. It seems as if you do not only have filters, but also multiple datasources/tables to choose from. I've lost the bookmark, but there's a freeware QBE-editor available for .NET (similar to Active Query Builder[^]); works exactly like the Query-editor from Microsoft Access. I'd recommend that one as it's very easy to operate - simply hand them a manual for MS Access. If your audience isn't built from novices, I'd suggest putting a textbox in there and have the user type his/her filter. It's very effective, powerfull and easy - my favourite.

                                  OriginalGriff wrote:

                                  but I'm not sure a tree is that obvious to the average joe...

                                  So, how does your average Joe muck around in his/her UI? I'm all in favor of keeping the Win3.11 UI, as it's familiar to most users - things always work in the same way. Then, when I look at the average Joe and his phone, I often wonder how they ever discovered that there's a function hidden in a particular screen.

                                  Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[

                                  J Offline
                                  J Offline
                                  Jorgen Andersson
                                  wrote on last edited by
                                  #16

                                  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

                                  1 Reply Last reply
                                  0
                                  • J Jorgen Andersson

                                    I while ago I sat down and tried to think out a better UI for a "general" filter, it contained expandable brackets instead of just indentations, but I didn't go any further.

                                    Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                                    OriginalGriffO Offline
                                    OriginalGriffO Offline
                                    OriginalGriff
                                    wrote on last edited by
                                    #17

                                    Oooo! That's not bad - a single curly bracket on the LHS "pointing" at the grouping term...

                                             /  A
                                            |
                                            /
                                    /  And - 
                                    |       \\
                                    /       |
                                    

                                    Or - \ B
                                    \
                                    |
                                    \ C

                                    Need a bit of thinking about, but that could work. Not sure how you make it obvious how to add a grouping, but that could work...

                                    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 no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                    J T 2 Replies Last reply
                                    0
                                    • J Jorgen Andersson

                                      Yes, but as Eddy so well puts it, it's still not for the average Joe, you need the simple filter functions still. I've been thinking out "better" solutions to the problem, but they always miss out on something else instead. Usually space.

                                      Be excellent to each other. And... PARTY ON, DUDES! Abraham Lincoln

                                      Mike HankeyM Offline
                                      Mike HankeyM Offline
                                      Mike Hankey
                                      wrote on last edited by
                                      #18

                                      I guess it all boils down to is what mentality of audience are you writing for? I once developed a test machine (shake and bake) for a US plant in Mexico and they told me to make the results of the test as simple as I could. I output everything to a mechanical meter and told the foreman that if the results where within a certain range it was acceptable anything outside the range wasn't, he asked to borrow a sharpie that I had in my pocket and drew lines on the meter and said if I hadn't done that they would not have been able to figure it out.

                                      VS2010/Atmel Studio 6.1 ToDo Manager Extension You're about to exceed the limitations of my medication.

                                      OriginalGriffO 1 Reply Last reply
                                      0
                                      • Mike HankeyM Mike Hankey

                                        I guess it all boils down to is what mentality of audience are you writing for? I once developed a test machine (shake and bake) for a US plant in Mexico and they told me to make the results of the test as simple as I could. I output everything to a mechanical meter and told the foreman that if the results where within a certain range it was acceptable anything outside the range wasn't, he asked to borrow a sharpie that I had in my pocket and drew lines on the meter and said if I hadn't done that they would not have been able to figure it out.

                                        VS2010/Atmel Studio 6.1 ToDo Manager Extension You're about to exceed the limitations of my medication.

                                        OriginalGriffO Offline
                                        OriginalGriffO Offline
                                        OriginalGriff
                                        wrote on last edited by
                                        #19

                                        I know what you mean: I used to design industrial printers for products on conveyors. One of them went in a cement factory, and one guy had the job of making sure the printer was working fine, then standing at the end of the conveyor catching cement bags and stacking them on a pallet for eight hours a day...

                                        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 no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                        "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                        1 Reply Last reply
                                        0
                                        • OriginalGriffO OriginalGriff

                                          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.

                                          G Offline
                                          G Offline
                                          GuyThiebaut
                                          wrote on last edited by
                                          #20

                                          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

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups