Some thought.
the reason it's hard, is because it isn't natural to do this in a database.
when you prepare a report, its naturally in a fixed sequence, so it's easy to construct a running sum, as you make progress.
A form is different. You can filter, and change the order of a form, so constructing a running total is hard. But as far as the database is concerned, the individual rows are all distinct, and there is no concept of a previous or next row. Databases just deal with a complete (unordered) set of all the items.
Therefore, a database can easily produce a total value of all the items on the screen (ie - all the items in the dataset), but not easily a running total from item to item. For this reason, it's much easier if you can manage to work with the domain totals.