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
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.
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