作成:小沢仁 株式会社レジェンド・アプリケーションズ
このチュートリアルで習うこと
- コンポーネントの共通プロパティ
- コンポーネントの追加、選択、配置
- 配置用のツール
- 画像コンポーネント
- 文字列表示用のコンポーネン
- フレームコンポーネント
- 改ページ及び列ブレーク
- ハイパーリンク及びブックマーク
- サブレポート
- カスタムコンポーネント
レポートレイアウトに配置できるコンポーネントはパレット・ビューにあります。これのコンポーネントをレポートレイアウト編集領域にドラッグ&ドロップ操作します。
コンポーネントの共通プロパティ
すべてのコンポーネントは次のプロパティを共通しています。それらのプロパティはプロパティ・ビューから編集することができます。
プロパティ・ビューには次ぎのようなタブがあります。選択されたコンポーネントで設定できるプロパティによって表示されます。また、プロパティ・ビューの表示幅によっては隠されている場合があります。その場合は、タブ行の右に表示される「>>」をクリックすると選択可能なタブが表示されます。
- 外観:レポートレイアウトに配置したコンポーネントの位置、大きさ、色、スタイル、表示条件などを指定するプロパティ
- 枠:枠線のスタイル、幅、色などを指定するプロパティ
- 画像:画像のプロパティ
- 固定文字:固定文字列のプロパティ
- テキスト:フィールドなどレポートを生成する時に文字列を設定するコンポーネントのプロパティ
- 継承:親要素から継承しているプロパティ
- ハイパーリンク:コンポーネントにハイパーリンクを定義するためのプロパティ
- 詳細:コンポーネントに設定できるすべてのプロパティ
新しくコンポーネントをレポートレイアウトに配置するとコンポーネントに直接プロパティは設定されていません。しかし、レポートを生成することはできます。この場合は、JasperReportsのデフォルト設定でレポートは生成されます。
コンポーネントの追加、選択、配置
コンポーネントの配置と削除
コンポーネントをレポートレイアウトに配置するには、パレット・ビューからそのコンポーネントを配置したい領域にドラッグ&ドロップします。新しくコンポーネントが作成されます。配置する度に新しいコンポーネントが配置されます。
コンポーネントを削除する場合は、削除したいレポートレイアウト上のコンポーネントを右クリックして「削除」を選択します。パレット・ビューからコンポーネントを削除することはできません。
コンポーネントの選択
コンポーネントは次の2通りで選択することができます:
- レポートレイアウトに配置されているコンポーネントをクリックする
- アウトライン・ビューから、コンポーネントが配置されれいる領域を展開して、表示されるコンポーネント一覧からコンポーネントを選択する
複数のコンポーネントのプロパティを一斉に変更したい場合は、複数のコンポーネントを選択します。
複数のコンポーネントを選択する場合は、マウスの左ボタンを押下しながら選択したいコンポーネントを囲むか、Shiftキーを押下しながら選択したいコンポーネントを選択します。
選択されている状態でプロパティ・ビューからプロパティを編集すると、選択されているすべてのプロパティの値が変更されます。選択されたコンポーネントの共通プロパティが既に設定されている場合は、値が同じであればその値が表示されますが、値が異なっている場合は空白となります。また、異なる種類のコンポーネントが選択されている場合は、プロパティ・ビューには共通したプロパティのみが表示されます。共通していないプロパティは個別に編集してください。
位置調整
次の複数の方法でコンポーネントの位置を調整することができます:
グリッドを使ての位置調整
グリッド線に合わせてコンポーネントを配置することができます。
グリッド線を表示するには、「表示」->「グリッドを表示」を選択します。
コンポーネントをグリッド線に合わせる場合は、「表示」->「グリッド線に合わせる」を選択します。
領域を使ての位置調整
コンポーネントの左上の座標はコンポーネントが配置されている領域又はフレームの左上からの相対位置です。
コンポーネントを別の領域に移動する場合は、アウトライン・ビューからコンポーネントを別の領域にドラッグ&ドロップして下さい。
注:レポートレイアウトからコンポーネントを別の領域にドラッグ&ドロップした場合は、画面上では別の領域に配置されたように見えますが、実際には別の領域に移動されていません。そのため、レポートを生成するとコンポーネントが領域外に配置されているのでエラーになります。
注:コンポーネントの全体が1つの領域に収まっていないとエラーになります。収まっていない場合は、領域の大きさを拡大するか、コンポーネントの大きさを縮小してください。
ガイド線を使ての位置調整
コンポーネントを移動または大きさを変える場合、Jaspersoft Studioは領域、他コンポーネントを考慮してガイド線を表示します。
ガイド線を予め表示したい場合は、ルーラー目盛りをクリックして表示されるガイド線を設定したい位置までドラッグします。
ガイド線を削除するには、ルーラーでガイド線をレポートレイアウトの左及び上へドラッグします。
プロパティを使っての位置調整
プロパティ・ビューからコンポーネントのx/y座標を指定することができます。
コンポーネントをレポートレイアウト又はアウトライン・ビューから選択して、プロパティ・ビューの「外観」タブのX及びYに座標を入力します。
配置用のツール
コンポーネントをレポートレイアウトに配置するのを支援するためにツールが用意されています。コンポーネントを右クリックすると使えるツールが表示されます。
ツールによって複数のコンポーネントの選択が必要です。次の表は配置用のツール一覧です。「複数選択」が「○」の場合は、ツールの使うのに複数のコンポーネントの選択が可能です。
レイヤー
アイコン | ツール名 | 説明 | 複数選択 |
前面へ移行 | コンポーネントを上のレイヤーへ移動する | ○ | |
最前面へ移動 | コンポーネントを一番上のレイヤーへ移動する | ○ | |
背面へ移行 | コンポーネントを下のレイヤーへ移動する | ○ | |
最背面へ移動 | コンポーネントを一番下のレイヤーへ移動する | ○ |
アイコン | ツール名 | 説明 | 複数選択 |
左を揃える | 左側を揃える | ○ | |
中央を揃える | 中央を揃える | ○ | |
右を揃える | 右側を揃える | ○ | |
上を揃える | 上を揃える | ○ | |
中心を揃える | 中心を揃える | ○ | |
下を揃える | 下を揃える | ○ | |
中心を揃える | 中心を揃える | ○ |
アイコン | ツール名 | 説明 | 複数選択 |
幅を合わせる | コンポーネントの幅を合わせる | ○ | |
高さを合わせる | コンポーネントの高さを合わせる | ○ | |
大きさを合わせる | コンポーネントの大きさを合わせる | ○ |
アイコン | ツール名 | 説明 | 複数選択 |
幅を揃える | コンポーネントの幅をコンテナー(例:領域、フレーム)の幅にする | ○ | |
高さを揃える | コンポーネントの高さをコンテナー(例:領域、フレーム)の高さにする | ○ | |
大きさを揃える | コンポーネントの大きさをコンテナー(例:領域、フレーム)の大きさにする | ○ |
アイコン | ツール名 | 説明 | 複数選択 |
水平揃え | コンポーネントをコンテナー(例:領域、フレーム)の中央に揃える | ○ | |
垂直揃え | コンポーネントをコンテナー(例:領域、フレーム)の中心に揃える | ○ |
アイコン | ツール名 | 説明 | 複数選択 |
最大領域の高さ | 領域の高さを最大にする | N/A | |
内容に合わせる | コンポーネントの大きさを動的に内容が必要とする大きさに合わせる | N/A | |
PDF 508タグ | |||
XLSタグ |
画コンポーネント
画コンポーネントとは線、長方形や画像のように図を描くコンポーネントです。他のコンポーネントと同じく、図コンポーネントもパレット・ビューからレポートレイアウトにドラッグ&ドロップして配置します。
線
Jaspersoft Studioの線とは長方形の対角線です。デフォルトでは線の色は前景色で、線幅は1ピクセルです。線をレポートレイアウトに配置してから、プロパティ・ビューで線色、線幅などを設定を行ってください。
ノート:対角線のため、角度があります。水平線や垂直線を描く場合は、線コンポーネントではなく、領域の枠線、フレームなどコンポーネントの枠線、及び長方形コンポーネントを使うことを推奨します。
長方形と楕円
長方形コンポーネントは他コンポーネントの回りに線を引く場合に使います。デフォルトでは線の色は前景色で、線幅は1ピクセルです。
Jaspersoft Studioの楕円は長方形の中に描かれます。デフォルトでは線の色は前景色で、線幅は1ピクセルです。透明でない場合は楕円の背景色は楕円が配置された領域及びコンポーネントの背景色になります。
画像
画像コンポーネントはGIF, PNG, JPEGなど画像をレポートに表示する場合に使います。
画像コンポーネントをレポートレイアウトにドラッグ&ドロップすると「画像配置」ダイアログが表示されます。このダイアログで画像の場所を指定します。即ち、Jaspersoft Studioは画像そのものを保存しません。画像のパス及びURLのみを保存します。画像はレポートが生成される時に読み込まれてレポートに埋め込まれます。画像のパスにはデータベースのフィールドや変数の値を指定することもできます。
注1:画像のパスにはファイルシステムの絶対パス(ドライブ名を含めたパス)を指定することもできます。但し、レポートを異なる環境で使う場合はパスが異なるのでレポートの作成中にエラーになります。
注2:画像コンポーネントの大きさを実際の画像の大きさよりも大きくすると、階層度が落ちます。
余白と枠線
画像コンポーネント、テキストコンポーネント、固定文字列コンポーネントなどでは余白を指定することができます。余白とはコンポーネントの枠から内容を表示する間隔です。
余白は次のように設定できます:
- コンポーネントを選択
- プロパティ・ビューの「枠」タブを選択
- 余白に値(ピクセル)を入力
文字列表示用のコンポーネン
レポートに文字列を表示するコンポーネントは2つあります。一つは固定文字列コンポーネントです。もう一つはテキストコンポーネントです。固定文字列コンポーネントはレポートに静的な文字列を表示する場合に使います。テキストコンポーネントはデータベースから取得した値や変数の値など、レポートを生成するときに動的に値を設定する場合に使います。ただし、ロケールによって表示する文字列を変える場合やハイパーリンクを設定する場合は、テキストコンポーネントを使ってリソースバンドルやハイパーリンクを指定します。
固定文字列コンポーネント
レポートの同じ文字列を表示する場合は、固定文字コンポーネントを使うことができます。固定文字コンポーネントに文字列を設定する場合は次の手順で行います:
- 文字列を設定する固定文字コンポーネントを選択する
- プロパティ・ビューの「固定文字列」タブを選択する
- 項目「文字列」に文字列を入力する。文字列を直接記述してください。引用符で囲わないでください。
テキストコンポーネント
テキストコンポーネントは文字列を表示します。固定文字列コンポーネントと同じように固定文字列を表示することもできますが、レポートを生成する時に動的に文字列を設定したり、表示形式を指定することができます。
テキストコンポーネントに固定文字列を設定する場合は次の手順で行います:
- 文字列を設定する固定文字コンポーネントを選択する
- プロパティ・ビューの「テキスト」タブを選択する
- 項目「定義」に文字列を入力します。文字列は次のように引用符で囲んでください:
"テキストフィールド"
データ型 | ||
java.lang.Object | java.sql.Time | java.lang.Long |
java.lang.Boolean | java.sql.Double | java.lang.Short |
java.lang.Byte | java.sql.Float | java.lang.BigDecimal |
java.lang.Date | java.sql.Integer | java.lang.String |
java.lang.Timestamp | java.sql.InputStream |
注2:定義にデータ型を指定しないとパターンが適用されず、表示形式が間違っている場合もあります。
テキストコンポーネントを利用された場合は、静的文字列の他にフィールドの値、変数の値、リソースバンドルの値なども表示することができます。また、日付、時刻、数字、通貨などを表示する場合は表示形式を指定することもできます。
表示形式は次の手順で指定します:
- 文字列を設定する固定文字コンポーネントを選択する
- プロパティ・ビューの「テキスト」タブを選択する
- 項目「パターン」に表示形式を指定する
nullの場合は空白 | 有効に設定された場合は、定義の結果がnullの場合はなにも印刷しません。無効な場合は、結果がnullの場合は文字列「null」が印刷されます。 |
評価時点 | 定義をどの時点で評価するか |
評価グループ | グループで定義を評価する場合にグループを指定 |
オーバーフローの場合は拡張 | 文字列が長くて配置されたコンポーネントに収まらない場合は、自動的にコンポーネントの大きさを広げる |
パターン | 定義を評価した結果を表示する形式 |
フレームコンポーネント
フレームには他のコンポーネントを配置することや枠線を設定することができます。なお、フレームには再帰的にフレームを配置することができます。フレームに配置されたコンポーネント一覧は、アウトライン・ビューからフレームを展開すると表示されます。
コンポーネントの回りに線を描くだけでしたら、長方形を使って描くこともできますが、長方形は他コンポーネントを配置することができません。フレームの場合はフレームを移動すると、フレームに配置されている他コンポーネントも移動されますが、長方形の場合はそれらのコンポーネントを手動で移動する必要があります。
なお、フレームに配置されたコンポーネントの内容に合わせて、フレームの大きさを動的に拡張するように設定することができます。
その代わり、JasperReportsはレイヤーHTMLに対応していないため、重ねられたフレームは正しくHTML形式に出力されません。
フレームにコンポーネントに配置する方法は3通りしますが:
- パレット・ビューからコンポーネントをフレームにドラッグ&ドロップする
- レポートレイアウトに配置されているコンポーネントをフレームにドラッグ&ドロップする
- アウトライン・ビューに表示されているコンポーネントをフレームにドラッグ&ドロップする
改ページ及び列ブレーク
改ページ及び列ブレークは強制的に新しいページ及び新しい列に切り替える時に使います(1列しかないレポートの場合は、列ブレークは改ページと同じ効果になります)。
改ページ及び列ブレークはレポートレイアウトでは横線として表示されます。また、プロパティ・ビューのから改ページと列ブレークの切り替えを行うことができます。切り替えを行う場合は次の手順で行います:
- 改ページ又はブレークを選択する
- プロパティ・ビューから「ブレーク」タブを選択する
- 改ページに変更する場合は種類を「ページ」に変更する。列ブレークに変更する場合は種類を「列」に変更する
ハイパーリンク及びブックマーク
画像、テキストフィールド、グラフコンポーネントはハイパーリンク用のアンカー(リンク先)として設定することも、ハイパーリンクを設定することもできます。
アンカー、ブックマーク、ハイパーリンクの設定は、プロパティ・ビューの「ハイパーリンク」タブから行います。
アンカーとブックマーク
アンカーとはページの箇所を特定する位置付けです。ハイパーリンクにアンカーを指定すると、ページ内に設定されたアンカーの箇所が表示されます。
ブックマークを定義すると、レポートをPDF形式で出力した場合にPDFブックマークも生成されます。アンカーを使う場合は、「ブックマークレベル」を1以上に設定してください。
ハイパーリンク
ハイパーリンクを設定すると、レポートで設定した箇所をクリックすると別のレポート及びWebページを表示することができます。なお、ハイパーリンクは文字列だけでなく、グラフの部分に設定することもできます。例えば円グラフの場合は、スライス毎に異なるハイパーリンク先を設定することができます。棒グラフの場合は、棒毎に異なるハイパーリンク先を設定することができます。
ハイパーリンクは次の手順で設定します:- ハイパーリンクを設定するコンポーネントを選択します
- プロパティ・ビューから「ハイパーリンク」タブを選択します
- 「リンク先」を設定します。 自分(デフォルト):同じウィンドウにページを開く(即ち、ページをリンク先に移動する)
ブランク:新しいウィンドウを開く(HTML及びPDF形式に出力する場合に使う)
トップ:現ウィンドウで開く。フレーム内で開ければいる場合は、フレーム無で表示する。HTMLとPDF形式で出力する場合に使う。
親:親ウィンドウで表示する。HTMLとPDF形式で出力する場合に使う。 - 「リンクタイプ」ドロップダウンリストから「なし」、「参照」、「ローカルアンカー」、「リモートアンカー」、「リモートページ」、「リモート実行」かのいづれを選択する。
- ハイパーリンクを設定する条件に付ける場合は「ハイパーリンク条件」ボタンを押下して条件を入力します。
- ツールチップを設定する場合は「ハイパーリンクツールチップの定義」ボタンを押下して定義を入力します。
- レポートを保存します。
ハイパーリンクの種類
Jaspersoft Studioには6種類のハイパーリンクが用意されています:参照、ローカルアンカー、ローカルページ、リモートアンカー、リモートページ、レポート実行。それ以外のハイパーリンクタイプを開発してJasperReportにプラグインすることができます。
次はJaspersoft Studioが標準でサポートしているハイパーリンクとその説明です:
参照 | URLで指定された外部リソース。ドリルダウンを使う場合などにドリルダウンページを指定するのに使われます。 |
ローカルアンカー | 同じページ内の違う箇所へのリンク。例えばページの目次からその内容へのリンク。 ローカルアンカーを設定する場合は、リンク先を特定するアンカーの定義も必要です。 |
ローカルページ | レポートの特定のページへのリンク。ページ番号を指定するための定義を行います。 |
リモートアンカー | 外部ドキュメントの特定箇所へのリンク。外部リソースのURLとそのリソース内に定義されているアンカーの指定が必要です。 |
リモートページ | 外部レポートの特定のページへのリンクです。外部レポートのURLとページの指定が必要です。 |
レポート実行 | JasperServerのドリルダウン機能で使われているハイパーリンクです。 |
ハイパーリンクのパラメータ
ハイパーリンクにパラメータを設定する場合、リンクパラメータテーブルを使って定義することができます。パラメータを式で定義することができます。パラメータはURLに追加されるので、文字列である必要がありますが、カスタムリンクタイプを使う場合は別の型のパラメータを使いたい場合があります。
ハイパーリンクツールチップ
マウスカーソルがハイパーリンクが設定された要素の上に移動された場合に表示する文字列です。
サブレポート
サブレポートコンポーネントは別のレポートを埋め込む場合に使います。同じデータ接続を使うことが前提とされていますが、異なるデータソース定義(別のSQL文)を使うことができます。
サブレポートには次のプロパティがあります:
サブレポート定義 | サブレポートを識別する定義です。 |
サブレポートクラス | サブレポート定義の型です。 |
キャッシュを利用 | サブレポートをメモリーに保管するか指定します。例えば、サブレポートを詳細領域に配置した場合は、繰り返し呼び出されるのでメモリーに保管した方が処理時間が短くなります。 |
接続/データソース | サブレポート用のデータを読み込むJDBC接続及びデータソースです。データソースを指定しない場合は、「データタイプが無い場合」を「^すべてのセクション、詳細なし」に設定していないと何も表示されない場合があります。 |
パラメータマップ | サブレポートに引き渡すパラメータです。java.util.Map型です。 |
サブレポートパラメータ | 動的に引き渡すパラメータです。 |
サブレポート返却値 | サブレポートからの値をどのローカル変数に設定するかです。 |
- パレットからサブレポートコンポーネントをレポートレイアウトにドラッグ&ドロップする。
サブレポートウィザードが開きます。次の3つの選択があります:- 新しいレポートの作成:メインレポートと異なるデータ及びデータソース(SQL文)を使う場合に選択
- 既存レポートの選択:既に使うデータ及びクエリーがある場合に選択
- サブレポート要素のみの作成:サブレポート用のプレースホルダを作成
- 「新しいレポートの作成」を選択します。「次へ >」ボタンを押下します。
「レポートテンプレート」ウィンドウが開きます。 - サブレポートで使うテンプレートを選択します。今回は「空白」テンプレートを選択します。
「次へ >」ボタンを押下します。 - 「レポートファイル」ウィンドウが開きます。サブレポートの保存先を指定して「次へ >」ボタンを押下します。
- 「データソース」ウィンドウが開きます。
- メインレポートと同じデータアダプタを選ぶこともできますが、別のデータアダプタを選ぶこともできます。
チュートリアルように「Sample DB」を選択して、次のSQL文を入力します:
SELECT COUNT(*), shipcity FROM orders GROUP BY shipcity
すべてのフィールドを選択して右へ移動した後に「次へ >」ボタンを押下します。 - グループを行わないので「次へ >」ボタンを押下します。
「接続」ウィンドウが開きます。 - メインレポートと同じデータベースか別のデータベースに接続することができます。
チュートリアルでは「マスタレポートと同じ接続を使う」を選択します。
「次へ >」ボタンを押下します。 - 「サブレポートパラメータ」ウィンドウが開きます。
- サブレポートで使うパラメータの定義を行います。チュートリアルではパラメータを使いませんので何も追加しません。
「完了」ボタンを押下します。 - レポートから「題名」と「サマリー」以外の領域をすべて削除します。
カスタムコンポーネント
説明したコンポーネント以外にJaspersoft Studioには2つのコンポーネントがあります。一つは「カスタムコンポーネント」です。もう一つは「汎用コンポーネント」です。これらの2つのコンポーネントは開発者用に用意されています。
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now