Hi,
I am building a report with a subreport in it. I need the subreport to connect to another datasource then the main report. I got this working with a connection expression:
java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "username", "password")
The problem is we have different environments (development, testing, production) where the report has to be used and the database name and address is different for each environment. I want to use the datasource expression to solve this problem. This way we can add datasources on each envorinment and let the report point to this datasource instead of using a different connection expression on each environment.
I tried the following exporessions, which didn't work:
it.businesslogic.ireport.util.Misc.getConnection("repo:/datasource_name")
it.businesslogic.ireport.util.Misc.getJRDataSource("datasource_name")
net.sf.jasperreports.engine.JRDataSource("datasource_name")
"repo:datasource_name"
Does anyone know how to do this?
3 Answers:
Have U checked the Custom DataSources? That can be helpful in many situation, you just implement your own DataSource Class and instantiates it in the data source expression like:
new net.sf.jasperreports.engine.JREmptyDataSource(1)
In that way you can use any kind of parameters you want in the constructor.
Hope this help.
Sek.
Here is a WIKI article that my provide a possible solution:
https://community.jaspersoft.com/wiki/jaspersoft-report-using-two-separa...