Import

Reports From Other Tools, as RDLC

Open a report of Crystal Reports, Microsoft Access, JasperReports, Eclipse BIRT, DevExpress, Telerik Reporting, Stimulsoft, FastReport, Delphi's QuickReport and ReportBuilder, Visual Basic 6's Data Report, a PowerBuilder DataWindow, a Visual FoxPro report, or ActiveReports in the online designer: it is converted to RDLC by rules, and every element that does not come over as it was is listed, with what the original said.

Rules, Not Guesses

Each tool's file format is read and mapped to RDL element by element. No language model writes the report: the same file always gives the same RDLC.

Every Difference Listed

Each element comes out as it was, approximated, or not converted. The conversion notes say where it was, what it became and what the other tool's report said, so you know what to redo.

Standard RDLC

The result is RDL 2016, Microsoft's report format: SSRS2 renders it, and so do Microsoft's Report Viewer and SSRS. Edit it in the designer, then export it.

What Converts, Tool by Tool

Tool and files Converted Approximated Not converted
Crystal Reports
the .xml that RptToXml exports of a .rpt
Areas and their sections, groups and their sorting, groups of dates by their period (by day, unless the export names a week, month, quarter or year); fields, texts with embedded fields, lines and boxes; formulas in Crystal and Basic syntax, local variables included (a formula of the row becomes a calculated field); summaries, running totals; the record and group selections; parameters; linked subreports Number and date formats, which the export does not keep (Crystal's defaults stand in); lines and boxes across sections; suggested parameter values Pictures, charts and cross-tabs, which the export does not hold; variables kept across rows; custom functions
Microsoft Access
the text Access exports of a report (SaveAsText: .bas, .report or .txt, as version-control add-ins write them)
Sections, sorting and grouping (by value, first characters, year, quarter, month, week, day or interval); labels, text boxes, check boxes and option groups, lines, rectangles, pictures, subreports linked by their fields, page breaks; expressions (Nz, IIf, Count(*), [Page] and [Pages], controls named in others), formats, running sums, hidden duplicates, the alternate row color, theme colors, conditional formatting; margins, paper and columns; the NoData message as the table's Check boxes as ☑ or ☐ text; a page header of captions under a report header, as the table's repeated header; a reference to a form's control, as a parameter of the report The module's code (VBA) but its NoData message, domain aggregates (DLookUp, DSum...) and the database's own functions, charts, vector and shared pictures, page breaks inside the rows
JasperReports
.jrxml designs of JasperReports 3 to 7
Bands (title, page header, column header, groups' headers and footers, detail bands, column footer, page footer and the last page's, summary, the no-data band's text); static texts, text fields, lines, rectangles, frames, pictures, subreports and their parameters; bar, line, area and pie charts; table components, as tables of their subdataset; crosstabs, as RDL matrices of their groups, totals and measures; styles with their parents and the default style, conditional styles; Java and Groovy expressions; variables (sums, counts, averages, minimums, maximums by report or group) as totals or running values where they print; patterns; anchors, bookmarks and hyperlinks Ellipses and rounded rectangles as rectangles; the column footer once, after the rows; styled text as HTML; justified text left-aligned; a page break inside the rows' bands; barcodes (QR codes, Data Matrix, PDF417, Code 128, GS1-128, EAN, UPC, ITF, Code 39...) as SSRS2's own barcode item, which Report Viewer skips (RDL has none) List components, other kinds of charts, tables and crosstabs of a subdataset inside the report's rows, the background band, variables over a page or a column, resource bundles, the application's Java classes; a compiled .jasper (its .jrxml imports)
Eclipse BIRT
.rptdesign designs
The body's flow of labels, data, text (HTML with its values), images, grids, tables and lists, placed where it lays them out; tables and lists with their header rows, groups (by value or interval, sorted), detail rows and footers; bindings and aggregations (sum, count, average, minimum, maximum, first, last, distinct count, running sum) on the table or a group, and totals written in expressions with their filter and group; bar, column, line, area and pie charts with their categories, series, sums and series groups; crosstabs over a cube, as RDL matrices of its levels (dates by year, quarter, month...) and measures, with subtotals and grand totals; the master page's size, margins, header and footer with its page numbers; data sets with their columns, computed columns, filters and query; parameters; styles as CSS cascades them, formats, highlight rules, visibility, hyperlinks; JavaScript expressions and scripts that compute a value Heights the flow computes (text boxes grow to their text); a data item outside its rows reads the first row; charts' colors, fonts and axes' scales take RDL's defaults; crosstab columns an inch wide Crosstabs' computed measures and level filters, meter, stock, Gantt and scatter charts, the report's and charts' event scripts (onCreate, onFetch, beforeDrawDataPoint...), libraries' items and styles, tables nested in a detail row, an aggregate RDL refuses where it stands (a group's total above the group)
DevExpress
.repx (XML, v17.1 and later)
Bands, groups and their sorting; a detail report band (one table grouped by the relation, the master read with Lookup); labels, tables, pictures, lines, panels, page info; styles as DevExpress resolves them; expression bindings and data bindings; summaries; formatting rules; parameters and calculated fields; embedded subreports; charts bound to data; cross tabs, as matrices with their totals where DevExpress prints them; pivot grids, as the cross tab DevExpress's own conversion makes of them; the JSON data a report carries, as the preview's rows Shapes other than rectangles; check boxes as ☑ or ☐ text; rich text as plain text; markup text through RDL's HTML; drill-downs as RDL toggles, which the viewer marks with a plus or a minus; barcodes (QR codes, Data Matrix, PDF417, Code 128, GS1-128, EAN, UPC, ITF, Code 39...) as SSRS2's own barcode item, which Report Viewer skips (RDL has none); a watermark's text, as the page's background (behind the report) Scripts, watermark pictures, barcodes SSRS2 does not draw (postal codes, MaxiCode...), pivot grids with totals before their data, layouts saved as code (before v17.1: save them again as XML)
Telerik Reporting
.trdx, .trdp
Sections and groups; tables, crosstabs and lists, those without data printed once; text boxes, pictures, panels and lines; style sheets; conditional formatting; links, toggles and interactive sorting; bar, line, area and pie graphs; the CSV and JSON data the report carries, as the preview's rows Shapes other than lines and rectangles; HTML text beyond RDL's HTML subset; docking; barcodes (QR codes, Data Matrix, PDF417, Code 128, GS1-128, EAN, UPC, ITF, Code 39...) as SSRS2's own barcode item, which Report Viewer skips (RDL has none) Barcodes SSRS2 does not draw (postal codes...), maps, watermarks, page aggregates (PageExec), members of object data, tables and graphs that group inside a detail row
Stimulsoft
.mrt (XML or JSON), .mrz
Bands linked to their data bands, groups, a master and its detail band; texts with expressions, formats and conditions; pictures, check boxes, lines, rectangles and panels; variables as parameters; subreport pages; charts, bound to data or listing their values (columns, bars, lines, areas, pies, doughnuts, funnels, ranges and Gantt, stocks, bubbles, radar, treemaps, histograms, Pareto), their series' filters and labels; cross-tabs, as matrices laid out as Stimulsoft lays them out, with their totals, titles and summary labels Shapes other than rectangles and lines; gradient fills in one color; rich text as plain text; chart series RDL has no type for (stacked lines, stepped areas) as the nearest it has, and the charts' look (RDL's); barcodes (QR codes, Data Matrix, PDF417, Code 128, GS1-128, EAN, UPC, ITF, Code 39...) as SSRS2's own barcode item, which Report Viewer skips (RDL has none); a watermark's text, as the page's background (behind the report) Scripts, watermark pictures, cross-tabs' collapsing headers and top N, barcodes SSRS2 does not draw (postal codes, MaxiCode...), gauges and maps, waterfall series and trend lines, encrypted reports (save them without a password)
FastReport
.frx, and FastReport VCL's .fr3 (Delphi)
Bands, groups, totals; a master and its detail (one table grouped by the relation, the master read with Lookup); text with expressions, formats and highlight conditions; pictures, lines, check boxes and tables; matrices and advanced matrices, their collapse and sort buttons as toggles and interactive sorts; charts bound to data; subreport pages, as reports of their own Shapes other than rectangles; polygons as their edges; gradients; band columns; rich text as plain text; cellular text as a grid of cells; barcodes (QR codes, Data Matrix, PDF417, Code 128, GS1-128, EAN, UPC, ITF, Code 39...) as SSRS2's own barcode item, which Report Viewer skips (RDL has none); script handlers that only set objects' text, visibility or colors, as expressions; a dialog form's controls that filter the data or are printed, as report parameters; a watermark's text, as the page's background (behind the report); gauges, as RDL gauges on their value (their look RDL's) Other scripts, the dialog forms themselves, watermark pictures, barcodes SSRS2 does not draw (postal codes, MaxiCode...), maps, an advanced matrix's top N with the others, inherited reports
QuickReport
Delphi forms (.dfm) saved as text
Bands by their type (title, page and column headers, detail, groups and their expressions, sub-details, child bands, summary, page footer); labels, database texts, expressions (IF, totals of the detail band reset after they print or running on, the report's functions), system data, memos; pictures, shapes and lines; masks; the form's queries and persistent fields' types A sub-detail prints the rows its data set is given (Delphi linked them to the master's row); a report whose data set its application sets reads the one its bands read; rich text as plain text; a disabled control hidden Event code (BeforePrint, OnPrint), controls placed on the page outside the bands, loop and strings bands, charts, barcodes, reports inherited from an ancestor form (import the ancestor), binary forms (save them as text)
ReportBuilder
.rtm templates and .dfm forms, saved as text
Bands in the order ReportBuilder prints them, groups on a field or a component, labels, database texts and memos, DBCalc totals and counts, system variables (page numbers, dates), lines, shapes, regions, pictures, check boxes, barcodes (Code 39, Code 128, EAN-13, PDF417, QR codes...) as SSRS2's own barcode item, which Report Viewer skips; child reports, as reports of their own; the pipelines' field types and the data views' SQL A child report prints the rows its pipeline is given (ReportBuilder linked them to the master's row); rich text as plain text; hidden components stay hidden RAP and Delphi event code (TppVariable values, OnPrint), cross-tabs, barcodes SSRS2 does not draw (PostNet...), child reports whose layout loads at run time, reports inherited from an ancestor form
Visual Basic 6 Data Report
.dsr
Report and page headers and footers, group headers and footers, the detail; labels with their codes for the page, the pages, the date and the time; text boxes bound to their fields with their formats; functions (sums, averages, minimums, maximums, row counts) reset by the section they are in; lines and shapes A group is on the fields its header shows (the Data Environment's command hierarchy, which groups the rows, is not in the file); a hierarchy of commands is one dataset of their joined rows; a report without a data member reads a dataset its application gives; the paper is Letter (a Data Report prints on the printer's) Pictures (they are in the binary .dsx beside the file), standard deviations, code (the report's events), Data Environments themselves (import the Data Report)
PowerBuilder DataWindow
.srd, exported as text
Freeform, tabular, grid and label DataWindows: header, group headers and trailers, detail, summary and footer bands; texts, columns with their display formats, code tables and check boxes; computed fields (sums, counts, averages, maximums and minimums by their range, if, case, string, page and page count); lines, rectangles and ellipses; the table's columns with their types, its query (the painter's PBSELECT written as SQL) and its retrieval arguments as parameters Property expressions (a color or a visibility that depends on the row) keep their default; a drop-down DataWindow shows the stored value; a column in the header or footer shows the report's first row (PowerBuilder shows each page's); an N-up DataWindow prints a row a line; the paper is the printer's default unless the DataWindow names one Graph, crosstab, composite, OLE and rich text DataWindows; nested reports; pictures loaded from files; totals printed outside their range (a total of all the rows, the default, in a group's trailer); another row's value (x[-1]); page numbers outside the header and footer; the painter's queries with a UNION or a nested select (the columns stay); user functions
Visual FoxPro
.frx with its .frt, zipped together
Reports and labels of Visual FoxPro 3 to 9, and FoxPro for DOS's: title, page header, column header, group headers and footers, detail, page footer and summary bands; labels, fields with their pictures (@D, @Z, 999,999.99, @J, @I...), calculations (count, sum, average, lowest, highest) reset at the report, the page or a group, print-when conditions, repeated values hidden; lines and boxes; the expressions' functions (IIF, ALLTRIM, SUBSTR, STR, DTOC, TRANSFORM, PADL, NVL, BETWEEN, INLIST, EMPTY, ROUND...); the program's variables (lnTotal, m.var) as parameters The fields of several cursors are one dataset, which the application gives joined; FoxPro for DOS's character grid is drawn in Courier New; DTOC writes the culture's short date; the paper is the printer's default unless the report names one The program's own functions, EVAL and macros; array elements; date arithmetic; pictures from files or general fields; further detail bands (Visual FoxPro 9); standard deviations and variances
ActiveReports
.rdlx page and RDL reports
Everything RDL has: they are RDL already, with ActiveReports' own elements; the JSON and XML data a report carries, as the preview's rows Shapes as rectangles, check boxes as ☑ or ☐ text, line spacing, fixed page layouts (their first page) ActiveReports' own items (banded lists, barcodes, sparklines...), pages of a fixed layout after the first
ActiveReports
.rpx section reports
Sections, groups and their headers and footers; fields, labels, lines, shapes, pictures, check boxes, page info; styles; summaries (grand totals, subtotals, running values); parameters, those in the query too; calculated fields Ellipses and rounded rectangles as rectangles; lines and boxes across sections; check boxes as ☑ or ☐ text; script handlers (Visual Basic or C#) that show or hide items, set their text, check a box or color them from the row, the parameters and the script's own flags and counters, as expressions (the rows' alternating colors among them) Other scripts (and the values they set), barcodes, charts, page totals, watermark pictures

Measured on the tools' public sample reports, converted, compiled and rendered by SSRS2's engine: ActiveReports 8 of 8, Telerik Reporting 101 of 105 (the other four group or filter by a field a parameter names, and need its value), FastReport 111 of 112 (the other inherits from a base report), on 4 October 2026; Stimulsoft 395 of 395 (the distinct reports of its public sample repositories). And on reports public on GitHub, on 5 October 2026: Telerik Reporting 576 of 585 (the others read their application's objects, or a field a parameter names), DevExpress 573 of 580 layouts (two are not well-formed XML, the others need their application's data), FastReport 258 of 261 files of its own repositories (two inherit from a base report, one is a rendered report, not a design), FastReport VCL 2,245 of 2,329 .fr3 designs (65 inherit from a base report, 16 are not well-formed FastReport designs, three fail on made-up rows or on a total RDL refuses), QuickReport 1,056 of 1,280 forms (224 inherit their report from an ancestor form), ReportBuilder 1,188 of 1,188 templates and 377 of 394 forms (16 inherit theirs, one is not well-formed), Visual Basic 6 Data Reports 837 of 837, PowerBuilder DataWindows 6,137 of 6,273 exports (the others are graph, crosstab, composite or rich-text DataWindows, which are not converted, and two are not text exports), Visual FoxPro 9,210 of 9,349 reports and labels (the others fail on the made-up rows they are checked with, or on a font size RDL refuses; 87 more files of those repositories are not usable: Git LFS pointers, binaries stored as text), Microsoft Access 209 of 209 report exports, JasperReports 1,366 of 1,381 designs (the others load pictures from their own networks, or need their application's data), and Eclipse BIRT 903 of 914 designs (four are not designs or not well-formed XML, the others need a parameter value or their application's data, or load pictures from their own network). A report that renders can still have elements listed as not converted.

A Crystal Reports .rpt opens only with SAP's runtime: export it with RptToXml on Windows, where the runtime is installed, then import the .xml it writes. Another tool? Tell us in the designer: Import, then Another tool: waitlist.

Your Data Stays Yours

  • An RDLC gets its rows from your application. The other tool's connections are not kept; its queries are kept as text in the datasets, for reference.
  • Rows a report carries (Telerik's CSV and JSON sources, DevExpress' inline JSON, ActiveReports' JSON and XML data) become the designer's preview rows, so the report shows its own data at once.
  • Script code is not run. A FastReport handler that only sets its objects' text, visibility or colors becomes expressions; other code is listed, for you to redo with expressions where it mattered.