Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Good Form Design - Please Comment

Status
Not open for further replies.

koala15

Programmer
May 9, 2001
322
AU
After feedback from users (who can tell you that they don't like the design of a window (form) but can never tell you what to replace it with) I would like some opinions please.

My application is written in VB6 - hence this forum.

Part of my application requires the input of personal details (First Name, Last Name, DOB, Gender etc etc). My delema is balancing the changing of a "current" person's details verses the entry of a "new" person.

BTW: the number of persons is very large, so that the user, usually, does not have any personal knowledge as to whether the person exists in the DB or not.

My current approach is that the user presses a "Add/Modify Client" button on a Menu form.

The next form contains a "Search" combobox at the top which has been populated with all the "LastName, FirstName" combinations from the DB - elsewhere the application logic ensures this combination is unique (it is a bit more complex than this, but that will do for this post).

Further down the same form are TextBoxes for each component (LastName etc) with Save, Clear, Finished buttons at the bottom of the form.

At present, if the users finds the required client in the ComboBox, then by clicking that name in the ComboBox the TextBoxes are populated thus allowing modification, if necessary.

However if the client is not found or if by experience, the user "knows" that this client is not in the DB, then the current design requires the user to Tab to the first TextBox and start entering details. This action to Tab is really not very intuitive.

Some suggestions among many were 1) put a "New Client" CheckBox on the form (which would clear all the fields and SetFocus to the first TextBox) or 2) put a "New Client" button on the form which would Show a "Add New" form, or do what 1) does.

I am not "happy" with either of these, at present.

Would you be kind enough to provide some design alternatives - obviously there is not a "correct" design.

Thank you to all. Much appreciated.

Greg.

"Life is full of learning, and then there is wisdom"
 
Ask your Users what they'd like. Prototype your ideas and let them tell you what best suits them, they'll be using it.
 
Greg,

In this situation I'd make the first option in my combobox "Create New" or "Add new". To me this is obvious at to its intent, so on tabbing out of the combobox would move them to the first field ready for input.

This way the same logic applies for New records as it does for Updates of existing ones.

It's not much but it works. HTH


William
Software Engineer
ICQ No. 56047340
 
Hi Greg,

Here is an idea you might want to consider.

In the load event for the form where the users add/modify a client set the focus to the first text box

e.g txtFirstName.setfocus or whatever.

Then if the user wants to select someone out of the combobox they will do so as it is natural to click on a combobox to look at it's contents, and if they want to add a new client they can instantly start typing there details in.

Dave
 
Slarti,

Yes, a small number of prototypes is a very good idea.

I will do it.

---------------------------------------
William,

>>It's not much but it works

Don't put yourself down --- it is a GREAT idea that I will put into the prototypes, but I like it as it is intuitive because after the user tries to find a name and fails, then all they have to do is to navigate back to the top of the ComboBox list.

Thank you for your generosity of thought.

"Life is full of learning, and then there is wisdom"
 
Digsy,

Another good idea .... I like them all.

Thanks.

"Life is full of learning, and then there is wisdom"
 
I think that as your personal list grows a combo box becomes less practical. Not many users enjoy scrolling through a large list.

For large lists I like to use a separate modal finder form of some kind that will allow the user to see a larger list (grid rather than dropped combo) with more information and allow them to enter some search criteria to find a specific record.

Another option would be to have some kind of user defined unique identifier for each record. A client number (6-8 characters) that is easy to remember and that they can enter in a text box and pull up the client information.

I would also have a 'New Client' button or feature of some kind.

zemp
 
I'm not sure I'd trust users to add a new record because they know that person is not in the DB from *experience*. Atleast not if it could cause problems.

Combo boxes actually are ok for a fairly long list of names because once you activate the list, you could type "Wells" to take you way down the list to "Wells, David".

Personally though, I think I'd atleast have a search form query the DB for a match on partial name, DOB, phone number or something to narrow the results. DOB would be good cause most people don't forget it :)P) and it doesn't change. You'll find that loading the (total records / 365.25*) (*based on DOB and is an avg.) will be a lot quicker if this is going across a network, and can free a litle memory if it's an extremely long list.

So basically, when they hit add/new, they type a DOB, click ok, it brings up the next form and only has peoples names in the drop down that were born on that DOB. The DOB on this form can be auto populated with the DOB entered so they don't have to type it in again. Set focus to the field they'll most likely want to be in next.

If your tab indexes are set correctly but the users don't like using tab to navigate, you could use key events to trap function keys and assign function keys to fields or different sections of the form.
 
Could you not use the combo, but let them enter the first and last names in the text boxes and click a search button. If the record is found, display the rest of the data, if not make a label visible so that they know they are entering new data. I have something very similar which has been used for years, users seem to find it straightforward. You could think of having a list box as well. I use this to look for likely matches, the users put in some info, like the surname, into the textboxes, search then displays a list if it finds more than one, the person if it finds one only and new if it finds none. The list box fills the form in front of the text boxes, double clicking displays that person and hides the list. I also have a button to redisplay the list box if they have selected the wrong guy.

 
I usually have a textbox, in which as a user enters data a listbox appears with type as you go match. If they type in something entirely different to whats in the database, then the programme knows its a new record and lets the user continue to enter new record data. Otherwise thsy can see what they want in the listbox, click on it, and get all fields/boxes entered. However, as mentioned before, its always best to get the user to put his ideas in. Let him make suggestions. I find everyone has different ideas on what they want, and how they want the programme to run. On our side, guessing how they would do it causes more problems finding its wrong, and ending up redoing it all. Make it flow as they want it, it will be unique, and something they will want as they feel its part of them. Try telling someone who's just bought something they bought wrongly. Regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top