Fog Creek Software
Discussion Board

Crystal Book

Can anyone recommend a good Crystal Reports book?

Wednesday, June 30, 2004


Run fast.

muppet from
Wednesday, June 30, 2004

It's that bad?  I'm with the original poster - I just yesterday had to buy a copy of Crystal because my small business ERP *requires* it to do custom reports. Is there no good first-party/third-party documentation?

Wednesday, June 30, 2004

Crystal isn't too bad - you just have to be aware of how it works and compensate for that.  I'm sorry that I don't have a book recommendation, I learned by jumping into it head first.

As far as a big quirk to work around, be aware that IF THEN statements are bad in Crystal if they are used as selection criteria - use ANDs and ORs or a SQL Expression instead.  Otherwise Crystal won't offload the selection statement to the database and will pull too many records and burn CPU doing a selection on the local machine.

Wednesday, June 30, 2004

I second the guy that said "Run".

I understand your requirement for a reporting tool - just be aware that Crystal Reports isn't the only game in town. Thank goodness.

I still have horrible flashbacks everytime someone mentions Crystal Reports. What a bitter, ugly, soul-destroying experience that was....

By the way, Business Objects (the company formerly known as "Crystal") is starting to outsource their product development work to China. The quality of that work has been dismal.

Wednesday, June 30, 2004

GUI Joe,

What do you use now?

Wednesday, June 30, 2004

What do I use now? I don't use any reporting tools -- my exposure to Crystal was as a third-party tool developer, not as someone creating Crystal reports day-in day-out. It was a rather unpleasant experience.

I have heard good things about ActiveReports though, so be sure to check it out if you are evaluating reporting tools. You might also want to take a look at Microsoft's SQL Server Reporting Services.

Wednesday, June 30, 2004

I have a collection of standard scripts (mostly in Perl but I've some mdb templates, too) for creating reports.  When an employer asks me for reports, I set something up in Perl (which is free as in beer) and format the output as HTML, XLS, or XML.  This usually suffices and is much more useful to them than a doc or rtf file from Crystal or Infomaker or similiar.

Why do we need these cheesy reporting tools with their artificial Business Object layers that obfuscate your data and make things more difficult?

muppet from
Wednesday, June 30, 2004

>Why do we need these cheesy reporting tools with their artificial Business Object layers that obfuscate your data and make things more difficult?

Job security? :P

Nearly Nameless
Wednesday, June 30, 2004

I can't speak specifically to Crystal, but in general, the extra layers are there so that Joe Business User doesn't have to go beg the DBA for a report.  Instead the DBA can define the business objects once, in a way the Joe Business User understands and then Joe can run his own freaking reports.

Seriously, if you're ever in an environment where you have users hounding you for a different report day in and day out, a toll that lets them run their own reports is a God send.

But yeah, from the few experiences I've had with it, Crystal is a PITA.

Steve Barbour
Wednesday, June 30, 2004

I've used Crystal Reports for 10 years now and I truly am disappointed when people summarily dismiss it.

Someone here said something about understanding what the product does. Let me go further: make sure that you understand how Crystal Reports thinks. The trick with Crystal is understanding how groups work and when formulas fire as a result. Once you get your mind wrapped around that, it's fantastic.

Also, there are many different ways to accomplish the same thing in Crystal that will put more load on the database server or more load on the reporting client. You'll need to determine which is a good mix for your situation (having the DB server do everything isn't always desirable).

Again, I can't stress enough that the key to success with the product is thinking the way it thinks. Keep in mind that it's up to version 10 and they did stop for some .5's in there as well. Also keep in mind that there's a reason that it's the defacto standard for reporting and has been for a long time.

Mark Smith
Wednesday, June 30, 2004

I have always had good results with Infomaker but more as a standalone.

Wednesday, June 30, 2004

Just so everyone knows - SQL Server Reporting Services are a free add-on for SQL Server. Have a SQL Server license? You own Reporting Services.

Fully customizable reports that can report against any OLEDB data source. Web-based management UI, subscription reports, charts, etc.

So if you have a SQL Server in your solution, it doesn't cost anything to at least check them out. :-)


Wednesday, June 30, 2004

There is one rule that you can follow that will make your Crystal experience much better: DO NOT let the Report connect to the database for you because there have been many problems with this.

Instead, connect to the database yourself with ADO and get all the recordsets that you need for your report.  Then just hand the recordsets to the Report object.

Like this:

Private Sub ReportInit( _
    oRs As ADODB.Recordset, _
    sReportPath As String, _
    Optional ShowTree As Boolean = False, _
    Optional SubReport As String = "", _
    Optional oSubRs As ADODB.Recordset = Nothing)
    On Error GoTo ProcErr
    Set fcrRpt = Crystal.OpenReport(sReportPath)
    With fcrRpt
        .Database.Tables(1).SetDataSource oRs, 3
        If Len(SubReport) > 0 Then
            .OpenSubreport(SubReport).Database.Tables.Item(1).SetDataSource oSubRs, 3
        End If
    End With
    With ReportViewer
        If Len(SubReport) > 0 Then .DisplayTabs = True
        If ShowTree Then .DisplayGroupTree = True
        .ReportSource = fcrRpt
    End With
    Exit Sub
End Sub

Wednesday, June 30, 2004

BTW, (there are many reasons) but, another reason for doing it like this is that you don't have to distribute ANY of the Crystal DB Drivers.

Also, when designing the report open Crystal, choose Blank Report (or Wizard) and when it comes time to choose the Database look for "More Data Sources->Active Data->ADO" or just "Active Data->ADO" depending on which version you have (I have 8.5).

Then you have to give it some SQL that produces the same fields that the ADO Recordset will have in it.

It's really very easy if you do it this way.  I don't know about the SQL Server Reporting services that they pimp on this board a lot.  What kind of output can you get from it besides HTML?

Wednesday, June 30, 2004

We use Crystal, it works okay but I'm not a big fan of the company. They're licensing is really confusing and the product seems buggier than I would expect for something that's been around as long as it has.

Pick a general style for your reports and learn how to bang them out in that style quickly; ignore features you don't need.  I don't even have a book, between their Help and what you can find online you should be okay once you get over the initial learning curve.

Anony Coward
Wednesday, June 30, 2004

But doesn't anyone have a recommendation for a good intro-book?!

Tuesday, July 27, 2004

*  Recent Topics

*  Fog Creek Home