Fog Creek Software
Discussion Board

Reporting Solution

I've just started a reporting project for a large company that needs to convey a large amount of detail to a disparate and varied consumer base. We've got all of the details for reporting in line, but I now need a reporting solution that works with our concepts.

Our requirements are rather simple: We need the ability to format a report with graphs, graphics, headers, footers, and outlines. The report solution would ideally allow most of the formatting capabilities that are provided when hand formatting a document in Microsoft Excel. In addition, delivery in a variety of formats with identical formatting and integration with applications through an in-process server are major benefits. We're not looking for something that uses COM/Automation unless absolutely necessary, do to speed concerns. Otherwise we'd just drive Excel.

Any ideas or recommendations?

Dustin Alexander
Thursday, May 15, 2003

You don't mention the underlying architecture, which is fairly critical here.

I will venture "not Crystal"

If you're on a MS architecture (which the use of Excel suggests), check out ActiveReports:
which has a free trial. Don't know if they can handle charting, tho.


Thursday, May 15, 2003

The system needs to work with ODBC datasources. Any architecture that can be interpreted by a windows end client would work well. The ability to serve the reports from a non-windows machine might be an added benefit.

Dustin Alexander
Thursday, May 15, 2003

This solution looks exceptional (especially the part about hosting third party controls, such as graphs, etc). Anybody have hands on experience with it? Any caveats?

Dustin Alexander
Thursday, May 15, 2003

I second the "not Crystal camp"

I needed one of these a couple of years ago. Ended up rolling up my own in Access.

Would either print out hard copies of reports. Print to PDF, or export data to Excel.

Must point out that the charting support in Access was a bit flaky. Not sure whether it has been fixed in the new version(XP).

Thursday, May 15, 2003

You may also want to investigate Infomaker from Sybase -
In its day it was an award winning product.

You can prepare the report and say print as pdf or ship executable reports that hit your server when the user runs your report.

Done mail merges, labels as well.

You do not have to be aware of the Powerbuilder foundatation of infomaker at all to use it, but if you are a powerbuilder user you can make infomaker jump hoops.

Good support newsgroup too

Thursday, May 15, 2003

I've deployed two applications using ActiveReports, and I cannot recommend them strongly enough - it's one of those dream solutions that

I haven't used them in VB6, but in .Net the designer runs in the IDE seamlessly - just drag and drop controls, then write code behind to populate them. Reports can also be manipulated after they're run, just before rendering (to do "Page x of y" stuff, put totals on the front page, etc)

You can also check out their support forums, which are open and frequented by the developers.

To my knowledge, nobody has ever switched from AR to Crystal. ;-)


Thursday, May 15, 2003

I'm in a similar position as Dustin (VS.NET 2003 app needs reports).  Was leaning toward Crystal, but only because it's the devil I know.  Project's in the design phase and still open to other options.

Can anyone elaborate with specifics on why ActiveReports is better than Crystal?

Joe Paradise
Thursday, May 15, 2003

I played with the demo designer on ActiveReports. The technical prospects seem to be there, but what I felt was missing is the intuitive formatting capabilities. Is there a way to drag and drop the visual elements of the reports together that I am missing, or is this functionality that I need another suite to provide? If so, can anybody make any recommendations? While I am a fairly technical user, I don't relish the idea of setting formatting/wordwrap options by using a properties dialog.

Dustin Alexander
Thursday, May 15, 2003

Dustin - not sure what you're asking; I just drag and drop text boxes, labels, etc to the designer and put them where I need them. You also have alignment and sizing buttons available. It's *very* visual - I only use properties for placement when I have to fine-tune positions.


Thursday, May 15, 2003

Do you need the end user to be able to modify a report's behavior or are they just going to be running the reports?

If they are simply running pre-made reports (with parameters like date-ranges etc.) then I would say that Crystal should be your first choice.

To the "no Crystal" people: can you give specific reasons for your decision?

Really nobody has given you any solid comparison of it on a feature by feature basis to anything else here but I think you should compare it with ActiveReports which seems to be the "other" developer's choice for reporting.

If you want some nice examples or help working with Crystal, email me and I'll be glad to point you in the right direction.

Thursday, May 15, 2003

I was designing a reporting solution that would allow the end users to design their own reports.  The application being reported on did not have a one to one mapping between the data entry fields the user sees on the UI and the data stored in the database.  There was a layer of metadata that interpreted some configuration settings.  To provide this solution, I needed to provide an easy to use UI that is familiar to users who have used MS-Access.  I also needed to provide access to the data.

When searching for a solution, I first tried to use Crystal because all the static reports were based on it.  However, I encountered a problem because they do not provide you with a designer that you can modify and distribute.  They also did not have a straight foward way of pulling data from my dictionay base approach.  AR provided this.  I'm not very sure about the current versions for either of the products, but I have alot of confidence in AR.

Friday, May 16, 2003

I experienced this in Crystal 7, heard it from a coworker regarding Crystal 8, verified today with my Crystal 8.5 guru:

Crystal only works with flat files. It doesn't do relational data.

So any report that takes master/detail data from multiple tables or views is gonna get the master data for every detail row. This is why my friend on CR8 has issued an edict that no report will join more than three tables.

In ActiveReports you pull the data you need in codebehind and stuff it where it belongs. I've got an invoice generator that reads from over a dozen tables, but it doesn't pull a byte of data that isn't displayed. It also dynamically sizes subreports (or hides them if they're empty) and expands other areas to fill in.

All in C#, completely intuitive. Since there's a 1,000 page Crystal 7 book sitting in my bookshelf, it seems to me Crystal wasn't quite as intuitive.

Crystal also has a serious history with upgrade and patching problems. Oh, I'm sorry - that's a CURRENT problem:

Here's a thread entitled "CR8 Locks up Win2k":

I also know of two people who are on a first-name basis with Crystal Tech Support. I only know two people who are hard-core enterprise CR users. You do the math. ;-)


Friday, May 16, 2003

I think Crystal went downhill when they switched from selling a component to selling a "solution".

John Ridout
Friday, May 16, 2003

If you haven't tried out Crystal 9 it's a major improvement. I had used Crystal in the past and it fell into my "Hell No" category but we had to purchase it at work recently and the difference is astounding.

Integrates well with .NET or Java.
Can be designed to display data that was generated at runtime using .NET data access objects or Java classes.
Can define data sources that are like SQL stored procedures with Crystal parameters.
The report designer is much better (although still not as intuitive as Access)
The report API is a bit easier to comprehend (but has a very deep hierarchy which can be a pain sometimes)

The licensing costs for a small outfit are pretty reasonable in my opinion.

Justin K.
Friday, May 16, 2003

"It sucks less" is hardly a resounding endorsement. ;-)

ActiveReports integrates seamlessly with .Net.
Uses ADO.Net natively.
The report designer is pretty much like Access.
When you install ActiveReports, the final thing the installer does is display AR's object model, which is very straightforward.

Oh, a single report can render in HTML, PDF, or Excel simply depending on how it's called.

One of the reasons I'm so anti-Crystal - they made a business of simply being "the default reporting engine" while they fumbled around breaking installs and creating "Crystal experts" because it was so hard to work with. Meanwhile AR has been competing from scratch by simple excellence. I'm unwilling to reward Crystal at this point for finally getting it (if they do).


Friday, May 16, 2003

Personally I haven't experienced any of the heart-ache that you associate with Crystal.  There is hardly any code to write after you've designed a report, what's your beef?

You found a few things on the 'net pointing out easily fixed problems with older versions of it.  Big deal.  I'd rather open the registry to fix a bug than have to code a seperate form for each report like you do with ActiveReports.  Crystal allows you to seperate the code that deals with formatting the report from the code that runs the report.  Do you want to compile a new Exe everytime you want to add "Page X of Y" to a report header?  No, just open the Rpt file with Crystal, put it in there, and you don't even have to restart your app just re-load the report...

This is just one example of something that Crystal does that ActiveReport's needs you to code in.  Crystal takes care of most of the formatting all you have to do is feed it the data. 

And what is this about not joining more than 3 tables?  You are obviously using the wrong (I know there are many techniques for using Crystal...) technique.  Here is my function for initting commonly used reports (just pass it the Recordset that you want it to use for data...what is hard about this??)

Public 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 Resume Next
    On Error GoTo ProcErr
    Set fcrRpt = Crystal.OpenReport(csWebRptPath & 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 crView
        If Len(SubReport) > 0 Then .DisplayTabs = True
        If ShowTree Then .DisplayGroupTree = True
        .ReportSource = fcrRpt
    End With

Friday, May 16, 2003

One more'll be a lot easier to find articles about Crystal's problems than it will to find anything about ActiveReports since a lot more people use Crystal.

And yes, you can export a report to PDF, HTML, Excel, RTF, Word, etc. files right from inside your application with Crystal.  Nothing new there.

Friday, May 16, 2003

LOL one of my favorite sayings (I attribute it to myself) is

"It doesn't suck toooo bad"

I use this phrase as a compliment.

Justin K.
Friday, May 16, 2003

"You found a few things on the 'net pointing out easily fixed problems with older versions of it"

Dude, it's a MS KB article about CR *8*. That's a whole one version back. And as for "easily fixed" - that's only once someone's figured out what's broken and why. Getting to that point isn't exactly easy for the end user.

Look, I don't want to argue this back and forth, since I haven't used Crystal since I threw it down in disgust three years ago. All I'm trying to say is that a) CR has a fairly long and distinguished history of making developers ask "for god's sake, isn't there anything better?" and b) AR is a very capable competitor.


Friday, May 16, 2003

Sorry, thought of one more thing...
When I had to build my first report in .Net, I swallowed hard and decided I would put the past behind me and give CR (which is included with VS.Net*) another chance. I fought with it for three hours but couldn't get a simple table report - nothing but errors. When I tried to get it *out* of my project I found it had left detritus in just about every project file - some references I had to pull with a text editor.

This, of course, reflected my experience with CR every time - you have to learn the package pretty well to use it, including its nits and oddities. I don't want to be a CR expert, I just want to produce a report.

I installed AR and three hours later had finished my first rough on the detailed invoice report I had to produce.

Every brush I've had with CR, from version 6 through 9 has given me the impression it's simply a messy product.


* incidentally, I'm positive the only reason CR is so market-dominant is that it's always included with Visual Studio...

Saturday, May 17, 2003


I would like to recommend you Aware Reports by Aware Software, Inc. (our product). I think that this professional development tool that was designed for developers (not for end-users) will address all your requirements, and will allow you to implement highly scalable and robust reporting solution for you organization.

Please take a look at --- demos, evaluation versions, documentation, and pricing information are available on this site at no cost.

Below please find some additional information about the product. Please contact me should you have any additional questions, or need our help.

Thank you for your time,


Igor Khomyakov

Aware Software, Inc.
FAX: 1-201-701-0321
Tel: 1-201-925-0782
Toll-free: 1-877-867-5896 (US&Canada)

Aware Reports is a template driven report generator designed to produce reports in Excel, PDF (uses pdftex), HTML, XML, SVG, XSL-FO, MIF, TROFF, TXT, etc.

The product provides the following key benefits:

1) High performance: ~2MB/sec of Excel (approx. 200 pages/sec), and ~0.4MB/sec (approx. 50 pages/sec) of PDF output on 2.5GHz Linux box. One of our customers utilize only 4 such boxes to generate 87,000 Excel and PDF reports every night!

2) Cross-platform: currently available on Solaris, AIX, Linux, and Windows. Please tell if you would like to use Aware Reports on another platform---we will provide you with our ETA.

3) Consistent template driven approach for all formats provides rapid report development. You take an existing Excel document (report prototype), and mark template sections in this document by using Excel comments (you put simple tags inside the comments) --- you use Excel as your template designer. You use the same approach, and the same tags in order to create template for other formats.

4) Integrates seamlessly into your data mining infrastructure. Aware Reports does not provide data mining modules at this time. You use the infrastructure and tools of your choice in order to generate simple Comma Separated (CSV) data stream and feed it to Aware Reports. Aware Reports can process the same data stream into multiple formats including Excel, PDF, HTML, etc. Aware Reports is available as stand alone executable, MT safe C++ API, and ActiveX component. It can also be invoked from PHP, Java, and other programming environments.


Microsoft Excel is not required in run-time environment. Aware Reports generates MS Excel binary format directly.

Aware Reports supports the most of MS Excel features including:  formulas, charts, outlines, MS drawing and pictures, multi-sheet reports, dynamic tables, plus much more.

Aware Reports allow you to utilize TeX and its companions to generate beautiful PDF documents that include pictures, charts, hyper-refs, outlines, and much more. If you do not have much experience with TeX, we can help you to install and get started with TeX. TeX is absolutely free product ( You can always use another format, for example, XSL-FO in order to produce PDFs. Aware's open architecture will allow you to use the same template mechanism with XSL-FO, or any order text based format.

Please visit us at

Igor Khomyakov
Wednesday, May 21, 2003

*  Recent Topics

*  Fog Creek Home