帳票ベンダ・インタビュー 第18回

Javaプログラミングなら
日本帳票の細部も再現できる


吉田育代
2007/9/11

日本の帳票は欧米のそれと比べて緻密な作りになっていて電子化が難しい。その手段としてJavaプログラミングはどこまで有効なのか?
- PR -

 オープン環境の企業情報システムにおいて、帳票ニーズはいまどのような状況になっており、それに対して帳票ベンダはどのようなソリューションを提供しているのか。帳票ベンダへの直接取材でその解を探るシリーズ。第18回は、クエスト・ソフトウェアの“JClass ServerReport”を取り上げる。

 これは、サーバサイドJava環境で動作するレポートコンポーネント。緻密(ちみつ)な帳票設計を可能にするため、あえてAPIを利用したプログラミングを前提とするという、ある意味この分野の製品トレンドの逆を行く製品である。しかし、それだけに日本の複雑な帳票要件を満たせるものになっている。

 

Javaで緻密な帳票開発を実現する
サーバサイド・コンポーネント

 企業情報システムにおいて、業務アプリケーションのWeb化が進んでいる。クライアント端末の管理やアプリケーションのバージョンアップ対応、その工数やコストを考えると、どうしても自然とそういう方向へ向かわざるを得ないであろう。Web化するタイミングで全面的にJavaを採用、システム基盤を大きく構築し直すという話もよく聞く。

 そこで起こる1つの問題が、帳票環境をどうするかということだ。Javaを採用するのはいいのだが、だからといってそのことで帳票の品質を低下させることはできない。特に、行政機関などに提出する、フォーマットが細部まで決められた帳票作成が、Web化によって実現できなくなるとしたら、これは深刻な問題である。システムインテグレータが“これはJavaの仕様に起因するものです”と説明しても、エンドユーザーとしては納得できる言い訳ではない。

 困ったシステムインテグレータが市場を探してたどり着く帳票開発環境があるという。クエスト・ソフトウェアの“JClass ServerReport”がそれだ。サーバサイドJava環境でサーブレット/JSP(Java Server Pages)として動作するアプリケーションで、サーバサイドのコンテナがこの製品を呼び出すことでレポートの作成を行い、それをクライアントに配信する。グレープシティが日本語版を同社のラボとともに共同開発、2003年4月より販売代理店を務めている。現在の最新バージョンは2006年6月にリリースされた5.5Jだ。

 

思いどおりの帳票を作成するためには
プログラミングが必要

 帳票関連ツールの分野においては、開発者にできるだけプログラミングをさせずに帳票設計・作成を行うというのが、一般的な製品思想だろう。しかし、このJClass ServerReportは考え方で逆を行く。まず、プログラミングありきなのだ。“レポートデザイナ”と呼ばれるGUIベースのデザインツールは存在するが、それが担当するのは、帳票の大体のレイアウトだけ。実際にどうデータを流し込むかは、提供されている帳票作成APIを使って、開発者がプログラミングで行う。

 日本語版製品の販売を担当するグレープシティ株式会社 関東支社 エンタープライズツール事業部 大島章太郎氏は、この点について次のように語る。

グレープシティ株式会社 関東支社 エンタープライズツール事業部 大島章太郎氏
グレープシティ株式会社 関東支社 エンタープライズツール事業部 大島章太郎氏

 「ノンプログラミングでさくさく帳票設計をしたい要望もありますが、その用意された機能を超えた思いどおりの帳票を作りたいというシステムインテグレータやエンドユーザーも少なくありません。“この位置に、このデータを、ピンポイントで出力したい”という、緻密な帳票設計ニーズに応えるために、JClass ServerReportはプログラミングでそれを実現するよう作られています」

 プログラミングにより出力位置をインチやポイント、センチメートル単位で指定できるため、白地図画像の上に市町村の名前を位置を合わせて印字するというようなこともできるという。

JClass ServerReportの帳票設計の仕方

 もう少し具体的に帳票設計の流れを説明しよう。まず、“レポートデザイナ”を利用して、帳票の“フレーム”を形作る。JClass ServerReportには、帳票は複数の“フレーム”から構成されるドキュメントであるという思想があり、画面上に、ヘッダのフレーム、文字列フレーム、表のフレーム、フッタのフレームなどという形でパーツをデザインしていく。しかも、ページごとの処理フローも細かく定義できるのだ。

図1 “レポートデザイナ”でのデザイン例
図1 “レポートデザイナ”でのデザイン例 出典:グレープシティ(クリックして拡大表示)

 利用する書式やテーブルのスタイル自体は、この“レポートデザイナ”で定義できる。フォントの種類や文字のサイズを設定したもの、テーブルのけい線の種類、色、太さを設定したものなどがXML形式で登録でき、プログラミングの際には最初にこれらのスタイルを指定する。このような書式とソースコードの分離によってJavaの再コンパイルを不要とするので、開発生産性を高めることができる。

日本の業務帳票特有の複雑さを再現するための技術

 海外製品でありながら、日本の業務帳票特有の複雑な表作成にも対応する。JDBCデータベースや、JavaのGUI技術の1つであるSwingのJTableオブジェクトからのデータインポートに対応、行方向、列方向のセルマージなども行える。JClass ServerReportのAPIは、ドキュメントの中のテーブル、テーブルの中のセルといった具合にツリー構造で分かりやすい設計になっていて、ひとたびプログラミングスタイルを理解してしまえば、フレームやテーブルへのデータの流し込みはルーチンワーク的に作業ができるという。

 また、製品にはさまざまなサンプルコードが付属しているため、一般的な帳票であれば、それをカスタマイズする形で設計を進めていけるようだ。

外字・顔文字のような画像の挿入が可能

 もう1つ、この製品には文字列データの任意の場所にイメージデータを挿入することが可能というユニークな特長を持っている。それも上詰め、下詰めなど位置も柔軟に指定できる。機能の1つに、出力先フレームを特定せず、コンテンツの流し込みを行うフローというものがあり、これを利用すると、複雑なプログラミングを行うことなく、文字列とイメージデータの入り交じったコンテンツが作成できる。

図2 顔文字画像を外字のように文字列の途中に埋め込んだ例
図2 顔文字画像を外字のように文字列の途中に埋め込んだ例 出典:グレープシティ

 日本語の帳票でこの機能が一番うまく生かせるのは、“外字”対応だろう。イメージデータとして作成した外字を動的に出力できる。しかも、サーバサイドJava製品だから、クライアント端末に外字データを配布する必要はない。

 

PDFとRTF、出力フォーマットは2種類

 レポートの出力形態は、PDF、そしてMicrosoft Wordなどで読み込み可能なRTFの2種類をサポートしている。

 なぜ、この2種類なのか。それは、PDFが帳票のフォーマットとして最も標準的ととらえているからである。ほかの帳票関連ツールベンダでは、生成スピードを向上させるため、独自のエンジンやフォーマットを用意する場合もある。しかし、JClass ServerReportはPDF出力が前提であり、それが顧客のニーズに沿ったスピードで生成できるかどうかを考えている。

 大島氏によると、「スピードの点はサーバのCPU性能の進化によってカバーできるようになっており、数十枚程度の帳票生成や出力で速度が問題になることはない」という。

RTF対応で編集も可能に

 また、この製品は、帳票を電子ファイルとして保存するという用途で利用されることが多いという。顧客のシステム環境の中に、紙に出力する環境はすでに存在するため、JClass ServerReportは電子ファイルにするこ とに専念してくれればいいというわけである。そうはいっても、PDFにまったく要望がなかったわけではない。それが編集機能だ。PDFで配布された電子帳票では、エンドユーザーが編集を加えることができない。そこで、バージョン5.5Jになって追加されたのが、RTFフォーマットだったというわけだ。RTFであれば、編集を加えた後に再びPDFに変換して保存するということも可能である。

 

40/128 bit RC4暗号化方式と透かし
セキュリティにも配慮

 もう1つバージョン5.5Jとなっての新機能はセキュリティへの配慮だ。40/128 bit RC4暗号化方式により、PDFファイルを開くためのパスワードやドキュメントの印刷、変更、コピー許可などのセキュリティ設定ができるほか、PDFドキュメントにウォーターマーク(透かし)を設定することもできる。

 ただし、前者を実現するには、Java Cryptography Extension(JCE)準拠のRC4暗号化プロバイダが別途必要だ。

 

姉妹製品との併用で、
多様なグラフの入った帳票も作成可

 コラボレーション。これもこの製品の面白い特徴だ。どういうことかというと、姉妹製品である“JClass ServerChart”という製品を併用して、多様なグラフを盛り込んだ帳票を作成できるのだ。Javaイメージオブジェクトとしてグラフを直接JClass ServerReportに取り込めるため、ファイルのI/Oに関するコーディングの必要がないという。

 また、グラフの“イメージマップ機能”を利用することによって、ブラウザに表示したグラフのデータポイントから、詳細なPDFレポートへジャンプするといった使い方もできる。

図3 “JClass ServerChart”を埋め込んだ帳票イメージ
図3 “JClass ServerChart”を埋め込んだ帳票イメージ 出典:グレープシティ (クリックして拡大表示)

 実は、製品の開発順序からいえば、JClass ServerChartの方が歴史が古いという。米国では、多くの企業でホームページやイントラネットでのレポート作成にJClass ServerChartが採用され、これを体裁よく保存したいというニーズが高くなってきたことで、JClass ServerReportが誕生した。クエスト・ソフトウェアがラインアップしているJavaベースの商用コンポーネントとしては一番人気のあるコンビだという。

さらに、バーコード製品とも連携

 グレープシティが日本で独自に提供しているコラボレーションもある。それはバーコード対応で、同社が開発したコンポーネント“JBarCode”を利用すれば、一次元バーコード、二次元コードを帳票に埋め込むことが可能だ。

  中堅中小規模の企業も採用しやすい
比較的安価な価格体系

 JClass ServerReportを使用するには、2つの製品ライセンスを取得する必要がある。1つは、開発に使用するコンピュータのCPU数分必要なCPU開発ライセンスと、開発ライセンスを使用して作成されたアプリケーションを運用する際に使用するサーバマシンのCPU数分必要なCPU運用ライセンスだ。しかし、比較的安価な価格体系となっており、最小構成であれば100万円を切る。1年間のプレミアムサポートも付属するそうだ。

 プログラミングが前提とはいえ、さまざまな顧客の要求にきめ細かく応えることができ、100% Pure Javaで生成されたコンポーネントでマルチプラットフォーム対応であるため、中堅中小規模のシステムインテグレータに帳票開発の切り札として採用されるケースが多いという。

@IT関連記事


Java開発者のためのFAQ集
Java開発者が 最低限押さえておくべきJavaに関する基礎知識、実際のソリューション構築の場面で定石とされるノウハウ、プログラミングTIPSなどのFAQをご紹介していきます

Webアプリケーションにおける帳票の実現
Eclipse BIRTとスプレッドシートでBIレポーティング
帳票ベンダ・インタビュー(17) Eclipseのレポート生成エンジンであるBIRTやExcel互換のスプレッドシートデータなどを使った製品はデータ分析業務の“壁”を崩せるのか?
リッチクライアント & 帳票」フォーラム 2007/8/21
Biz/Browserの印刷機能を強化する帳票生成エンジン
帳票ベンダ・インタビュー(15) 40万クライアントの導入実績を持つアクシスソフトのBiz/Browserに、Javaのクラスファイルとして提供される帳票生成エンジンが登場した
リッチクライアント & 帳票」フォーラム 2007/5/17
帳票開発者のニーズにきめ細かく対応、テンアートニ
帳票ベンダ・インタビュー(5) 多様化するニーズに応えられるよう設計されたWebReportCafeの制御エンジン、デザインツール、管理サーバを見てみよう
Web Client & Report」フォーラム 2005/7/2
企業基幹系システムの変化から生まれた帳票技術
帳票ベンダ・インタビュー(1) 「帳票」技術は企業システム全体の開発生産性や保守性を左右するという。技術が生まれた背景からウイングアークの谷口氏に聞いた
Web Client & Report」フォーラム 2005/2/5
Java TIPS
フリーのライブラリを使いPDFを生成する
PDF文書を生成する(PDFLib)
既存のPDF文書にコンテンツを追記するには
PDFによるJ2EEリッチクライアント計画
本連載では、J2EEのクライアントにPDFを採用することで、開発者がどのようなメリットを得られるのか、全4回の記事で紹介していく。
第1回 J2EEのMVCモデルを変革する“PDF”の正体とは?
第2回 J2EEを拡張するAdobe LiveCycleの全容
第3回 リッチクライアント環境を生かしたセキュアなBPM
最終回 PDF&Flashで強化されるJ2EEリッチクライアント

帳票ベンダ・インタビュー バックナンバー



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間
ソリューションFLASH