Subreport with different datasource (data source expression, NOT connection expression)


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:


Does anyone know how to do this?

kleinmannetje's picture
Joined: Sep 21 2010 - 4:55am
Last seen: 13 years 1 week ago

3 Answers:

Nobody can help me with this problem? Is it even possible to do or do I need to search for another option?

kleinmannetje's picture
Joined: Sep 21 2010 - 4:55am
Last seen: 13 years 1 week ago

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.




sekvoya's picture
Joined: Mar 20 2009 - 7:02am
Last seen: 10 years 1 month ago

Here is a WIKI article that my provide a possible solution:

sanderse's picture
Joined: Jul 31 2017 - 3:51pm
Last seen: 6 hours 17 min ago