Using callbacks to show totals

CITY PROJECT HOURS TASK
Neapolis Army 754.0 diam et ea sadipscing
Arts 213.0 gubergren duo clita aliquyam
Neapolis subtotal967.0
Olympia 275.0 At sed et rebum
565.0 magna magna magna accusam
Olympia subtotal840.0
Roma Gladiators 266.0 dolore diam ea duo
266.0 ea gubergren sanctus takimata
Roma subtotal532.0
Olympia 408.0 et diam erat est
661.0 vero duo justo magna
Olympia subtotal1069.0
Neapolis Taxes 20.0 nonumy diam kasd clita
Neapolis subtotal20.0
Olympia 901.0 takimata Stet aliquyam At
Olympia subtotal901.0
Total4329.0

The decorator API provides more then just the ability to reformat data before it is put into columns, it also provides a hook that allows you perform some action on the table after each row is processed. This allows you to interject some code that allows you to figure out where you are in the list of data, and then insert an additional row with totals, etc... Typically you would use this functionality along with grouping features to spit out some nice web based reports.

See the TableDecorator.finishRow() API documentation, along with the example decorator that is used in this example page.