Tuesday 28 May 2013

Domain based report Creation from iReport


Here are the series of steps to create a domain report from jasper iReport.
In this tutorial I'm using
iReport-professional 5.1.0
Jasper-server 5.0
postgreSQL(foodmart database).

Few points to note down about domains in jasper server and domainReport in iReport. 

  •  Community Edition of Jasper Server and iRport do not provide the feature of domains and domain based reports. 
  • Professional and Enterprise edition the Domains act as data sources. 
  • They are a meta layer between the reports and the underlying data base.
  • The idea with Domains is they allow for easy joining of the data base tables and organize the resulting columns into a nice business friendly presentation.
  • Domains also allow for calculated fields. 
  • The calculations are created using DomEL (domain expression language). 
  • This is a simple language that allows for manipulation of fields that resolves to SQL in the underlying DB.

*  We do not create any database connection externally for developing domain based report which is a traditional way of creating database connections using JDBC and JNDI.

* Before we start developing domain based report we should create a domain in the jasper server.

* And we should connect to JasperServer from iReport. 

* To know the procedure of creating domain in the jasper server plz  read the below article. http://jasper-bi-suite.blogspot.in/2013/05/creating-domain-in-jasperserver.html

* In this tutorial I have created a domain in jasperserver and named it as foodmart_domain.
* My domain consists of two tables. They are i) employee ii) store 
* Fields I used for employee table are : 
        first_name, last_name,gender,marital_status,hire_date,postion_title


* Fields I used for store table are : store_number,store_city,store_country 

Do this first
Go to window->Click on Domains --> we can observe the window appearing just below to the Report Inspector window which is known as Domain Window. 


Step 1: 
File->New->Click on Domain Report(appars at leftsidd)->Click on BlankA4->Click on Finish.
Step 2:
* We will navigate to the following window. 
* Give all the details 
  Connection : This is nothing but connection from iReport to JaseperServer
                          ( We connect from Repository panel of iReport)
  Domain       : Select a domain which you have already created in jasper server.
                          ( In this tutorial I have already created a domain and named it as   foodmart_domain, and I've not shown the procedure of creating domain in this tutorial b'z we are    learning how to create a report using domain but not domain creation )
 Filters          :  Filters are nothing but input controls in the domain based report. 
                          * We can select the field which we want to use as input control
                          * In this tutorial I have used two filters(input controls).
Find the images below for filters creation.




* Available fields :  As we successfully connected to our foodmart_domain we can observe the         
                                     the tables(of course fields also.. just double click on the folder of       employee or store.. we can observe the fildes also ) available with the domain left side of the above image. 
* Condition Editor : To use the filters concept we just have to
       --> highlight(click on the field) the field from Available fields panel 
       --> then click on create condition
       --> Field name : When you highlight the field from avaliable fileds panel it will automaticall       
                                     appear here.
      --> Comparison :  give the condition from the drop down list. 
       --> Value(s)      :   give some value ( Like we give in the parameter default expression in                   
                                                                      general reports) 
       --> Check the is prompt ( This is used for popping up the filters) 
    * In this way we can add as many filters(input controls=parameters) to the report before we 
        design the report itself.
    * We can add the filters in the middle of the designing of the report also. 
    * We can also change, delete, add/update the filters and corresponding conditions. 
   
In our example I have given two filters. They are : i) gender ii) store_country 


1st filter : 
Field Name : gender
Comparison : Equals 
Value(s) : M
         

2nd  filter : 
Field Name : store_country
Comparison : Equals 
Value(s) : USA

* Click on next
* Give the name for the report and location to save the report.  

Step 3 :

When you click on finish you are ready to design your report....

* You can observe the tables and fields available within the domain in Domains Window
* From there you can drag and drop the fields to the details band of the design area. 
* The complete design of the report you can find in the below image.


That's it we are done with report ... A domain report.. 

NOTE: 
* When we designing domain report , the iReport engine generates domain query language on it's own( defaultly) 
* This you can observe at Report Query Area.
* Find the image below for our example

* We have not provided any SQL query to generate the report. 
* We have not added any parameters in the Report Inspector of Parameters section.
* But the iRport engine has provided the domain query and parameters from jasperserver. 
* When we work with domain based Reports from iReport these all things done by iReport Engine.

How to see the preview of the report in Report Designer ?
We can directly preview the output in the designer by clicking on preview tab
(OR)
You need to export this report to jasperserver and have to see the preview as follows.

* Right click on the Folder-> click on Run JasperServer Report
* You can see the output(preview) in new a new window(Report Viewer Window)

How to see the preview of the report in the JasperServer ?
upload the report to the server and see the preview. 
The filter which we gave at the time of report design become input controls in the server and looks like in the following image. 

Now click on Ok and see the preview. 


We are done with simple domain based report from iReport.

Welcome with any queries at sadakar@gmail.com or in this blog.


Thanks for reading this article :)









3 comments:

  1. Thank you its really helpful. Can you please post something related to domain based reports in Jaspersoft Studio preferably latest version. It would be really great help. Things are really different in studio compared to IReport
    Thanks

    ReplyDelete
  2. Hi i had many fields around 120 in my sql how it can be designed using jasper studio

    ReplyDelete
  3. I had many fields in my sql how it can be designed using jasper studio

    ReplyDelete