When dealing with internal documentation in a company, images plays an important role. For example, company logo is a must in most of the documentation in a company. Here I am going to explain how to create dynamic images in jasper report fetched from the database.
I am using iReport 4.7.1 with OpenERP. In my report I am passing the image to the report as a parameter. I have created a parameter in iReport as “logo” which holds image data passed from the python to the report. In python side, i am fetching my logo as:
and passed to report as a parameter “logo”. The variable class of logo should be “java.lang.String”.
In report add a Report Import directive “org.apache.commons.codec.binary.Base64“. To do that in iReport, right click on the report and go to “Properties” at the end you can see “Imports” as shown below:
Add the entry to it. Now create a variable say “photo” with “Variable class” as “java.io.InputStream”, “Calculation” as “Nothing”, “Reset Type” as “Report” and “Variable Expression” as:
where $P{logo} is the parameter created earlier which contain image data.
Now drag and drop the image component from the pellet window. When the windows prompt to select the image, press cancel. Now in “Image Expression” field, add the variable $V{photo} created before and “Expression Class” as “java.io.InputStream”. If you are intending to put the logo in title band, set evaluation time to “Report”. Now the report should be printed with logo from the database.
Raza: Can you please point to a document or blog that would help setup jasper reports in OpenERP? I created the report in iReports and it runs fine on jasper server. In openerp, I created the "Jasper Document" and tried to launch the report but I get unexpected end of input. I took some hint from the NovaPoint document (as it is outdated), and saved the report as jrxml file under account_asset/report, and also created a account_asset_report.xml pointing to this report. Is there anything else that I am missing? Thanks".
Leave a Reply