On the surface, providing complex reporting facilities seems to be a straightforward process:
This approach is not recommended, however, because it causes a major maintenance headache.
As with all facets of development, if you take enough time up front in analysis and design, you’ll derive a suitable approach to act as a framework for further development and won’t be restricted to the specifics of developing for one user request. A technique I find useful in evaluating a requirement is to break down the requirement according to the mechanisms and methods needed to produce the result:
The following sections describe what’s involved in each of these steps.