Packt Publishing contacted me a few weeks ago and sent me a copy of their new iReport 3.7 book, by Shamsuddin Ahammad. Although it took me longer to manage to find the time to read the entire book, I got done this weekend and would like to share my thoughts about it.
What is this book about?
This book is about iReport, a very neat tool to design reports intended to run using Jasper Reports library. Although Jasper Reports is probably the best open source report library, it is very hard to use it unless you have a tool to design your reports. I had the opportunity of using iReport a few years back, and without it, I would not have used Jasper Reports at all. Although Jasper Reports has always been very powerful, I would not have written raw XML to design my reports, so now you may understand why iReport turns out to be relevant and worthy of its own book.
In addition to that, not only Jasper Reports is very powerful, but iReport is as well. I had some troubles a few years back for some more advanced tasks (like being able to use scriptlets for my reports), but even then I was able to figure out how to make it work. Recent versions are years-light better than at the time I used, so I highly recommend it as my open-source option for reports.
This book targets those who want to quickly learn iReports. It is a hands-on book, introducing the basic and necessary concepts to get started, following a tutorial format. Each chapter covers a specific topic that will get the user to quickly learn a new feature and leverage them for their own projects.
What does it cover?
As mentioned before, it covers a specific feature in each of its chapters. These are the covered topics: Report Layout and Formatting, Variables, Parameters, Groups, Subreports, Crosstab Reports, Charting, Images. It also covers how to display reports in Java applications.
This book is definitely relevant given the importance of iReport and Jasper Reports in the open source world. It doesn't require any prior knowledge of Jasper, iReport, and only very minimal knowledge of SQL to be able to learn what iReport is about. I think the tutorial format is very interesting and does not bore you even if you read it cover-to-cover, like I did. Also, if you prefer to learn just what matters to you, it leads you to the basic knowledge of iReport very quickly, what is very important nowadays. This is definitely the kind of book I would recommend to anyone that doesn't know anything about iReport.
On the other hand, this is not the only source of information you will need when using JasperReports. The integration of Jasper Reports with your applications is covered primarily through a Swing application and the integration with a web application is very short and doesn't provide details. If I were to review this book before it was published, I would have suggested that the author spent more time on the integration part. I would also remove or shorten the last chapter on Netbeans, as I don't think it's so relevant and does not provide much new information. Given that, if you buy this book, very likely you will need to look up on the web more information on how to actually generate the report files.
Also, if you are using more advanced features, they are not covered in this book. One example is scriptlets. Also, it touches on the concepts only lightly, so if you are expecting to learn theory/concepts, internals of iReport or JasperReports, or even details about iReport (like configuration options, all the properties, all available report elements), this is not the book for you.
In terms of the tutorial format, it provides the database schema and how to create in the appendices, which is definitely handy for those not familiar with MySQL. In my case, it was very simple to create the schemas copying the SQL statements from the ebook version. However, it does not provide data and it would have so simple to have provided some sample data so users do not have to populate the database to be able to follow each chapter's instructions. If you buy the print version, the code is not still available on Packt's website, so you will have to create the schema copying the SQL statements by hand. Being nit-picky, the only Java code that is provided in the book is badly indented/formatted and reviewers may have overlooked that.
Finally, I have to say that I really enjoyed reading this book and learning more about the new version of iReport. I recommend this book to all of you that would like to start learning about iReport 3.7. Please leave your comments below if you had the chance to read this book as well.