Our customers are mainly corporations and government bodies that in many cases were referred to us by Microsoft. Those customers have converted hundreds of reports each, and after years of continuous improvement you can benefit from our experience.

We do NOT hand modify your crystal reports - although we do offer consulting services to fully test your reports against your data. This means you get your converted reports back IMMEDIATELY - less than 30 seconds per report - not in a day or a week.

This is how we can offer a consistent low price for what others call advanced or full conversion, and they charge 3-10 times as much!

Our report conversion engine gives you reports that are syntactically correct and ready to run, except for a small number that are due to the lack of support for a feature in SSRS/RDL. See below for details.

You want examples? Try your OWN reports for FREE!
See our Pricing page for details.

Major Features Fully Converted
  Case sensitivity and trailing space.
SSRS/VB string/text comparison is case sensitive and trailing space is significant, Crystal is case insensitive and trailing space doesn't matter.
We convert your code to ensure that string comparisons work the same (See FAQ for more information). No other conversion vendor does this, and without it, your reports are unlikely to run correctly, and you will have to inspect and possibly correct every string comparison in your report.

NEW MAY 2017 - we fully convert the 'Previous' and 'Next' functions.
SSRS does not have a 'Next' function, and the 'Previous' function is considered an 'aggregate' (similar to sum(...)) which means you cannot use it in an expression within another aggregate. You also cannot use it in an expression outside of the 'detail' group.

E.g.   =Sum(Iif(Previous(Fields!Department.Value) = 'N/A', 0, Fields!Sales.Value))

We have implemented these functions so that they work the same as in Crystal (outside of an Aggregate). No other conversion vendor does this and you are likely to spend days trying to find a solution for this.

The table below shows the major features of Crystal reports that are fully converted into SSRS/RDL by Crystal Conversions.
This is not an exhaustive list.

Visual Objects
Blob FieldConverted to Image Field
BoxConverted to SSRS Rectangle or Tablix cell borders/shading
Chart *Gauge not converted*
CrosstabConverted offline for no extra charge
Database Field
Parameter Field
Picture/ImageOptional - Increases conversion
time slightly
SubreportIncludes one-way passing of shared variable values.
Visual Element Properties
Conditional Colors
Conditional Visibility
Date & Number FormatsConverted to international formats
Font, Size, Style Expressions
Section Coloring Expressions
Multiple Fonts/Colors in
single text field
Language Elements
VB and Crystal Syntax
FormulasInline or in VB Code Section
Report Custom Functions
Repository Custom FunctionsNot accessable
Date Ranges
Global and Local Variables and Arrays
LoopsCrystal and VB format
'From', 'To', 'In' Ranges
Special Fields*Some Restrictions*
Database Objects
Record SelectionCan also extract SQL to separate file for use as stored procedure
Record Sorting
SQL Expression Fields
Shared Data SourcesCreates RDS files
Stored Procedure
Summary Fields
Running Totals
Previous & Next Functions New May 2017
Document MapOn Outer Group
Group Selection/Filtering
Group Name Expressions*Some Restrictions*
Group in Specified Order
Group in Specified Order
by Date Range
Group Sorting
Group HierarchicallyNot converted directly
but See this article
Page Margins
Page Margins Expressions
(Crystal 2011 feature)
Not supported by SSRS
New Page Before*Not All Sections*
New Page Before ExpressionNot supported by SSRS
New Page After*Not All Sections*
New Page After ExpressionNot supported by SSRS
Reset Page Number*Not All Sections*
Reset Page Number Expression*Not All Sections*
Print at Bottom of PageNot supported by SSRS
Parameter Default Values
Parameter List Of Values
Subreport Linking
Can resubmit for free Can use different options to see what works best for each report, or can reconvert to use new features or improvements.
Convert many at once Upload single RPT file or zip file containing many RPT files.
Conversion Log Online and Offline Log that can be viewed using any web browser.
Project file creation Creates Visual Studio .rptproj file.
SQL Translation Converts to SQL syntax compatible with target database.
Time to Process 10-30 seconds per report.

Processing Options
RDL Output Version  2016, 2010, 2008, 2005
Report Definition Language (RDL) is simply XML inside a .RDL file that is used by SSRS as a Report Template. RDL 2005 is prior to the release of SQL Server 2008 R2. RDL 2016, 2010 and 2008 are very similar, and no extra information is extracted if you choose 2016 over 2008.
Visual Studio and Report Builder 3 also automatically upgrade older versions of RDL to the version that they produce.

Target Database

 SQL Server/Sybase, Oracle/DB2,
 MySQL, MS Access, Generic
The SQL syntax gets adjusted depending on the intended database engine. Any SQL expressions, functions etc. are converted to the right 'flavor' appropriate to that database.
The 'Generic' option will output the expressions similar to how Crystal displays them.

Extract SQL into Stored Procedure

 No/Yes (Default:No)
The SQL statements can be extracted into text files with 'create procedure' syntax appropriate for the Target Database. The stored procedure(s) must be added to the Database for the report to run.
This option has no effect when the report is already executing a stored procedure or a 'command statement' from Crystal.

Include Unused DB Fields in SQL Query

 No/Yes (Default:No)
Usually you will want to include only those fields that are used in the Crystal Report. However if you know that extensive changes are to be made then you can include all fields from all tables referenced. Note that selecting data that will not be used could have a major detrimental effect on memory usage and processing time on your report server.
This option has no effect when the report is already executing a stored procedure or a 'command statement' from Crystal.

Extract Suppressed Sections

 No/Yes (Default:Yes)
Many Crystal reports have sections that are always suppressed, but they may contain formulas and expressions that need to be executed at run-time. The default is to include these sections.
Be aware that SSRS does not execute expressions in items that are hidden. This includes when an item is hidden because the section is hidden.

Extract Images

 No/Yes (Default:No)
The conversion process will extract embedded images from the Crystal report as PNG files, reference them in the project file, and include them in the returned ZIP file.
Most images are simply the company logo and it makes little sense to continually extract the same image many times. Upload one logo to your report server and change the reference in the RDL to point to that image.
This option may occasionally fail to find all images if the report is very complex. Just export the missing ones directly from your Crystal report.

Optimize for Excel

 No/Yes (Default:No)
If a report is already very well aligned into rows and columns, and has few overlapping elements, then this option will expand/contract cells so the output creates better Excel spreadsheet output. It will also move page header/footer information into the report body and ignore lines/boxes. This is not recommended as an option for standard reports.

Create only single column Table/Matrix

 No/Yes (Default:No)
The Table/Matrix (Tablix) control is one of the most powerful features of SSRS (along with an excellent visual design editor). In contrast Crystal is a 'banded' report designer that only allows individual placement of elements, and its design editor leaves a lot to be desired! Consequently most Crystal reports are poorly aligned both horizontally and vertically, and many elements overlap (not allowed in SSRS).

We analyze the size and positioning of the visual elements to place them into real Tablix cells (like an Excel Spreadsheet). We even intelligently truncate elements, or overlay elements on the same line (within a containing rectangle object) in order to produce a multi-column Tablix.
Any box shading and lines that cross Crystal section boundaries are preserved as cell border/background attributes. Entire groups of objects widths and heights can then be adjusted by changing the Tablix column width or row height. Cells can also be merged/split to increase/decrease the width of an element.

When we find that a section is too complex to use multiple cells, we will produce a row with a single rectangle containing all the elements in that section, positioned as they were in the Crystal report.

Our 15+ years of experience of using SSRS/RDL means we believe the multi-column Tablix is what you should use, and we are the only conversion vendor that gives you this option. But it's your report, and if you are more comfortable with positioning the way Crystal does it then we give you the option to produce the report body as a single column Tablix.
Note that you are unlikely to get good Excel output if you do this.

This option is ignored if you also select the 'Optimize for Excel' option.

Items not supported in SSRS
  Here are some items that are not supported in SSRS.
  • A few math functions are not available. E.g. SSRS has 'Average' but not 'Median'.
  • Drop shadows and rounded boxes are not available. Watermarks can be done, but not in the same way.
  • Using an aggregate (e.g. SUM) for a group outside the current group context, or an aggregate within another aggregate expression. Aggregates are calculated before any report rows are produced, so some expressions will not work the same as Crystal (See FAQ).
  • Modifying a 'shared variable' value in a sub report. SSRS variables are local to each .RDL file. We automatically pass the values of the main report variables to every subreport that references them, however if the subreport modifies the value, it is not possible to pass that new value back to the main report.
  • SSRS does not execute expressions in items that are hidden (See FAQ for solutions).
  • Page Header/Footer differences:
    • Using PAGENUMBER in the report body e.g. to support alternate page background color (See FAQ for more information).
    • Page Headers/Footers can only display field data from the First or Last row of a DataSet.
    • Page Headers/Footers are of fixed size, and cannot contain subreports, charts or crosstabs.
    • SSRS does not have the ability to 'print at bottom of Page'. Here is a link to discussion about how to simulate it. None of the solutions are very good!.
    • SSRS does not have very flexible page break control. Being able to specify 'Page Break Before/After' on a single matrix row would be nice. However the 'Rectangle' object has these attributes, and is sometimes possible to put in an extra GROUP that simply does a page break.