A Competitive Analysis
Crystal Reports uses sub-reports to show data that wouldn't be possible with a regular report. As mentioned earlier, Crystal Reports has a single point of entry and can't report off unlinked data sources. Sub-reports get around this problem by letting you include a separate report, with its own data source, within a parent report. The biggest complaint about sub-reports with Crystal Reports is that they only allow one level of nesting.
SSRS supports sub-reports and it does it to 20 levels deep. I would think that if you needed this degree of nesting then it might be time to re-think your report design.
One problem with sub-reports in SSRS is that it has trouble exporting them to Excel. The Excel export only supports nested List objects.
Formatting page content lets you customize the look of the report to give it a professional image. Both Crystal Reports and SSRS have extensive formatting features to enhance the look of your reports. Although SSRS gives you a multitude of formatting options, however there are some advanced formatting features that it's missing. These might be important to certain users and it may effect your report requirements.
SSRS doesn't support conditional page breaks. Page breaks always occur in the same location and you can't reference data within the report to conditionally turn them on or off. Crystal Reports supports conditional page breaks.
Web sites use CSS files to streamline the development process. The CSS file stores the formatting rules so that the web site presents a consistent corporate image. By making a change to the CSS file it automatically propagates the changes across the entire website. It also allows you to "brand" reports for use by different clients. Crystal Reports supports CSS files for all report objects. SSRS doesn't support CSS within the body of the report. You have to manually format the report content to match the corporate image and changes have to be repeated for every single report. The ability to "brand" reports for clients isn't possible.
Both Crystal Reports and SSRS support displaying text objects. But only Crystal Reports supports displaying Rich Text Format (RTF) objects.
SSRS doesn't support restarting page numbers when a group changes. This is required for reports that are broken apart for individual distribution (customer invoices, monthly sales reports, etc.). Crystal Reports supports fully customizing the page numbering.
Labels are tough to work with. Labels require exact placement on the page and conditionally hiding different fields. SSRS makes this unnecessarily complicated.
Crystal Reports also gives you the ability to specify different formatting within objects. SSRS formatting must be done to the entire object. For example, a text box in Crystal Reports can have formatting and fonts applied to the individual characters within a string. With SSRS you would have to create multiple objects, each with their own formatting, and place them next to each other.
Crystal Reports lets you add descriptions to each report object so that when the user's mouse hovers over the object the description pop up. This isn't supported with SSRS.
Report alerts give the user a custom message when certain data is printed. For example you can alert the user when inventory levels fall below a certain level. Crystal Reports has this capability but SSRS doesn't.