Some things have little one-to-one correspondence between Crystal and RDL. Many things that are done in Crystal have to be done differently in RDL.
Below are two out of date articles that may be useful to you.

Our goal is to get you past the tedious and repetitive work of mechanically copying and pasting the text and code.

You can upload one RPT file at a time or a zip file containing many RPT's (please make sure your RPT's do not contain saved data). We provide you with a converted zip file containing the following files:

  • Visual Studio project file (.rptproj)
  • One or more RDL files including sub-reports (2016, 2010, 2008 or 2005 format).
    We do NOT charge extra for sub-reports
  • One or more RDS (Shared Data Source) files. Your database connection information need only be specified once
  • Zero or more SQL files. We can extract the SQL from your reports and put it into stored procedures for you
  • Image files optionally extracted from the report.
We also provide you with the following conversion information:
  • Log of the unconverted items and other issues
  • Dataset Query (SQL) and Filter Expression
  • Formulas that have been converted from Crystal to RDL
  • Expressions that have been converted from Crystal to RDL


I don’t have a login. How can I get one so I can try this?
Please see the Pricing page for details of our Free Trial Offer.

How do I go about converting my Crystal Reports to RDL?
Go to the conversion page to login. Specify a Crystal report file (.rpt) or a zip file containing Crystal Reports. Specify the conversion options that you want and click Submit to upload the report. After a short time, a button will be displayed to download the zip file containing the results. Information regarding the conversion process will also be displayed on the conversion web page in multiple tabs per report.

What does the downloaded zip file contain?
After you extract the contents of the file into a directory, you will see a Visual Studio Report Project file (.rptproj), one or more RDL and RDS files, and one or more XML files with the same names as the Crystal reports submitted. There may also be some SQL, PNG and miscellaneous support files. If you open the XML files with a Web browser, you will see the relevant conversion information.

What is in the Visual Studio Report Project file?
This contains the database connection information defined as ‘Shared Data Source’ (RDS) files so that the connection information can be in one place for many reports. All the converted reports, sub-reports and images are also listed. You can add newly converted reports to this project or keep them separate depending on your requirements.

I have opened the .rptproj file using Visual Studio, what is next?
You will need to make sure that the Shared Data Sources can connect to your target database. Double-click each data source and ensure that the credentials and connection string is correct. The type of connection needs to match the environment change from Crystal to RDL. We suggest you switch from using ODBC to a Native database driver.

My database connections are now correct. Can I open a report file now?
Yes, you can double-click a report (RDL) to open it in the Report Designer. Here, the report displayed in the Design view tab should look similar to the Crystal report layout. You can open a report even if your data sources are incorrect, but the next task should be to verify the SQL.

How do I verify the SQL?
Open the Report Data Window (Visual Studio 2008/2010) and double click on the dataset name to bring up the Dataset Properties Window. If there are database connection problems you might experience an error, but you can still continue.

In the Query tab you will see the data source being used, the type of command (Text or Stored Procedure), and the SQL query. Our conversion process creates a SQL statement (or stored procedure) that matches with the target database type and the conversion options selected.

Clicking on the 'Refresh Fields' button will verify the SQL.

What columns (fields) are returned by the SQL statement?
We extract all the fields that are referenced in the report and they are shown in the Fields tab of the Dataset Properties Window. You have the option to include all fields from all tables even if they were not referenced in the original Crystal report. Once your SQL is correct you can refresh the fields clicking on the 'Refresh Fields' button in the Query tab.

Can I go back to the Design tab at this stage?
Most new users initially concentrate on how the RDL report looks (in the designer). However, after a while you will find it is best to first verify the fundamentals (connection and SQL), otherwise you will not be able to use the Preview tab. To see the visual part of the report, close the Dataset Properties Window.

It looks very similar but not exactly the same, why is that?
Most Crystal reports are poorly aligned. i.e. field values overlap, are different sizes, are not positioned horizontally or vertically the same as other fields.
RDL has a 'Tablix' control that is perfect for columnar reports and allows easy adjustment of column widths and heights. It is one of RDL's best features and the SSRS rendering engine does not like fields that overlap.
So we make use of Tablix cells whenever we detect reasonably aligned fields in a Crystal section (within 1/20th of an inch).

When a crystal section is too complex, we create a rectangle object inside a single Tablix Cell and move items that overlap into that rectangle or Box as child elements.

Boxes and lines that cross section 'type' boundaries are not supported directly by RDL, but we use a combination of lines and cell border attributes to approximate it. Sometimes this does not look exactly the same using different rendering engines (e.g. Screen vs. PDF vs. MS Word).

Where are my Images?
There is a conversion option available so that you can extract images as PNG files from the Crystal report. These are referenced in the Visual Studio Project as External files in the same directory as the RDL file. If we cannot extract an image, we reference a tiny image that embedded in the RDL to avoid build errors. If the image is repeated then we only return one copy of it.

We do not automatically extract images because more than likely the returned images are the same company logo repeated across many reports.
SSRS 'best practices' specify placing images in a central repository and not embedding them. We cannot know the name of these files on your SSRS Server when you deploy your reports. We create a unique name for the PNG file that is related to the name of the report and the object name.
Extracting images is nice for demos and for the first few reports you convert, but to save you from having to delete images you don't need, simply specify the location of the correct image on your report server.

Where is my Crosstab data?
We cannot convert CrossTabs on our server due to licencing issues with the tools we use. Instead we insert a Tablix placeholder that has no content and display a message about this in the log file. If you contact us we will convert this report offline and return it to you for no extra charge.

Where are my Crystal Custom Functions?
Crystal custom functions and many Crystal formulas are converted and placed in the RDL VB Code section as functions. Regardless of whether that function or formula was Crystal or VB Syntax, it gets translated into syntactically correct VB expressions and functions.

How do I run this report?
We suggest you try to build (or compile) one report first by right-clicking on the report in the solution explorer window and selecting the Build option. You can also go to the toolbar at the top and select Build Reports if you want to see any compile errors all at once.

How do I fix the ‘… extends beyond the edge of its container’ message?
Usually, just adjusting the size of the page, margins, or tablix, or moving an element slightly will fix this.

What does ‘Overlapping report items are not supported in all renderers’ mean?
Crystal Reports are usually not very well aligned, and we try to produce a result that is as close as possible to the original report. Some minor adjustment in size and positioning is generally expected when we have not been able to use a tablix cell for each element.

I get syntax errors for some elements, why?
We attempt to convert common both traditional Crystal expressions and newer VB expressions into Visual Basic RDL syntax. Please scan through the conversion logs to see what we have done, and manually fix any incorrect element. Also, let us know if you think we should have caught the problem and we will investigate accordingly. By giving us feedback, we can improve the conversion rules for you and other users.

I have no more errors, can I run it now?
Yes, you can click the preview tab and see what you get.

My report is showing alternate pages of blank data. How do I fix this?
This happens because one or more elements extend past the margin of the page. You need to adjust the margin width, page size, or move and resize the element slightly.

It looks OK except my sub-report does not show correctly. Why?
Most sub-reports depend on the parameters sent to them by the main report. You need to check whether the parameters being sent are correct compared with the parameters expected by the sub-report. For more efficient reports, you should consider eliminating sub-reports. Many sub-reports may be able to be eliminated using the RDL 2010 'Lookup' functions.

Some reports have table rows that are one rectangle containing other report objects, most others don't. Why?
When the conversion process detects a section that is 'tabular' rather than 'columnar', it will use a Rectangle in the Tablix/Table row that will contain other elements, thereby preserving the layout. The majority of commercial or financial reports do not need this, as it usually only happens when a large element (like a picture/image) has smaller elements stacked to the left or right of it.

Why does the 'shared variable' value that was modified in a sub-report not show in the main report?
SSRS does not have variables that are shared between main and sub reports. Each report is a separate entity. We create separate variables in each report and pass the current value of the variable as a parameter to the subreport. But if the sub report changes that value there is no way to pass the value back to the main report.

I need to convert from Crystal to RDLC. How do I do that?
An RDLC (Client) file is simply an RDL file renamed to RDLC. This is opened and executed by a .NET client program that has given it a dataset external to the RDLC.

In contrast, an RDL usually runs on a report server and contains the connection and dataset information inside itself (or references shared datasets/sources).

There is programming knowledge needed to use RDLC's which is not so with RDL's.

Here's a link that might be useful: how-to-convert-rdl-files-to-rdlc-files

You can always test a report as RDL (Preview in Visual Studio) and when you're ready, run it as RDLC.