你可以定义两个数据库连接,login_db:登录用的数据库连接,work_db:各报表数据源所引用的【动态】数据库连接。
1、重点是work_db,定义这个数据连接时,数据库名不要写死,用全局参数定义,如:jdbc:sqlserver://localhost:1433;databaseName=${work_db},最后边的数据库名用全局参数${work_db}。
2、然后定义一个来自login_db的服务器数据集【now_db】用于获取所要连接的数据库名,比如 select no from db where name = '${now_db}',其中'${now_db}'为所选数据库对应的参数。
3、接着定义一个全局参数${work_db},值为公式:VALUE("now_db",1,1)
4、最后是所有报表的数据源代码都指向work_db