In 2008, iReport was rewritten to take advantage of the NetBeans platform. It is freely available both as a standalone product and as a plugin to the NetBeans IDE.
In this article, we will be covering the standalone version of iReport; however, the material is also applicable to the iReport NetBeans plugin.
By the end of this article, you will be able to:
- Obtain and set up iReport
- Quickly create database reports by taking advantage of iReport’s Report Wizard
- Design reports graphically with iReport
iReport can be downloaded from its home page at http://jasperforge.org/projects/ireport by clicking on the Download iReport image slightly above the center of the page.
Once we click on the image, we are directed to an intermediate page where we can either log in with our JasperForge account or go straight to the download page.
Either logging in or clicking on the No Thanks, Download Now button takes us to the iReport download page.
The standalone iReport product is in the first row of the table on the page. To download it, we simply click on the Download link in the last column. Other downloads on the page are for older versions of JasperReports, iReport NetBeans plugin, and other JasperSoft products.
iReport can be downloaded as a DMG file for Macintosh computers, as a Windows installer for Windows PCs, as a source file, as a ZIP file, or as a gzipped TAR file. To install iReport, simply follow the usual application installation method for your platform.
If you chose to download the ZIP or gzipped TAR file, simply extract it into any directory. A subdirectory called something like iReport-nb-3.5.1 will be created. (The exact name will depend on the version of iReport that was downloaded.) Inside this directory, you will find a bin subdirectory containing an executable shell script called ireport and a couple of Windows executables, ireport.exe and ireport_w.exe. On Windows systems, either EXE file will start iReport.
The difference between the two Windows executables is that theireport.exe will display a command-line window when iReport is executed, and ireport_w.exe won’t. Both versions provide exactly the same functionality.
On Unix and Unix-like systems, such as Linux and Mac OS, iReport can be started by executing the ireport shell script.
The following screenshot illustrates how iReport looks when it is opened for the first time:
Setting up iReport
iReport can help us quickly generate database reports. To do so, we need to provide it with the JDBC driver and connection information for our database.
iReport comes bundled with JDBC drivers for several open source relational database systems, such as MySQL, PostgreSQL, HSQLDB, and others. If we want to connect to a different database, we need to add the JDBC driver to iReport’s CLASSPATH. This can be done by clicking on Tools | Options and then selecting the Classpath tab.
To add the JDBC driver to the CLASSPATH, click on the Add JAR button, and then navigate to the location of the JAR file containing the JDBC driver. Select the JAR file and click on the OK button at the bottom of the window.
We won’t actually add a JDBC driver, as we are using MySQL for our examples, which is one of the RDBMS systems supported out of the box by iReport. The information just provided is for the benefit of readers using an RDBMS system that is not supported out of the box.
Before we can create reports that use an RDBMS as a datasource, we need to create a database connection. In order to do so, we need to click on the Report Datasources icon in the toolbar:
After doing so, the Connections / Datasources configuration window should pop up.
To add the connection, we need to click on the New button, select Database JDBC connection, and then click on the Next> button.
We then need to select the appropriate JDBC driver, fill in the connection information, and click on the Save button.
Before saving the database connection properties, it is a good idea to click on theTest button to make sure we can connect to the database. If we can, we should see a pop-up window like the following:
After verifying that we can successfully connect to the database, we are ready to create some database reports.
Creating a database report in record time
iReport contains a wizard that allows us to quickly generate database reports (very useful if the boss asks for a report 15 minutes before the quitting time on a Friday!). The wizard allows us to use one of the predefined templates that are included with iReport. The included report templates are divided into two groups: templates laid out in a “columnar” manner and templates laid out in a “tabular” manner. Columnar templates generate reports that are laid out in columns, and tabular templates generate reports that are laid out like a table.
In this section, we will create a report displaying all the aircraft with a horsepower of 1000 or more.
To quickly create a database report, we need to go to File | New | Report Wizard.
We should then enter an appropriate name and location for our report and click on Next>.
Next, we need to select the datasource or database connection to use for our report. For our example, we will use the JDBC connection we configured in the previous section. We can then enter the database query we will use to create the report. Alternatively, we can use the iReport query designer to design the query.
For individuals with SQL experience, in many cases it is easier to come up with the database query in a separate database client tool and then paste it in the Query text area than using the query designer.
The complete query for the report is:
am.model as aircraft_model,
ae.model as engine_model
from aircraft a, aircraft_models am, aircraft_engines ae
where a.aircraft_model_code = am.aircraft_model_code
and a.aircraft_engine_code = ae.aircraft_engine_code
and ae.horsepower >= 1000
The following window shows a list of all the columns selected in the query, allowing us to select which ones we would like to use as report fields:
In this case, we want the data for all columns in the query to be displayed in the report. Therefore, we select all columns by clicking on the second button.
We then select how we want to group the data and click on Next>. This creates a report group.
In this example, we will not group the report data. The screenshot illustrates how the drop-down box contains the report fields selected in the previous step.
We then select the report layout (Columnar or Tabular). In this example, we will use the Tabular Layout.
After selecting the layout, we click on Next> to be presented with the last step.
We then click on Finish to generate the report’s JRXML template.
While the template is automatically saved when it is created, the report generated by the Preview button is not automatically saved.
We can then preview our report by clicking on Preview.
That’s it! We have created a report by simply entering a query and selecting a few options from a wizard.