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.
  • 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 Online
          Mike HankeyM Online
          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
              • OriginalGriffO OriginalGriff

                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.

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

                Spot on.

                OriginalGriff wrote:

                Not sure how you make it obvious how to add a grouping

                A clickable "plus" between the operator and the bracket adds either a new operator or a new value.

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

                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
                  Brisingr Aerowing
                  wrote on last edited by
                  #22

                  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

                  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.

                    R Offline
                    R Offline
                    Ravi Bhavnani
                    wrote on last edited by
                    #23

                    I like the TFS query editor which displays grouped clauses in a simple manner.  See this[^] screenshot for example. /ravi

                    My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                    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
                      Mark_Wallace
                      wrote on last edited by
                      #24

                      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!

                      OriginalGriffO 1 Reply Last reply
                      0
                      • M Mark_Wallace

                        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!

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

                        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! :laugh: 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! :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

                        M 1 Reply Last reply
                        0
                        • M Matthew Faithfull

                          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 Offline
                          R Offline
                          Rob Grainger
                          wrote on last edited by
                          #26

                          I'd strongly suggest using "and", "or", "not" rather than the C-Style symbols. Unless the user is a programmer, there is no reason to assume familiarity with these. Further, in the absence of bit-wise operations, why on earth use "&&"?

                          "If you don't fail at least 90 percent of the time, you're not aiming high enough." Alan Kay.

                          M 1 Reply Last reply
                          0
                          • OriginalGriffO OriginalGriff

                            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! :laugh: 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! :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
                            Mark_Wallace
                            wrote on last edited by
                            #27

                            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!

                            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
                              Behzad Sedighzadeh
                              wrote on last edited by
                              #28

                              You may have used Process Monitor[^]. I think it's Filter UI has one of the best UI ever.

                              Behzad

                              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.

                                T Offline
                                T Offline
                                Tim Schwallie
                                wrote on last edited by
                                #29

                                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.

                                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.

                                  E Offline
                                  E Offline
                                  englebart
                                  wrote on last edited by
                                  #30

                                  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.

                                  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
                                    GenJerDan
                                    wrote on last edited by
                                    #31

                                    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. ;P

                                    YouTube and My Mu[sic], Films and Windows Programs, etc.

                                    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

                                      R Offline
                                      R Offline
                                      RafagaX
                                      wrote on last edited by
                                      #32

                                      I've found the DevExpress filter control easy yet powerful to use, so it may be worth a try to copy the concept.

                                      CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...

                                      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
                                        Mikhael Loo
                                        wrote on last edited by
                                        #33

                                        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 :)

                                        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
                                          Joe Woodbury
                                          wrote on last edited by
                                          #34

                                          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.

                                          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