可以定义一个参数去指定properties文件的路径,然后创建datasource。
在datasource的script中编辑beforeOpen事件,参考下面的代码:=======================================importPackage( Packages.java.io );importPackage( Packages.java.util );fin = new java.io.FileInputStream( new String(params["propFile"]) );props = new java.util.Properties( );props.load(fin);extensionProperties.odaURL = new String(props.getProperty("url"));extensionProperties.odaDriverClass = new String(props.getProperty("driver"));extensionProperties.odaUser = new String(props.getProperty("userid"));extensionProperties.odaPassword = new String(props.getProperty("password"));fin.close();这样就可以从properties文件中动态读取数据源配置信息。----------------------------------------------------------------------------------------------------------------
你可以把配置文件在代码里写死,也可以定义为报表参数,请注意params["propFile"]这里。 这里的代码只支持绝对路径,在deployment的情况下可能不太适用,可以修改一下支持相对路径,相对于你发布的应用根目录。 importPackage( Packages.java.io,Packages.java.util,Packages.java.net ); importPackage( Packages.javax.servlet.http ); req = reportContext.getHttpServletRequest( ); propPath = new String(params["propFile"]); if ( propPath.charAt(0) != "/" ) propPath = "/" + propPath; url = req.getSession( ).getServletContext( ).getResource( propPath ); if ( url != null ) { props = new java.util.Properties( ); props.load( url.openStream( ) ); extensionProperties.odaURL = new String(props.getProperty("url")); extensionProperties.odaDriverClass = new String(props.getProperty("driver")); extensionProperties.odaUser = new String(props.getProperty("userid")); extensionProperties.odaPassword = new String(props.getProperty("password")); }