Crystal reports open source alternative
Tags: reports, pdf, javascript
Published: 2019-04-11 15:39:52

---
title: Crystal reports open source alternative 
published: true
description: Crystal reports open source alternative which doesn't limit you and make creating report super productive
tags: reports, pdf, javascript
cover_image: https://thepracticaldev.s3.amazonaws.com/i/1aoltny9x3u72wv6nhuh.png
---

> Who is this article for
This article is written for software developers having issues with [Crystal Reports](https://www.crystalreports.com/) and thinking about replacing old or implementing a new reporting layer.

## What is Crystal Reports

Crystal Reports is a reporting software currently marketed by [SAP](https://www.sap.com). It's primarily used for analytics and generating pdf, excel, word and other kinds of documents. It used to be the main reporting software on the market and especially .NET based developers use it still nowadays because of its Visual Studio integration.

![crystal-designer](https://thepracticaldev.s3.amazonaws.com/i/101oqar2k6jnwt20rnfr.png)

## Main issues

The Crystal Reports caused me many times a deep frustration when I was endlessly searching hours for a solution on [stackoverflow](https://stackoverflow.com/questions/tagged/crystal-reports?sort=newest&pageSize=50). How to make this field look the way I want? How to calculate this form the way I want...? These are the typical question you can find there. I'll try now to pinpoint the biggest issues I have with Crystal Reports.


- **Shared styles and layouts**
I want my reports to share themes and layouts. I know I can use sub-reports feature for some of this. However, I want full capabilities to style my reports separately and reuse them. Like I can do with css.

- **Reports versioning and collaboration**
The report templates are stored in some kind of binary `rpt` files. This is impossible to version through common source control. It is also impossible to collaborate on with multiple developers because the file merge won't work.

- **Long learning curve**
The learning curve is just too long. Typically, there is a single developer in the team responsible for using Crystal Reports. This is not because it would be so difficult to understand, but because you need to learn tricks on how to convince the designer to work the way you want. The tricks you learn after many hours using Crystal Reports and browsing StackOverflow.

- **Limiting designer**
The designer is great for humans, but not for developers. It is way faster to do a "for loop" with some conditions than to click this out using a designer. In many cases, the report is limited by designer capabilities.

- **Not an open source**
The fact Crystal Reports is closed source software is very limiting. An experienced software developer is very often able to find an answer inside the library code when he gets stuck. There is typically no other help then to search on StackOverflow with Crystal Reports.

- **Active development and innovations**
The last release of the Crystal Reports was in 2016. This is just a long time ago. I think there is a lot to do and I would expect there are new releases every few months. This isn't happening despite the thousands of active users and customers.

## What now
I apologize for being so negative. The Crystal Reports is the legend with great features. Especially for the non-developers is the designer and data source selection a good way to go. However, as for the software developer, this wasn't good enough for me and I've decided to do reporting differently.

## jsreport
[jsreport](https://jsreport.net) is reporting software which does its job differently then Crystal Reports.  In fact, it was originally developed, to solve the problems I had with Crystal Reports. Let's take it step by step.

![jsreport-editor](https://thepracticaldev.s3.amazonaws.com/i/he8xodw9a04icff07i6z.png)

- **Long learning curve**
With jsreport, you don't need to learn a special designer or format. You simply code the report using the standards you know like html, css and javascript.

- **Shared styles and layouts**
You can use css with the full support to style your reports. The layout of templates is implemented using javascript templating engines like [handlebarsjs](https://handlebarsjs.com/). This means you have unlimited possibilities to layout your reports. 

- **Limiting designer**
You don't get stuck with jsreport, because the designer isn't the limit. You code your reports and the only limit is your imagination.

- **Not an open source**
It is an open source project [hosted on github ](https://github.com/jsreport). You can always take a look on the code and find out what is wrong.

- **Reports versioning and collaboration**
jsreport by default stores templates  in text files on the file system. Typically, you see on the disk just `html` , `js`, `css` and `json` files. These are easy to version and you can simply add the jsreport templates folder to the source control like git.

- **Active development and innovations**
jsreport is actively developed and maintained.  You can se on [jsreport blog](https://jsreport.net/blog/) there are great new features coming every few months.

### Get started with jsreport
You can take a look on jsreport [showcases](https://jsreport.net/showcases/), run [examples in the live playground](https://playground.jsreport.net/) and make your mind if you like the way it works. Then you can [download](https://jsreport.net/on-prem) it and check the [documentation and tutorials](https://jsreport.net/learn).

![jsreport-showcase](https://thepracticaldev.s3.amazonaws.com/i/1aoltny9x3u72wv6nhuh.png)

## Conclusion
This was a quick summary of the issues I had when working with Crystal Reports. [jsreport](https://jsreport.net) solves these issues with a completely different approach and I recommend to check it out.

If you have any questions about jsreport, please take a look on our [forum](https://forum.jsreport.net) and fill them in.