Creating reports using JasperReports
Introduction
iDempiere includes the Jaspersoft reporting software library as standard to produce reports in a simple format from many Windows, such as Business Partner Details, Bank/Cash, and so on.
You can also use the embedded JasperReports engine to generate reports in your own customized format.
Standard Reporting
Ready-made reports
Many iDempiere Windows include standard, ready-made tabular reports that can be generated from the Report button on the Toolbar (or type Alt-R). Some Windows, for example Invoices (Customer), also have a Print button (Alt-P) that produces a formatted page.
By default the standard report format includes features like:
- Zoom across to related documents (e.g. zoom to a Business Partner from the report);
- Drill down using hyperlinks in HTML reports;
- Export to HTML, PDF, and Excel.
You can see the full list of ready-made reports by logging in as System/System role, then select Report&Process and execute an advanced query with the filter Report=Yes to select the reports.
Use these ready-made reports as a guide to create your own.
Customise a report
You can customise these reports and prints using the Toolbox icon from the print-preview window to change:
- Add and remove columns;
- Page format and orientation: A4 Landscape for example;
- Font: serif or sans serif;
- Display order of the items on the page;
- Sort order of the rows or pages;
- Format of the columns: alignment, width, colour, and so on.
Once you have made your changes, save the new print format and re-create the print-out.
Report Wizard
iDempiere also provides a Report Wizard using the Wizard icon which provides more functionality, in particular:
- Grouping criteria: group by date or by customer, for example;
- Summary Fields: provides aggregate functions like sum, count, minimum, maximum, mean, variance, and standard deviation;
- Copy Print Format: make a copy of the standard format of the ready-made reports and then change the format to suit your requirements, leaving the original print format intact.
Create new reports
You can also create your own reports using a Report View of a database table, or by creating a more complex database view using SQL. Follow the guidelines here.
Customised reporting
Create new reports using JasperSoft Studio
The standard reporting mechanism is suitable for simple reports, but using the built-in Print Format tools to customise layouts and create new reports can be cumbersome and time-consuming.
If you want to create more sophisticated reports and print-outs with professionally designed layouts, fonts, colours and logos, you should rather use JasperSoft Studio to do the design, then load the JRXML report definition into iDempiere.
There is a very good guide to the use of JasperSoft Studio in this video by Evenos, and there is a shorter, word-less video here.
Install JasperSoft Studio
- Download and install the Community Edition of JasperSoft Studio from the download page (note: don't download the older iReport Designer as this has been deprecated in favour of JasperSoft Studio);
- Follow the installation instructions here. JasperSoft Studio is built on the same framework as the Eclipse IDE so the installation and usage is the same.
Create Data Adapter
- Start up JasperSoft Studio;
- Delete the two unnecessary Data Adapters (called One Empty Record and Sample DB);
- Create a new Data Adapter to connect to the iDempiere database: Create Data Adapter > Database JDBC Connection > Next >
- Name: iDempiere Data Adapter
- JDBC Driver: org.postgresql.Driver
- JDBC URL: jdbc:postgresql://localhost:5432/idempiere (use localhost if the database is on the same machine as JasperSoft Studio, otherwise replace localhost with the name of the database server);
- Username: adempiere (the same username that was used when iDempiere was installed)
- Password: *********
- Click on Test to test the connection parameters;
- Click Finish if all is well.
Create JasperReport
There is also a video by Red1 demonstrating a powerful plug-in by Niemcor, with ready made sample reports, that uses OSGi to install the plugin without restarting the server.
