Crystal Reports Suck

There, that feels way better. I'm sure a co-worker will want to chime in here and say it's not so bad. Still, "not so bad" is not "awesome" or even "usable". Sure, you can get things done, but it usually involves prayers, the alignment of the sun and moon, and a goat with red hair.

I've yet to try some of the alternatives out there. I'm sure they are better (how could they not be), but Crystal Reports ships with Visual Studio and that's what my company uses. Maybe one day I'll get off my bum and try a few demos. I still have a feeling that it would be hard to convince the company to spend money on a different reporting engine when we have one already.

The only day I was fussing around with a report, and I think I figured out why it bugs me so much:

  1. It doesn't feel very object oriented. If I have an invoice with line items in memory as objects, I just want to pass the invoice to the report and then be able to create a sub-report on the lines. Further more, I'd like to reuse that bill object report and be able to place it in a larger report that I could pass a collection of bill objects. Maybe I need that report to print the invoices, and then a summary page. Keep in mind I'm not talking about a dataset with 2 datatables contained. I'm just talking about an invoice object that contains a collection of line items. Maybe I'm missing something here, and if I am, please someone put me out of my misery.
  2. It doesn't work with Nullables.
  3. The syntax inside is not the syntax outside. I don't like the basic language and I don't feel like I should have to use it just to create a report.
  4. Lack of templating/style sheets. This one feature would be huge. It would be awesome to create a company wide style sheet and just apply that to any report. Marketing decides that the company logo needs to be refreshed? Change it in one style sheet. Some dummy in sales broadcasts an internal report full of clients to a competing company? Fire him, then change your template for internal reports to have an "internal use only" disclaimer, and hope the next salesperson will notice your bold red disclaimer at the bottom.

I'm sure there is more I could come up with here, but lunch time is sharply coming to a close. I think I've just been spoiled with web development. The same engine I'm using for gathering input is the same for reporting, it's called the browser. Sure, you have some browser quirks to deal with, but at least it's a consistent experience. I can use my server side language of choice to generate markup and then make it all look the same with CSS. I'd love to hear some opinions on this. Maybe I could learn something to help me not hate it so bad.

6 Comments so far

  1. Sam @ April 2nd, 2008

    Crystal Reports was the thorn in my side as soon as we deployed reports with it. After 4 months of continuous hell I told my boss we needed a new reporting solution. Not a problem for me because he was once a developer too so he understood better.

    We switched to StimulReport.Net and the difference was so huge. It was so easy to use and you get full .net control over every object in the report. It lets you build reports dynamically in code too which worked out really well for creating a report writer app. We re-wrote all of our existing crystal reports with it and all I can say is I’ll never use crystal again. I’d pay for anything else out of my own pocket if I was told I had to use crystal. There’s other .net reporting tools as well such as ActiveReports and Report Sharp Shooter. StimulReport.Net worked out the best for my needs though.

  2. Report Writer @ May 21st, 2008

    First of all, SQL isn’t object oriented. The formulas have an isnull function. The syntax is dead simple. And, it does have templates and style sheets, though the style sheets are no easier to use, than applying them to your own static html pages.

    That being said, the software is kind of buggy and I’d rather just build an application to display reports. The problem with Crystal Reports is, to do anything complex, you have to write your own SQL, and many formulas. Managers usually think it’s just a drag an drop solution, but it’s really a clumsy pain in the ass, and I’d much rather just write code.

  3. josh @ May 21st, 2008

    @Report Writer

    My objects ARE object oriented. I want to report based off of my objects, not necessarily off of SQL tables. That’s my major beef with CR.

    It’s not even code friendly, let alone drag and drop!

  4. mogadis @ September 23rd, 2008

    damn, can’t get rid of perl thoughts, programming .net sucks so much :)

  5. cumquott @ September 10th, 2009

    What, that all you found to hate about CR? Gawd my list is huge. Granted I’m using 8.5 (as little as possible) but XI looks no better. Try these:

    + Search the formulas for the variable “Count”.
    + Search all your reports for the variable “Count” or the function “SetCount”.
    + Search the report for all its subreports.
    + Find all your reports that use fully-qualified table names (Hint: use the Unix command line and “strings”).
    + Now within those reports (assuming they have subreports), find the fully-qualified names to fix them.
    + Get a code list.
    + Debug a Crystal report.
    + Ever get random data from a Crystal Report?
    + Did you ever export, and examine a “Report Definition”? Laughable, though it’s got a little info in it.
    + Oh boy – what about SQL Designer?
    + Ever try to debug formulas coded with the “shortcut” syntax, where parentheses are not used? Sorry, I can’t read non-structured code like that, and it shouldn’t be allowed.
    + Ever try to debug the jumbalaya SQL that Crystal generates for a complex report? better format that beast first.

    I’ve fired Crystal twice: first for Delphi, and second for PHP. It seems like 8.5 is still around plenty, and it f&&cking blows. Like I said XI looks no better.

    Have a nice day, have fun…

  6. Kooper @ November 18th, 2011

    “Despite my past affair with Crystal Reports, I have to report that I’ve thrown over my loyalty to Stonefield Query. The simplicity and depth of the program make it easy for me to recommend. “ – Doug Wolf, Author Crystal Reports for Dummies

    “In our experience, many of our SBE clients don’t want the limitations of static reports. They prefer to create and adapt reports in response to evolving business requirements. We recommend Stonefield Query for businesses who require more advanced reports because, unlike Crystal Reports, even a novice can create sophisticated reports with very little training (often less than an hour).” – Lindsay Garrison, On the verge Inc.

Leave a reply