...Rather than writing custom code for each type of report within the application, the report-specific information can be shiftedoutside of the core application. This allows an application to adapt to changing and new reports while minimizing the need...
http://www.developer.com/net/csharp/article.php/3753016