2

I am about to start a web platform development I can go with :

  • ASP.NET - MVC 4 - Entity Framework
  • Ruby on Rails
  • JAVA (JSP, Spring, Hibernate)

My customer has the need for 6 specific reports but actually requested that he could create more reports himself.

Could you please provide me with links to libraries/services that are open source and can allow an advanced end user to create his own reports by selecting tables/fields to combine

I am aware of Jasper Studio - http://community.jaspersoft.com/project/jaspersoft-studio but also want to consider other reporting tools to decide in which language/technology will I decide to implement the website

UPDATE There is a SQL database but my customer does not know/or want to use SQL.

He wants to select tables and fields and combine them. At this moment the results in a list or table view could be enough but I guess that in the future LINE CHART or PIE CHARTS will be needed

  • 1
    Welcome to Software Recommendations! Could you tell us more about what the reports should look like, what features you want to have for your reporting suite, etc. As it stands everything that somehow selects data from somewhere and presents it somehow to somebody would fit, which is rather broad. What kind of data is to be presented? In which way? Lists? Summaries? Pie Charts? Does the "advanced end user" know SQL (if there is an SQL Database?) Where is the data stored and how should the reporting tool connect to it? – Angelo Fuchs Jun 30 '15 at 10:07
  • @AngeloFuchs I just updated my question – Mauricio Gracia Gutierrez Jun 30 '15 at 14:35
  • "my customer does not know/or want to use SQL. He wants to select tables and fields and combine them" - so, you want something to reverse engineer the database & then let him choose tables & columns using a GUI? Something like tmssoftware.com/site/qs.asp, but web-based. Is that correct? – Mawg Jun 30 '15 at 15:03
  • @Mawg sounds about right. even if the reverse engineer is not needed (by configuring which tables/columns can be used to buid the reports) – Mauricio Gracia Gutierrez Jun 30 '15 at 15:13
  • 1
    @NicolasRaoul the user does not how to write SQL, the tool should allow him to select tables/columns and combine them visually. the tool should translate that into SQL as needed – Mauricio Gracia Gutierrez Jul 3 '15 at 1:36
2

I recommend you use Jasper Reports with its client Jaspersoft Studio. I have used its predecessor iReport quite often and with much success. For my needs the community version was always sufficient so I didn't personally tried the extended products but heard good things about them.

Jasper Reports come in three parts: One is a library that you ship with your Java Program that takes the second part, the JRXml File that contains the technical definition of the report and produces a nice output.

The third part is the JRXml creator tool (the Studio, formely iReport), a tool that has a workable GUI that lets you drag and drop the elements of your reports to make what you want to show. It includes a drag and drop SQL designer that will do most simple queries like "SELECT * FROM a, b, c WHERE a.identifier = ? AND a.id = b.a_id AND c.id = a.c_id". But it has its limits and sometimes your customer will call upon you to help her get that query right until she gets to know SQL.

The Creator also comes with an datasource connection tool, so you can create the reports using only the Creator. If you have only one person at the customer who needs the reports, then this could be the way to go instead of shipping the library with your tool.

Jasper Reports work like this: You first define the query of the data you want to select. Usually that involves some parameters that come from your program, like a customer id. Then you define that parameters for the report itself so that JR can connect them later when its time to run the report.

You then let the Creator grab all the fields your report will return from the query and store them as "Field" which you then drag and drop to where you want to have them. You decide which information you want to have shown on top of the first page (like the customer name), which information to present on top of each page (like a cumulative amount) and which information you want to show on each line. There are more places than this, but you get the point.

If you want to have cumulative elements you use variables to codify them, you select the field they cumulate and the way they do so. Each cumulation is performed per line that comes from your query. You can drag and drop the variables just like the parameters and the fields directly to where you want to have them.

Jasper Reports can do a lot of the reporting stuff quite easily but they are not end-user compatible. Using the Creator Tool has a learning curve. If you hand your customer some simple example reports for her specific dataset you will make it much easier for her.

Stack Overflow has a lot of good resources for questions on Jasper Reports.

0

There is new tool out called as Helical Insight which is a open source BI tool using which you can create reports, dashboards, data visualizations. It's unique feature is 'Instant BI' which is nothing but NLP & Machine learning in which you can just type your business questions and get instant insights. For more details you can visit the website on www.helicalinsight.com

-1

If you want to go open source, your options are mainly Jasper Reports, Pentaho and BIRT, and all of them run on Java; on the .NET land, there are no open source reporting tools that i'm aware of, but there are a lot of nice closed source ones; unfotunately, i don't know about Ruby on Rails so i can't guide you on that.

By the way, i think you want something highly polished that avoids SQL language as much as it's possible, i'm afraid that in the open source world you won't find something that user friendly, so you may need to tell your customer to either learn SQL or to hire someone who does it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.