Crystal Reports

An indescribable evil foisted on programmers under the guise of "easy reporting".

 It also fits the requirements for a CareerLanguage.

More discussions moved to the end of page


The reporting tool (one of the earliest VisualBasicTools) was acquired by BusinessObjects in mid 2003, and the new owner planned to merge the functionalities with its high end BusinessIntelligence? software by end 2005. See http://www.infoworld.com/article/04/01/08/HNboroadmap_1.html


Crystal Resources on the Web


Learning Crystal Reports

Please list good resources (including books if you have read them) that are good to help beginners to gain proficiency (to intermediate skill level) quickly. Target version is Crystal 9 --dl DeleteWhenCooked


Crystal Versions

Version 4.6 Version bundled with VbClassic version 5/6

Version 5+ conditional formatting, multiple sections, subreports

Version 7 An addon called Report Design Component (RDC) first got introduced. Also a precursor to Crystal Enterprise, called Web Component Server (WCS), was made available.

Version 8 Emergence of the Report Designer Component. Allow control structures in formulae, cross tab, charts

Version 8.5 New product Crystal Enterprise, WCS dropped from product line. Has alerts and PDF exports

Version 9 mid 2002 version now has a repository, but dropped compiled reports see http://www.intelligententerprise.com/print_article_flat.jhtml;jsessionid=G0EJVFB0CDTKAQSNDBCCKHQ?article=/021030/517products1_1.jhtml reported to be much slower at http://groups.google.com/groups?th=f4e503e5212c09a2 now can process SQL commands directly

Report Application Server (RAS), a java based tool, now introduced as an entry level stepping stone for the larger Crystal Enterprise server based solution. Previous free entry tool was called Crystal Enterprise Standard.

Version 10 ?Jan 2004 version that has better Enterprise (Java engine) and DotNet capabilities


Report Desginer Component (RDC)

Information on this is scattered throughout the page, here are some additional information.


Crystal Enterprise

This web based solution, available since 8.5 separately, moved processing load to dedicated report server and has in addition, scheduling capabilities.

It also provide better scalability through economizing scarce resources such as database connections.

Crystal Enterprise was a "free" addon to Crystal 8.5. It now has a professional edition that has security features (e.g. LDAP based) , and is priced for customers with deep pockets.

See http://www.crystalkeen.com/articles/crystalreports/crystalenterprise.htm


Data access

In the case of ActivexDataObject (ADO), Crystal require data source that can be scrolled in both directions. However we open our recordsets using forward and readonly cursor option. Therefore we need an intermediary inmemory datasource to hold the entire contents of the recordset, and use that as a feed to CrystalReports.


Reports for the Web

Vendor recommend use of RAS (Enterprise Report Application Server). see link above

Crystal can also be used to create report in HTML format, to be served to the web browser. This mechanism lacks the advanced features (e.g. drill down) made possible through use of RAS or RDC.

Deployment: setup and licensing see http://www.tek-tips.com/pviewthread.cfm?sqid=838331&spid=768&page=1

Simple ASP alternative to Crystal. see http://groups.google.com/groups?&th=4d846011584133c

Stream CR output to PDF for web consumption see http://groups.google.com/groups?&th=5a6b9c75fbaf8d13

Active Reports as an alternative to Crystal. see http://groups.google.com/groups?&th=ebed20d90e02e341


Report Application Server (RAS)

Resources:


Reports for Client Server Applications

Use RDC (Report Designer Component). It has facilities not in the RAS. Uses the ComponentObjectModel approach to integrating reporting functions with application logic. Using RDC, reports can now be directly created and manipulated within the host language IDE (e.g. VbClassic).

An introduction to RDC is available at http://support.businessobjects.com/communityCS/TechnicalPapers/rdc_gettingstarted.zip.asp


Reports for Services and Xml type applications

See vendors own material at http://support.businessobjects.com/communityCS/TechnicalPapers/cr_xml_data_sources.pdf

Web service and Crystal Enterprise. see http://groups.google.com/groups?&th=6ccafcd29e4aba61

I hear there were severe limitations (e.g. size of strings) that exist in earlier versions. Problems now resolved?

Versions prior to CR9 has this problem. See http://groups.google.com/groups?th=d4f4fe9086d43be9


Reports for VbClassic

With VbClassic, RDC incorporates the automatic code completion. The Activex designer within the RDC extends the VbClassic IDE through facilities such as User Connection and Data Environment designers. Also the VbClassic code has access to manipulating properties for report objects at finer level of granularity (eg. programatic setting of formula for text object within Vb)


Reports for VbDotNet

A tailored version (based on Version 8/8.5) is included for VS.NET. This is described at http://www.businessobjects.com/products/reporting/crystalreports/net/vsnet.asp However it appears that this has been superseded by Crystal version 10

Also there have been reports that the .NET version is incomplete without COM objects (see http://groups.google.com/groups?th=1761947f3af8afc8) and also at one time was incompatible with a version 9 enterprise server (see http://groups.google.com/groups?th=68c4c3365392b6be)

It was reported that DotNet 2003 comes with Crystal v10. See http://groups.google.com/groups?th=8f22999f923c8c6e The above was disputed by Brian Bishop, an author of Crystal books, he said it (VS2003) comes with a modified version of Crystal 9.

Simple setup example refer to http://aspalliance.com/articleViewer.aspx?aId=265&pId=-1

If Crystal 9 is installed over Crystal Reports.Net some dll errors can occur. See a discussion at http://www.vbcity.com/forums/topic.asp?tid=72734

Wrox (acquired by Wiley) has a forum on development of crystal reports at http://p2p.wrox.com/forum.asp?FORUM_ID=109

Microsoft has some documentation on DotNet version of crystal at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/crystlmn/html/crconcrystalreports.asp.


Older and Superseded components

CRPE (Crystal Reports Programming Engine) API. A powerful low level interface discarded in CR9 Crystal OCX. RDC is the replacement for this tool which worked for 16bit windows as well.


Crystal Data Object (CDO)

This could be on the way out. But I have seen it listed as a datasource in the two definitive CR9 books of "Mastering ..." and "...Complete Reference".

It is supposedly a very powerful means to source data (e.g. from ComponentObjectModel objects that interrogates the active directory).

Vendor has a RDC usage sample at http://support.businessobjects.com/communityCS/FilesAndUpdates/CR8_VB_RDC_GetNextRows.exe.asp

More vendor CDO material can be located with this search link http://support.businessobjects.com/search/results.asp?summary=1&ct=livewww-all&site=my_collection&client=my_collection&output=xml_no_dtd&filter=0&radioGroup=kbase_search&q=CDO&content_typ=all_support&language=EN&index_cont=0&index_ftyp=0&index_lang=0&index_ver=&index_lang=&indexq2=&indexq3=&indexq4=


Upgrade to CR9 from 8.5

We have set up a new machine with Crystal 9, and put VbClassic on. Problem is we quickly find that the existing VB projects with Crystal 8.5 reports not work, even after the project reference is changed to using the new library.

A solution was found later by hacking the visual basic form files directly. We took a look at a form that uses the new CR9 format, and change the references in all the forms that refer to older control names.

The new crystal 9 uses different Dlls, and the names for the interfaces within the DLLs have changed as well.

 also check http://groups.google.com/groups?th=f5be6e3771394984 for info


Upgrade Crystal.NET 8.5 to 10

Resources


Deployment of Crystal

Even after licensing issues have been addressed by the company lawyer, deployment of CrystalReports can be painful.

I have seen a remark made that for Web applications, consider Crystal Enterprise as the deployment mechanism.

For Client Server apps, check out http://www.dmgrpt.com/Tips_CRDesc.htm.


User experience discussions

Upgrades can be painful

See for example, http://groups.google.com/groups?th=eace9531a0d25e74

Does not meet all user needs for reporting

I have yet to find a project that CrystalReports could handle all the reports for. I've always had to use CrystalReports with another reporting system, or roll my own reports altogether.

The problem is that it is fragile. If you want to do what it does nicely, you are fine. However, if you want to doing something slightly different, you can't modify or subclass Crystal Reports. Instead you have to abandon it altogether for another program (either another commercial one, or one you wrote yourself).

Reporting seems to be a good area in which to demonstrate the power of well-written and exposed object-oriented software, so why is CrystalReports the dominant player?

Because it ships free with VB?

An open-ended report writer is something that would be tough to design in my opinion. You may need to mix flow-based (nested) layouts with positional layouts. If you can stick with one or the other, it is relatively easy. But, if you want to make it handle both, you are a genius if you can pull it off.


What are some specific things which CrystalReports cannot handle?

Most of the problems I have seen are trying to use it to do complex calculations or pre-processing. Use a real programming language for that, and let Crystal be a mere formatting tool.

Indeed. It is not meant to be a programming language, nor should it. But, are there any common formatting tasks that have caused trouble?


Unwanted FEATURES

Security risks


See CrystalReportsAlternatives


EditText of this page (last edited June 27, 2006) or FindPage with title or text search