I have a table that lists various attributes of an individuals personal development plan; objective, time to complete objective, comments etc. The table is editable so the user can directly add comments without having to go to an intermediate form. The problem is that the client wants to add more columns and this is messing up the visual display.

4 Answers
4

Put the table in a pane and allow the users to scroll horizontally to access additional columns. Be sure the column(s) that identifies the content of each row does not scroll away (i.e., acts a row “headers”) so user can keep track of what they’re look at.

(More convenient version of your Option 2). Provide a separate “overflow” pane below the table for certain fields in a form-like layout. These may be the less important fields or fields that aren’t compared between rows or extra-large fields that are pain to show in a table. When the user clicks in a row in the table, the overflow automatically repopulates with the attribute values of the selected row. Bonus points for providing a control to hide or show the overflow pane, where hiding it expands the table to show more rows.

Break your users into groups or roles and show each only fields they need for their roles. In other words, maybe the users who want additional fields don’t need all the fields you’re showing now, so you can replace some.

Provide the users the ability to pick and arrange the fields they want to display. This may be combined with Option 3. You can provide default field sets to different user groups, thus also rolling in Option 5. Allow them to resize the width of their columns, taking a little of Option 1 too. Preserve all changes between sessions.

Note on your Option 2: This is attractive if you’re really sure these fields are of little value to the users despite the user feedback (e.g., it’s really the result of one influential stakeholder who doesn’t actually use the product very much). You may want to dig deeper and find out why the users want these fields. Maybe there is an alternative solution (e.g., a notification or an aggregate field) that will fulfill their needs better.