n this follow-up to my January/February 2005 article, "The Baker's Dozen: 13 Productivity Tips for Crystal Reports and .NET," I'll offer some changes to the original article and some new material for Crystal Reports development. While I'll focus on the version of Crystal Reports that ships with Visual Studio 2005 Professional, I'll mention some of the capabilities found in the latest version, Crystal Reports XI.
Beginning with the End in Mind
In preparing this, I re-read the original article and thought about other topics I'd like to cover, as well as topics I'd like to revisit and cover differently. I've also received some good e-mail feedback that drove the content of this new article.
Additionally, in my new book, "Pro VS 2005 Reporting using SQL Server and Crystal Reports," I build a complete reporting solution in a distributed environment. It contains chapters on stored procedures, Web services/remoting, data access, and report construction/generation. So I've been living, eating, and breathing reports for several months now.
In Crystal Reports Redux I'll present these 13 productivity tips:
Responding to Prior Comments
- Creating and using report parameters
- Building a base template report with a generic header and footer annotations
- Building a reusable .NET library for handling common reporting tasks
- Utilizing a reusable .NET library to preview, print, and export reports
- Building an XY scatter graph
|Report parameters are a convenient way to add flags to a report, without having to modify the report dataset.|
- Better handling of dynamic images
- Specific export options
- Programmatically drilling down to report objects
- Using the "pull model" for an internal reporting application to implement stored procedures and authentication into a report
- Report page and section control
- An overview of Crystal Reports in ASP.NET 2.0 web forms
- Generating reports against objects instead of datasets
- Some miscellaneous tips for using Crystal Reports
After publication of my previous article, one reader voiced concerns with Tip 11 on printing images dynamically. Unfortunately, at the time Crystal Reports.NET had no native provisions for handling dynamic images, so developers needed to write code to manually load images into a Byte column. While not very elegant, I once had to write a process to print invoices that spanned a large number of images. (Fortunately, the print job was an overnight process.) In Tip 6, I'll revisit this issue, and show how Crystal Reports XI provides new functionality for handling dynamic images.
Another reader questioned why the article presented separate functions to preview, print, and export reports to PDF when Crystal Reports provides this functionality as part of the Crystal Reports Preview control. Yes, the Crystal Reports Preview control contains buttons for an end user to print or export the previewed report. However, sometimes users want to export or print reports without needing to see the preview. Additionally, a developer may be writing a batch job to print or export reports as part of an overnight processthus, the requirement to generate reports directly, and outside of the Crystal Reports Preview control.
Finally, another reader sent me an e-mail suggestion to improve Excel export options, which I'll cover in Tip 7.
So to all, thanks very much for your interest and feedback. Starting with this issue, my blog will contain a link for each Baker's Dozen article. Feel free to post comments.
Versions of Crystal Reports
Unless I indicate otherwise, all examples in this article use the version of Crystal Reports that ships with Visual Studio 2005. In a few instances, I'll cover specific functionality for Crystal Reports XI.