一. 概要
1.問題の説明
帳票の形式は時には非常にシンプルで、単一データソースの明細を表示する帳票にすぎないのに対して、データ量が非常に多く、百万、千万やそれ以上に達する場合もあります。そうなると、帳票クエリ及び計算時間が非常に長くなります。帳票の表示速度を高めることにより、ユーザは帳票クエリが遅れていると感じなくなります。
2.ソリューション
単一データセットの詳細帳票については、グリッドエンジンを使って帳票を実行することにより、帳票の表示速度を高め、使用体験を改善することができます。
二.グリッドエンジンの概要
1.仕組み
一般帳票:全てのデータを読み込んでから帳票を実行し、最後に全体の帳票結果をブラウザに戻します。ユーザのアクセスから結果表示までの時間=帳票クエリ時間+帳票実行時間になります。
グリッドエンジン帳票:クエリしながら帳票を実行し、閲覧するページのみを表示します。ユーザのアクセスから結果表示までの時間=トップページデータ読み取り時間+トップページ計算時間になります。
2.グリッドエンジン属性
帳票はデフォルトでグリッドエンジンを無効にしています。帳票のデータ量が多く、あまり複雑でない場合、当該属性を使用することができます。
ページ別にクエリして帳票を実行すると、帳票の実行時間を大幅に短縮し、ユーザ体験を改善することができます。
メニューのテンプレート-帳票エンジン属性をクリックすると、次のように帳票エンジン属性画面が表示されます。
三.注意事項
1.グリッドエンジンは一部機能に非対応
グリッドエンジン帳票は性能を重視します。その働く仕組みから分かるように、グリッドエンジン帳票は、各ページの計算が独立していなければなりません。即ち、帳票にはセルに関連した複雑な演算などがあってはなりません。
グリッドエンジン帳票の性能を高めるため、FineReportは次に示す一部複雑な機能に対応できないようにしています。
セルのフィルタリング、セルフィールドの集計や合計に対応できません。
重複するフッダ行に対応できません。
条件属性は行の高さ、列の幅、ハイパーリンク、行の後に改ページ、形態、ウィジェットに対応できません。
上から下への拡張属性だけに対応し、他の属性の設定には対応できません。
フローティング要素、レベル座標、段組み、Sheet間の計算に対応できません。
改ページプレビューによるチャート表示、子帳票には対応できません。
セル内容ヒントに数式を使用できません。
ページ別、sheet別にExcelファイルをエクスポート出来ません。
データ列の結果セットフィルタに対応できません。
グループ別に帳票を表示できません。
$$$を使ったパラメータ転送に対応できません。
2.グリッドエンジンのページ別クエリ
グリッドエンジンのページ別クエリはOracle、MySQL、HSQL、SQL Server 2012以上のバージョンのデータソースのみに対応します。
例えばSqlite,Access,SQL Server 2005など、その他のデータベースは手動で改ページSQLを作成した場合にのみ、ページ別クエリを実現できます。
改ページSQL作成に必要なデータベースについては、 単一データセット改ページSQLによる階層帳票の実現の節をご参照ください。
備考: SQL Server 2012 及び以上のバージョンはグリッドエンジンに対応します。但し、order byを必ずSQL文に入れください。
備考:データ量が多い時はタイムラグが発生しないように、ページ別に演算し帳票を段階的に実行を選択してください。
3.マルチデータセット帳票
グリッドエンジンは、単一データソース帳票のみに対応し、マルチデータセット帳票はグリッドエンジンで改ページ表示することができません。マルチデータソースの階層帳票については、 マルチデータセットの階層帳票をご覧ください。
4.エンジンプラグイン
ユーザのアプリケーションシナリオがグリッドエンジンに対応しない場合、 新しい計算エンジンプラグインを使ってみてください。当該プラグインはマルチデータソースにおける改ページクエリ機能を実現し、ユーザは複雑な改ページ SQLまたはJSボタンを再入力する必要がなく、帳票のトップページを速やかにロードすることができます。
備考:当該プラグインはOracle、SQL Server、MySQL、HANA、PostgreSQL、Impala、DB2など、ほとんどの主流のJDBCデータソースに対応します。
三.事例
MySQLを例に、Ordersのデータをグリッドエンジンで表示し、各ページに30行表示にします。
1.新規テンプレート
1.1 新規データセット
テンプレートを新規作成し、データセット ds1を新しく増やします。MySQLデータベースに接続し、SQL文は次の通りです。
SELECT * FROM Orders
1.2 テンプレート設計
次に示すように、テーブルのすべての列をテンプレートの本体にドラッグします。
2.グリッドエンジン設定
テンプレート-帳票エンジン属性を選択し、グリッドエンジンで帳票を実行にチェックを入れます。
下の図に示すように、その下のページ別に演算し帳票を段階的に実行を選択し、ページ毎の件数はデフォルト値の30を使用します。
注:データ量が多い時はタイムラグが発生ないように、「ページ別に演算し帳票を段階的に実行」を選択してください。
3.効果プレビュー
「改ページプレビュー」をクリックすると、次のように表示されます。