ビットはスクリプトjavascriptでデータソースを作成し、設定ファイルからデータベース情報を読みます.

2195 ワード

最初の問題はscriptで解決できます.
ステップ1:
JDBCデータソースを新規作成します.(ここで説明するのはDriver classとDriver URLを記入しないと、JDBCデータソースが新規できないので、ここでbitrtがちょっと憂鬱です.)
ステップ2:
前の手順で作成したデータソースを選択して、scriptウィンドウを選択して、データソースのbeforeOpenイベントに下記のコードを書き込みます.
パラメータを定義して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ファイルからデータソース構成情報を動的に読み取ることができる.
------------------------------------------------------
設定ファイルをコードに書いてもいいし、レポートパラメータとして定義してもいいです.パラmsに注意してください.
ここのコードは絶対パスしかサポートしていません.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"));
}