コードを記述することなしにデータを表やグラフとして出力できる帳票ツール「Elixir Report」 4ページ
クライアントアプリケーションからのアクセス
Elixir Reportにはレポートサーバーへのアクセスを行うためのJavaライブラリが付属している。たとえばレポートを生成するには、レポートサーバークライアントである「com.elixirtech.ers2.client.ERSClient」クラスのインスタンスを作成してrenderReportメソッドを実行すれば良い。
次のサンプルコードは、レポートサーバーにアクセスしてPDF形式のレポートを生成しそれをクライアントに返す、というJavaサーブレットを実装したものだ。
import java.io.IOException; import java.util.Properties; // レポートサーバーAPIクラスのインポート import com.elixirtech.ers2.client.ERSClient; import com.elixirtech.job.IJobInfo; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ItdServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // サーバーに渡すプロパティの準備 Properties prop = new Properties(); // prop.put( "key", "value"); の形でキーと値を指定できる // 生成したレポートに対応するストリームの準備 ServletOutputStream sos = response.getOutputStream(); // 出力Content-Typeを設定 response.setContentType("application/pdf"); try { // レポートサーバー接続管理オブジェクトの作成 ERSClient client = new ERSClient("localhost", // 接続先ホスト 7001, // ポート番号 "itd_test", // ユーザー名 "itd_test"); // パスワード // レポートサーバーへレポート生成リクエストを発行 IJobInfo job = client.renderReport("/IT_System/itd_investment.rml", "application/pdf", sos, prop); // エラー判定処理 if (job.getInteger(IJobInfo.STATUS_CODE) == IJobInfo.STATUS_OK) { // 正常時の処理 sos.flush(); sos.close(); } else { // エラー時の処理(省略) } } catch (Exception e) { e.printStackTrace(); } } }
このJavaサーブレットをコンパイルしてTomcat(Javaアプリケーションサーバー)に配備し、WebブラウザでアクセスするとPDF形式でレポートが生成され、それがWebブラウザ上で表示される(図29)。
コーディングなしにドキュメント作成が可能に、柔軟性も高いElixir Report
以上ではElixir Reportのレポートデザイナおよびレポートサーバーの機能を簡単ではあるが紹介してきた。このようにElixir Reportを使うことで、一切コードを書かずにデータからレポートを作成することが可能になる。また、レポートサーバーにアクセスするクライアント側のコードも、ライブラリを使用することで簡潔に記述できる。Elixir Reportを使用することで、帳票を出力するようなアプリケーションや、さまざまなデータをグラフィカルに表示させるようなアプリケーションにおいて、その実装の手間を大きく軽減できるだろう。
さて、今回はMySQLをデータソースとして使用したが、Elixir ReportではXMLファイルやExcelファイルなど、さまざまなデータソースにも対応している。また、データソースとしてJDBCドライバを利用できるため、SalesforceやGoogleなどのクラウドサービスに対応したJDBCドライバと組み合わせることで、クラウド上のデータを簡単にドキュメント化することが可能だ。次回は、これら外部データソースの活用について紹介する。