The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Which GUI control for mass update on large table?

I have a desktop app that reports a table that happens frequently to be large (thousands of rows). Screenshots at

Users sometimes need to perform "mass" actions, for example (un)checking boxes on all lines at once, or settings identical values on all lines at once. "mass action" controls would be needed to do that.

Nothing complicated here, yet I am wondering what would be the most "expected" GUI design?

Thanks in advance,
Joannes Vermorel - Lokad Forecasting Send private email
Tuesday, June 17, 2008
I'm used to including a checkbox in the header of the grid, to switch all the checkboxes in the column. Wouldn't look to beautiful if you tried to add a combobox.

Why not let the user 'select' the records prior to performing the desired action? This is how GMail works :)
Eddy Vluggen Send private email
Tuesday, June 17, 2008
You could do something like what iTunes does.  Allow the user to select multiple rows then open a dialog either through a context menu or button.  On the dialog each column in the table has a corresponding field with a checkbox next to it.  You check the box if you want to update the field.
Ted Send private email
Tuesday, June 17, 2008
+1 on relying on multi-selection of rows. It looks to me like the far left column of your table (the one with the arrow) can be used for manual multi-selection through Ctrl-click and Shift-click. Include a Select All menu item to select all rows. You can also have a Find dialog to multi-select rows that meet a specific criteria. Something like:

To execute the field change on the selected rows, one way is for the user to call up a Modify dialog where one picks the fields to change and for each enters the value to change it to. This acts on all selected rows. Something like:

Another way is to use copy and paste. The user copies the desired value of the field from one row (that already has it), then multi-selects all the other desired rows (by whatever means), and then pastes. The corresponding field (and only that field) is changed to the pasted value.
Michael Zuschlag Send private email
Tuesday, June 17, 2008
"Clear" and "All" buttons if you don't want to mess with the grid directly?
Tuesday, June 17, 2008
Create an input row as a first row (or a separate dialog) to set the new values. You will need a checkbox for each row so the user can select which records the new values will be applied.

One important thing. You need to somehow indicate (eg: with a different background color or bold) which columns (field) "WON'T CHANGE'. So if part of the input row is not filled, you should not apply the empty values. Otherwise the user will be unsure if the input row will apply in whole or in part.
n' Send private email
Wednesday, June 18, 2008
Also consider the effects of "update all" on a grid which is paged. Does all mean the current page, or the whole set?

If your data can be categorised, you might want to look at a grid control which exhibits some tree like behaviour, where categories can be expanded. Your update could then run on a single row, an entire category, or the whole set.
Wednesday, June 18, 2008
Thanks a lot for the feedback.
Joannes Vermorel - Lokad Forecasting Send private email
Wednesday, June 18, 2008
Perhaps you can use a rubber band to select many lines at a time I HATE clicking on each and every row to select many items, why cant a list control support a rubberband like draw/paint utilities?  I know it is supported in icon view but why isnt it supported in details/list view?
Saturday, June 28, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz