帳票クリエータ Ver.2 リリース!
パッケージJava製品開発担当の大です。こんにちは。
先週、エイチ・オー・エスは「帳票クリエータ Ver.2」をリリースしました。帳票クリエータは最初のリリースから2年あまり、今回が初のメジャーバージョンアップになります。
製品の概要や価格、ライセンス体系などは製品紹介ページを見ていただくとして、ここでは開発者から見て「帳票クリエータ Ver.2」って何なのか、ということについて書いてみたいと思います。
シーオーリポーツはライブラリ、帳票クリエータはフレームワーク
よくお客様からお問い合わせいただくのが、「シーオーリポーツと帳票クリエータって何が違うの?」というご質問です。確かにどちらも帳票を作成するツールですし、レイアウトを設計するフォームエディタや閲覧用のビュアーもいっしょですから、違いはいまいちわかりにくいですよね。一番の違いは、帳票出力を制御する部分なんです。
シーオーリポーツの帳票出力エンジンである描画ライブラリは、帳票出力に必要なプリミティブな機能を提供する、シンプルなライブラリです。ユーザプログラムからの呼び出しは柔軟に行える一方、制御は1から10までユーザプログラムで行わなければなりません。また、データソースとの連携機能もないため、データベースへの接続やCSVファイルの読み込み等もユーザプログラムで行う必要があります。
これに対して、帳票クリエータは帳票出力の土台を提供するフレームワークと考えることができます。データソースとの連携や出力帳票形式をGUIのマッピングツールで定義すれば、あとはその設定情報を元に、帳票出力の制御は帳票クリエータが行います。帳票によって必要な処理(たとえば、取得データがマイナスの数値だったら文字色を変えるとか、明細リストがいっぱいになったら合計を計算するとか)は、必要なところだけイベントリスナとして追加できるので、シーオーリポーツよりもユーザプログラムの記述量はかなり少なくなります。
スクリプティング on 帳票クリエータ Ver.2
前述のように、帳票クリエータではイベントリスナとしてユーザプログラムを追加できる、イベント駆動型の開発をサポートしています。以前のバージョンの帳票クリエータでは、イベントリスナはJavaやVB.NETなどのプログラミング言語で記述、コンパイルして追加する必要がありました。
public class SampleEventListener implements IFormOpenedEventListener { public void formOpened(CrFormEvent e) throws CrException { // フォームオープン後にレイヤ0を不可視に設定します。 e.getCrForm().getCrLayer(0).setVisibleAtPrint(false); } }
帳票クリエータ Ver.2では、イベントリスナはJavaScriptでも書けるようになりました。もちろん従来どおりJavaやVB.NETでも記述できますが、簡単な条件分岐等はマッピングツール上でスクリプトを書いてすぐにプレビュー、結果を確認することができてお手軽です。スクリプトはXMLの設定ファイル中に保持されるため、運用段階に入ってもデプロイ等の手間無く、再編集して動作を変更することも可能です。
<Script on="formOpened"> // フォームオープン後にレイヤ0を不可視に設定します。 $L(0).visibleAtPrint = false; </Script>
スクリプトエンジンは、JavaではSun JavaSE6に標準で搭載されているRhino、.NETではMicrosoft JScriptを利用しています。ECMAScript3で標準的に用意されている関数やオブジェクトはもちろん、Java/.NET Frameworkのクラスライブラリもスクリプト中で使用できます。独自の関数を定義し、それを複数の帳票でインクルードして再利用することもできるようになりました。
複数のデータソースとの連携
従来の帳票クリエータでは、1レポートにつきひとつのデータソースしか関連づけることができませんでした。このため、複数のフォームを切り替えて使用する帳票や、フィールドによって別々のデータソースを割り当てたい場合(例えばヘッダ項目はDBから取得するけど、明細リストの中身はCSVだったり)などには、うまく対応することができませんでした。
帳票クリエータ Ver.2では、データソースのスキーマをレコードセットという形で構築します。レコードセットは複数定義でき、入れ子表現も可能です。これにより、「帳票側で欲しいデータ」と「実際のデータ」のミスマッチを解消できるようになりました。
WEB API(for Java)/WebService(for .NET)
帳票クリエータ Ver.2 for Javaに用意されているWEB APIは、ウェブ経由で帳票クリエータを使用するためのAPIです。以前のバージョンではApache AXIS 2が必要でしたが、今回のバージョンからJAX-RSに対応したため、一般的なサーブレットエンジンとJerseyやRESTEasy等のJAX-RSの実装があれば動作します。REST形式であるため、Ajax等を利用して呼び出すことも簡単にできます。
帳票クリエータ Ver.2 for .NETに用意されているWebServiceは、帳票クリエータ Ver.2 for JavaのWEB APIと同様のREST形式のインタフェースに加え、SOAP形式でのアクセスにも対応した、ASP.NETアプリケーションです。Visual Studioで「Web参照」を使用すれば、ローカルのライブラリを使用するのと変らない感覚で利用できます。
体験版
というわけで、新しくなった帳票クリエータ、ぜひダウンロードして試してみてください!と言いたいところなのですが、実はまだ体験版のご用意ができておりません。すみません。。。近日中に公開しますので、もう少々お待ちください。。。