While it may not be perfect, I have found Excel to be a poor man's replacement for such a product. Over the years, I have built a set of "Export to Excel" design elements that I shove into every database I have. This allows me to setup an export that users can run as often as they need to without having to know anything about the design of the database. The form that sets up the export can be seen here. This allows users to export their data to a familiar tool and then slice it and dice it however they please. However, this does nothing to give the executives the pretty reports they yearn for on a daily basis.
For that, I have learned to turn to LotusScript agents and specifically to the use of List elements. If you have never heard of Lists before, here is the definition from the Designer Help file:
A list is a one-dimensional collection of elements of the same data type. You can change the size of a list at any time while the application is running and LotusScript does not allocate any storage space at compile time for the elements of a list. Lists automatically shrink or grow when elements are deleted from or added to them. You access each element in a list by a unique String value, called a list tag.Basically, it's an array that works the way arrays should work. You don't have to specify the number of elements in the array and you access the values of the array with an identifier instead of a number. If this doesn't make complete sense to you, come back for part 2 of this entry and see an agent I recently wrote that makes extensive use of Lists.