Report Builder を使用すると、さまざまな形式のレポートにデータを挿入したり、計算を実行したりすることができます。トラブルシューティングのヒントなどについては、Report Builder オンラインヘルプを参照してください。
グループ化とグループ区切り
情報をグループ化すると、レポートの構成がわかりやくなります。新しいグループごとに個別の見出しを定義したり、グループごとの小計などを各グループ領域の末尾に表示したりできます。たとえば、部門、従業員、給与額を表示するレポートを作成するとします。部門別にデータをグループ化すると、各部門の給与の特性を簡単に把握できます。部門 ID が変わると、ColdFusion Report Builder によってグループ区切りが挿入されます。グループ区切りが挿入されると、グループフッタを表示することによって前のグループが終了され、グループヘッダを表示することによって新しいグループが開始されます。
ColdFusion Report Builder によってデータそのものがグループ化されることはありません。結果セットを取得するために使用する SQL が既に適切な順序でグループ化されていることを確認します。通常、グループ化を実装するには、レポートで使用する SQL SELECT ステートメントで "ORDER BY" 節を指定します。たとえば、次のような SQL SELECT ステートメントを使用します。
FROM Employees |
この例では、2 つのグループを定義できます。1 つ目は Country に対応するグループで、2 つ目は City に対応するグループです。複数のグループを定義すると、[グループ管理] ダイアログボックスに上向きの矢印キーと下向きの矢印キーが表示されます。これらを使用して、グループの階層を制御できます。たとえば、都市は国の中に存在するので、国は都市より上のレベルに移動する必要があります。
グループを定義するには
- メニューバーから [レポート]-[グループ管理] を選択します。
- 「追加」をクリックします。
- [名前] フィールドでグループ名を指定します。
- [グループ] フィールドで、グループ化を制御する値 (グループ式) を指定します。この値の結果が変化すると、実行時にグループ区切りが挿入されます。通常は、クエリフィールドの名前をこれらの値として指定します。ただし、計算フィールドやその他の種類の式をこの値として指定することもできます。グループ式には、次のものがあります。
- クエリフィールド:結果セット内の指定された列の値が変わると、グループ区切りが挿入されます。指定するフィールドは query.country のように、結果セットのソート条件の 1 つである必要があります。
- 計算フィールド:計算フィールドによって返される値が変わると、グループ区切りが挿入されます。例えば、calc.FirstLetter という式がクエリ列の最初の文字を返す場合は、レポートをアルファベット順にグループ化できます。
- ブール式:ブール式によって返される値が変わると、グループ区切りが挿入されます。たとえば、passpercentage 列を基準に結果セットをソートする場合は、query.passpercentage LT 50 というブール式を使用します。
- グループ区切りのオプションを指定します。
- *新規列の開始*
:グループ区切りの位置で新しい列を強制的に開始します。 - 新規ページの開始:グループ区切りの位置で新しいページを強制的に開始します。
- ページ番号のリセット:グループ区切りの位置でページ番号を 1 にリセットします。
- バンドのサイズと印刷情報を指定します。
- グループの最小の高さ:指定した値以上の高さが現在のページに残っていない場合は、新しいページにグループバンドが印刷されます。
- ページごとにヘッダーを再出力:ページごとにグループヘッダが表示されます。
- 「OK」をクリックします。レポートにグループが追加され、グループのヘッダバンドとフッタバンドが作成されます。
- もう一度「OK」をクリックします。
- グループのヘッダーとフッターに、見出し、テキスト、クエリフィールド、計算フィールドなどの情報を追加します。
グループの小計を作成するには
- グループ小計を表示するには、計算フィールドを作成します。次の条件を使用する計算フィールドを作成します。
- データ型を数値に設定します。
- [計算] フィールドで [合計] を選択します。
- [計算の対象] フィールドで、合計を算出するフィールドを指定します。たとえば、部門別従業員レポートでは、query.emp_salary で合計を算出します。
- グループが変わったときにフィールドをリセットするように指定します。
- 計算フィールドをレポートに配置します。
計算フィールドの詳細については、Report Builder オンラインヘルプを参照してください。
フィールドと入力パラメーターの定義、変更、使用
Report Builder は、クエリフィールド、入力パラメーター、計算フィールドを通じて、次のように可変データをサポートします。
- クエリフィールド:レポートで指定されたデータベース結果セット内の列にマッピングされます。指定されたデータベースクエリの列ごとに、クエリフィールドを 1 つずつ定義します。
- 計算フィールド:レポート内の複数の詳細行を分析または合計します。計算フィールドの値はレポートの生成時にダイナミックに計算されます。また、レポート、ページ、列、グループごとに値を再計算することもできます。
- 入力パラメータ:実行時にレポートに渡すデータフィールドを指定します。これらのフィールドは、cfreportparam タグを使用して渡すことも、メインレポートからサブレポートに渡すこともできます。入力パラメーターは、レポートバンドに直接配置することも、計算フィールドへの入力として使用することもできます。
クエリフィールドを定義する
- [ウィンドウ]-[フィールドとパラメータ] を選択します。
- 「クエリフィールド」をクリックします。
- タブの上部にあるプラス記号 (+) をクリックします。
- 名前フィールドの値を入力します。この値は、対応する cfquery ステートメントの列名と一致している必要があります。また、ピリオドは使用できません。
- デフォルトのラベルを入力します。
対応するデータベース列のデータ型を次の中から指定します。
オブジェクト
時間
ロング
ブール値
ダブル
ショート
バイト
フロート
Big Decimal
日付
整数
文字列
タイムスタンプ
BLOB
CLOB
- 「OK」をクリックします。
メモ:結果セット内のすべてのデータベース列に対応するクエリフィールドがクエリビルダーによって自動的に定義されます(拡張クエリビルダーには当てはまりません)。レポートの作成ウィザードの一部としてクエリビルダーを実行した場合も、ウィザードによってクエリフィールドがレポートに配置されます。 |
計算されるフィールドを定義するには
- 「ウィンドウ/フィールドとパラメーター」を選択します。
- 「計算されるフィールド」をクリックします。
- タブの上部にあるプラス記号(+)をクリックします。
- 名前、デフォルトのラベルテキスト、データ型を指定します。データ型のオプションはクエリフィールドと同じです。
- 計算オプションを指定します。
- 計算:実行する計算の種類を指定します。有効な値は、[平均]、[カウント]、[DistinctCount]、[First]、[最高]、[最低]、[なし]、[標準偏差]、[合計]、[システム]、および [変化] です。[なし] を指定する場合、通常は [計算の対象] フィールドを使用してダイナミックな式を指定します。[なし] ([計算の対象] フィールドを使用する場合) と [システム] (独自のスクリプトレットクラスを記述する場合) を除き、これらの種類の計算を使用してグループ、ページ、レポートの合計を算出します。
- 計算の対象:フィールドまたは式を指定します。「...」ボタンをクリックすると式ビルダーが表示されます。
- 初期値:計算フィールドの初期値を指定します。
- 次のリセットオプションを指定して、「OK」をクリックします。
- フィールドをリセット:計算フィールドの値をいつリセットするか指定します。有効な値:「なし」、「レポート」、「ページ」、「列」、「グループ」
- リセットするグループ:「フィールドをリセット」を「グループ」に設定した場合は、このフィールドを使用して、どのグループのグループ区切りが検出されたときにフィールドをリセットするかを指定します。計算フィールドの詳細については、Report Builder オンラインヘルプを参照してください。
入力パラメーターを定義する
- [ウィンドウ]-[フィールドとパラメータ] を選択します。
- [フィールドとパラメータ] パネルで、[入力パラメータ] をクリックします。
- タブの上部にあるプラス記号(+)をクリックします。
- 入力パラメーターの追加ダイアログボックスで、名前フィールドに値を入力します。この値は、レポート定義を使用する cfreport タグに含まれるcfreportparam タグの name 属性などの入力パラメータと一致していなければなりません。
- デフォルトのラベルテキストを入力します。
- データ型とデフォルト値を指定し、「OK」をクリックします。データ型のオプションはクエリフィールドと同じです。
入力パラメータの使用方法の詳細については、このページの「実行時に変数などのデータを渡す入力パラメータの使用」および「サブレポートの使用」を参照してください。
レポートバンドにクエリフィールド、計算フィールド、入力パラメーターを配置する
- 「フィールドとパラメータ」パネルのラジオボタンを使用して、ラベルとフィールドのどちらを配置するかを指定します(両方を指定することもできます)。
- 「フィールドとパラメータ」タブから適切なレポートバンドに、クエリフィールド、計算フィールド、または入力パラメーターをドラッグします。
- 適切なバンドに、クエリフィールド、計算フィールド、または入力パラメーターをドラッグします。
- (オプション)プロパティパネルを使用して、フィールド表示をカスタマイズします。
例えば、query.emp_salary というクエリフィールドと、query.emp_salary の合計を算出する計算フィールドがあり、計算フィールドの値をグループごとにリセットするとします。その場合は、query.emp_salary を詳細バンドに配置し、計算フィールドをグループフッタバンドに配置します。
レポートバンドでのツールボックス要素の使用
イメージ、円、正方形、線、ダイナミックフィールド、チャート、サブレポートなどのグラフィック要素やテキスト要素をレポートバンドに追加するには、ツールボックスを使用します。
ツールボックス要素を最も簡単に追加するには、ツールボックス要素をクリックし、適切なレポートバンド内をクリック & ドラッグして領域を定義します。イメージやテキストボックスなどのツールボックス要素を追加した場合は、ダイアログボックスが表示され、必要な情報を入力するよう求められます。また、[プロパティ] シートを使用すると、すべてのツールボックス要素の外観をカスタマイズできます。
メモ:ツールボックス要素は挿入メニューを使用して追加できます。 |
チャートの詳細については、「チャートの使用」を参照してください。サブレポートの詳細については、「サブレポートの使用」を参照してください。
テキストボックスを作成するには
- ツールボックスの [ラベル] アイコン (abc) をクリックします。
- 適切なバンド内をクリック & ドラッグして、ラベルの領域を定義します。
- [ラベルテキストの編集] ダイアログボックスに、ラベルテキストを入力します。改行を追加するには、Ctrl + Enter キーを押します。
- [OK] をクリックするか、Enter キーを押します。
メモ:ラベルの前後にある空白は自動的にトリミングされます。前後の空白を残すには、ダイナミックフィールドを定義して、式に空白を含めます。たとえば、" My Title " のように定義します。 |
イメージファイルをインポートするには
- ツールボックス内の [イメージ] アイコンをクリックします。
- 適切なバンド内をクリック & ドラッグして、イメージの領域を定義します。
- 「画像ファイル名」ダイアログボックスで、イメージファイルが存在するディレクトリを参照し、ファイルを選択して「OK」をクリックします。
データベースの BLOB 列をイメージのソースとして使用するには
- ツールボックスの [イメージ] アイコンをクリックします (このアイコンには木の絵が描かれています)。
- 適切なバンド内をクリック&ドラッグして、イメージの領域を定義します。Image File Name ダイアログボックスが表示されます。
メモ:「フィールドとパラメーター」タブからレポートバンドに「BLOB」フィールドをドラッグすることもできます。 |
- 「キャンセル」をクリックします。式ビルダーが表示されます。
- [イメージ形式] ポップアップメニューをクリックして [File/URL] を [BLOB] に変更します。
BLOB 列を含むクエリフィールドまたは入力パラメーターを選択します。
メモ:BLOB 列には、GIF 形式、JPEG 形式または PNG 形式のバイナリイメージが含まれている必要があります。
- 「OK」をクリックします。
メモ:この手順は、BLOB 列の内容がイメージとしてレンダリング可能であることを前提としています。 |
矩形、楕円、線を追加するには
- ツールボックスで矩形、楕円、または線のアイコンをクリックします。
- 適切なバンド内をクリック & ドラッグして、領域または線を定義します。
- 選択した要素のサイズを変更するには、要素の周囲にあるハンドルをドラッグします。
メモ:Ctrl キーを押しながら矩形または楕円のサイズを変更すると、要素の形状は常に正方形または正円になります (同じ方法で線のサイズを変更した場合は、常に 45 度の倍数の角度になります)。 |
ダイナミックフィールドを追加するには
- ツールボックスの [フィールド] アイコンをクリックします。
- 適切なバンド内をクリック&ドラッグして、ダイナミックフィールドの領域を定義します。フィールドの追加ダイアログボックスが表示されます(クエリフィールドが定義されていない場合は、式ビルダーが表示されます)。
- 追加するフィールドを選択します。クエリフィールド、計算フィールド、または入力パラメーターを選択した場合は、「フィールドとパラメータ」タブからドラッグした場合と同じ結果になります。
(オプション)「手動で入力される式」を選択します。式ビルダーが表示されます。このオプションは、同じ行で変数を使用した計算を行う場合に便利です。たとえば、注文明細の合計金額を計算するには、次の式を使用します。
LSNumberFormat((query.unitprice * query.quantity), ",_.__")
- 「OK」をクリックします。
要素の整列
読みやすいレポートを作成するには、要素のレイアウトを整える必要があります。これを行うには、同じバンド内の要素、バンド自体、または別のバンド内の要素を基準として、各バンドの視覚的要素の位置を揃え、間隔を調整し、中央を合わせます。
Report Builder の「パレットの整列」には、次のオプションがあります。
- 左端揃え、中央揃え、右端揃え
- 上端揃え、中央揃え、下端揃え
- 同じ高さ、同じ幅、同じ高さと幅
- 均等配置 (水平方向)
- 均等配置 (垂直方向)
複数のレポート要素の配置、サイズまたは間隔を調整する手順は次のとおりです。
バンド自体を基準にして調整する場合:「パレットの整列」の下部にある「バンドに揃える」アイコンを使用して、相対位置を制御します。「バンドに揃える」アイコンを有効にすると、アイコンの周囲に矩形が表示され、バンドの高さと幅を基準にして要素が整列され、間隔が設定されます。
要素間で相対的に調整する場合:「バンドに揃える」を無効にすると、2 つ以上の要素が相互に相対的に整列され、間隔が設定されます。
[パレットの整列] を使用するには
- Ctrl キーまたは Shift キーを押しながら要素をクリックして選択するか、投げ縄ツールを使用して 2 つ以上の要素を選択します。
- 整列アイコンをクリックするか、メニューバーから修正/整列/整列オプションを選択します。
メモ:「パレットの整列」のオプションは、メニューバーの修正/整列からも選択できます。 |
要素の外観を微調整する方法の詳細については、Report Builder オンラインヘルプを参照してください。
レポートスタイルの使用
レポートスタイルは Microsoft Word のフォントスタイルに似ています。要素ごとに書式設定を適用するのではなく、スタイルを適用することで複数の要素の書式を制御できます。これにより、レポート全体で書式を制御できるようになります。
また、任意のスタイルをレポートのデフォルトスタイルとして指定できます。特定のフォント属性またはスタイルが適用されていないフィールドには、デフォルトスタイルが適用されます。デフォルトスタイルが定義されている場合、そのスタイルは [レポートスタイル] パネル内に太字で表示されます。
Report Builder では、CSS (Cascading Style Sheet) ファイルからスタイルをインポートしたり、Report Builder で定義したスタイルを CSS ファイルにエクスポートしたりすることもできます。この方法を使用すると、複数のレポートに共通の書式を適用したり、CFM ページを使用して実行時にスタイルを置き換えたりすることができます。詳細については、「CSS(Cascading Style Sheet)の使用」および『CFML リファレンス』を参照してください。
メモ:レポートで使用するフォントを選択するときは、ColdFusion を実行するサーバーにそれらのフォントがインストールされていることを確認してください。また、レポートにフォントを埋め込まない場合は、クライアントコンピューターにもそれらのフォントがインストールされていることを確認してください。フォントの詳細については、Creating a simple reportを参照してください。 |
スタイルを定義するには
- [ウィンドウ]-[レポートスタイル] を選択します。
- 「レポートスタイル」タブの上部にあるアイコンをクリックします。
- 「名前」フィールドに値を入力します。スタイル名は一意である必要があります。
- 他のスタイル特性を追加して、[OK] をクリックします。
特定のスタイルをデフォルトとして指定するには
- テキストスタイルを編集するか、新規のテキストスタイルを作成します。
- [オブジェクトに対して他のスタイルが選択されていない場合は、これがデフォルトのスタイルです] オプションを選択します。
- 他のテキストスタイル特性を追加または変更して、[OK] をクリックします。
レポート要素にスタイルを適用するには
- レポートバンド内の要素を選択します。
- [ウィンドウ]-[プロパティインスペクタ] を選択します。
- [スタイル] ポップアップメニューからスタイルを選択します。
詳細については、Report Builder オンラインヘルプを参照してください。
レポートのプレビュー
レポートの作成は反復的な作業であり、通常は作成中のレポートを定期的に表示して、変更を加えた箇所を確認しながら作業を進めます。レポートで内部クエリが使用されていて、デフォルトの Web ルートが既に設定されている場合は、プレビュー機能が自動的に有効になります。外部クエリを使用するレポートの場合は、CFM ページを定義して、その CFM ページをレポートに関連付けます。レポートをプレビューすると、そのページが実行されます。
内部クエリを使用するレポートをプレビューするには
- (オプション) 次の設定をまだ定義していない場合は、[環境設定] ダイアログボックスを使用して、デフォルトのサーバー接続情報を定義します。
- デフォルトの RDS サーバーの設定(クエリビルダーとチャートウィザードを使用する場合にのみ必要。レポートプレビューのみを使用する場合は不要)。
- ローカルの Web ルートディレクトリの完全修飾パス(例:C:_ColdFusion_\wwwroot または C:¥Inetpub¥wwwroot)。
- ローカルの Web ルートの URL(例:http://localhost:8500 または http://localhost)。
- (オプション) [レポートプロパティ] ダイアログボックスで出力形式を指定します (デフォルトの形式は FlashPaper)。
- (オプション) CFM ページが実行される場合は、[レポートプロパティ] ダイアログボックスで CFM ページの URL を指定します。
- レポートを保存します。
メニューバーから [ファイル]-[プレビュー] を選択し、レポートを表示します。
メモ:「プレビュー」ウィンドウではなく「編集 : プレビュー URL」ダイアログボックスが表示された場合は、メニューバーから編集/環境設定を選択し、「サーバー接続」ペインで Web ルートのファイルと URL の設定が正しいことを確認してください。
- F12 キーを押してプレビューウィンドウを閉じます。
cfreport タグからクエリーオブジェクトを受け取るレポートの場合は、レポートに URL を関連付けます。必要な場合は Report Builder でレポートをプレビューするときに、この URL を入力するよう求められることがあります。また、[レポートプロパティ] ダイアログボックスを開き、[プレビュー URL] フィールドで CFM ページの URL を指定することもできます。
メモ:cfreport タグを使用すると、内部クエリと外部クエリのどちらが使用されているかに関係なく、レポートを実行できます。 |
関連する CFM ファイルを使用してプレビューするには
- メニューバーから [レポート]-[レポートプロパティ] を選択します。
- [プレビュー URL] フィールドで、関連付ける CFM ページの URL を指定します。この CFM ページは、現在の CFR ファイルを指す template 属性を持ち、必要に応じて query 属性のクエリを渡すcfreport タグを含んでいる必要があります。
- レポートを保存します。
- F12 キーを押します。選択した出力形式に応じて、PDF、FlashPaper、RTF、XML、HTML、または Excel 形式のレポートが [プレビューレポート] ウィンドウに表示されます。
ページ番号の表示
Report Builder には、PAGE_NUMBER という名前の計算フィールドがあらかじめ用意されています。このフィールドをレポートバンドに配置すると、現在のページ番号が表示されます。
ビルトインの計算フィールドを追加するには
- ツールボックスのフィールドツールをクリックします。
- ヘッダーバンドまたはフッターバンドの中央をクリック&ドラッグして、ページ番号フィールドのサイズを定義します。フィールドの追加ダイアログボックスが表示され、ビルトインの計算フィールドと入力パラメーターを含め、そのレポートで定義されているフィールドがすべて表示されます。
- calc.PAGE_NUMBER を選択して「OK」をクリックします。
メモ:フィールドツールを使用すると、任意の種類のフィールド(クエリフィールド、計算フィールド、入力パラメータ)をレポートに追加できます。 |
ビルトインの計算フィールドの詳細については、Report Builder オンラインヘルプを参照してください。
レイヤードコントロールの使用
レイヤードコントロールとは、レポートバンドの同じ位置に配置された複数の要素のことです。PrintWhen 式を使用して条件を指定することで、実行時に表示する要素を切り替えることができます。レイヤード要素を使用すると、表示する要素を状況に応じて変更できるので、重要な情報を伝達しやすくなります。
要素を別の要素の上に重ねて配置するには
- バンド内に要素を配置します。
- ウィンドウ/プロパティを選択し、プロパティパネルを表示します。
- 各要素のプロパティパネルを使用して次のように PrintWhen 式、表示プロパティおよび配置プロパティを指定します。
- 各要素の PrintWhen 式を指定します。例えば、次の式を指定すると、shippeddate(出荷日)が requireddate(期日)よりも後の場合(つまり遅延の場合)は 1 つの要素が表示され、shippeddate が requireddate よりも前の場合は別の要素が表示されます。
- 最初の要素 query.shippeddate LTE query.requireddate
- 2 番目の要素 query.shippeddate GT query.requireddate
- 要素ごとに異なる表示特性を指定します。たとえば、注文処理が遅れているときは赤字で表示するように指定します。
- 各要素の [上]、[左]、[高さ]、[幅] のプロパティを同じ値に設定します。
メモ:完全に一致する配置プロパティを指定した場合は、レイヤードコントロールメニューを使用して個々の要素にアクセスします。 |
[レイヤードコントロール] メニューを使用するには
- 一番上の要素を右クリックします。
- ポップアップメニューからレイヤードコントロール/elementname を選択します。それぞれのレイヤード要素を識別するために、各要素の PrintWhen 式が表示されます。
- 要素を選択し、[ウィンドウ]-[プロパティインスペクタ] を選択して、要素のプロパティを表示します。
リンクの使用
ハイパーテキストリンクを使用すると、クエリフィールド、計算フィールド、入力パラメータ、チャート、イメージを、次のものにリンクできます。
- 同じレポート内のアンカーまたはページ
- 別のレポート内のアンカーまたはページ
- HTML ページ。必要に応じてアンカーおよび URL パラメーターを指定します。
リンクを使用すると、ドリルダウンレポートを作成できます。ドリルダウンレポートとは、特定の項目をクリックすると詳しい情報が表示されるレポートのことです。例えば、従業員名をクリックすると、別のページに従業員 ID がパラメータとして渡され、従業員の詳細情報がそのページに表示されます。
アンカーとハイパーテキストリンクを作成する方法については、Report Builder オンラインヘルプを参照してください。
レポート要素のプロパティの定義
レポート自体を含め、レポート内の要素はすべて、一連のプロパティによって定義されます。これらのプロパティは、各要素の外観や動作に影響を与えます。
Report Builder のユーザーインターフェイス要素 (ダイアログボックス、ツールバーアイコン、メニューアイテムなど) を使用すると、ほとんどのプロパティ値を定義できます。例えば、ツールバーアイコンを使用してテキストラベルのフォントサイズを設定できます。また、プロパティパネルを使用すると、すべてのプロパティ値を設定できます。このパネルには、現在選択されている要素のプロパティがすべて表示されます。
メモ:レポート内に配置された要素の間隔が狭いために、個々の要素をマウスで選択することが難しい場合があります。その場合は、プロパティパネルのポップアップメニューから要素を選択すると、簡単に特定の要素を選択できます。 |
プロパティパネルには、次の 2 つのビューがあります。
- アルファベット順にソート:現在選択されている要素のすべてのプロパティがアルファベット順に表示されます。
- グループ対象ソート:次のグループごとに、現在選択されている要素に関係するプロパティのみがプロパティパネルに表示されます。
- 詳細設定
- 列
- ページレイアウト
- プリント
- カラーとスタイル
- データ
- フォント
- フォントスタイル
- 書式設定
- ハイパーリンク
- レイアウト
- 出力制御
現在選択されている要素に関係するグループのみが Report Builder に表示されます。
ワークスペース内の要素のプロパティを設定または変更するには
- 要素を選択します。
- (オプション)プロパティパネルがまだ表示されていない場合は、ウィンドウ/プロパティインスペクタを選択します。プロパティパネルに要素のプロパティが表示されます。
- プロパティを変更します。プロパティの種類に応じて、値を入力するか、ポップアップメニューから値を選択するか、式ビルダーを開いて式を入力します。
- Enter キーを押します。
メモ:色を選択する場合は、色をダブルクリックします。 |
別の要素を選択するには
ポップアップメニューから要素を選択します。新しい要素を選択する場合は、Report Builder 内でその要素が選択され、その要素のプロパティが表示されます。
メモ:プロパティパネルを使用するとすべてのプロパティを設定できますが、通常はダイアログボックスとツールバーアイコンを使用してプロパティを設定します。例えば、レポート全体の設定を定義するには、レポートプロパティダイアログボックスを使用します。プロパティを設定する方法の詳細については、Report Builder オンラインヘルプの「プロパティリファレンス」を参照してください。 |
レポートの表示
アプリケーションからレポートを実行するには、CFR ファイルをブラウザーで表示するか、そのレポートを実行するcfreport タグを含む CFM ページを表示します。
cfreport タグを使用してレポートをファイルに保存することもできます。
cfreport タグは、高度な PDF 暗号化オプションをサポートしています。詳細については、『CFML リファレンス』の「cfreport」を参照してください。
レポートプレビューの詳細については、「レポートのプレビュー」を参照してください。
cfreport タグを使用してレポートを表示するには
- 内部クエリを含む(または含まない)レポートを作成します。
CFM ページを作成し、レポートを実行する cfreport タグを追加します。レポートで内部クエリが使用されていない場合は、query 属性を使用してクエリを渡します。レポートで内部クエリが使用されている場合に query 属性を使用すると、query 属性で渡されたクエリが内部クエリより優先されます。
SELECT EmployeeID, LastName, FirstName, Title, City, Region, Country
FROM Employees
ORDER BY Country, City
</cfquery>
<CFREPORT format="PDF" template="EmpReport.cfr"
query="#northwindemployees#"/>
メモ: ColdFusion は、cfreport タグの前後に発生するテキストをレンダリングしません。 |
- ブラウザーを開き、CFM ページを表示します。ColdFusion によりレポートが生成されます。
メモ:HTML レポートを表示すると、レポート内のイメージを表示するための一時ファイルが生成されます。これらの一時ファイルをサーバー上に保存する期間を指定するには、cfreport タグの resourceTimespan 属性を使用します。詳細については、『CFML リファレンス』を参照してください。 |
CFR ファイルをブラウザーで表示する
- 内部クエリを使用し、入力パラメーターを使用しないレポートを作成します。
- ブラウザーを開き、CFR ファイルを表示します。
レポートをファイルに保存するには
- 内部クエリを含む(または含まない)レポートを作成します。
CFM ページを作成し、レポートを実行する cfreport タグを追加します。必要に応じて、前の手順で説明したとおりに query 属性を渡します。次の例に示すように、作成するファイルの完全修飾名を filename 属性で指定します。
filename="#GetDirectoryFromPath(GetTemplatePath())#/emppicture.pdf"
overwrite="yes"/>
メモ:レポート出力を HTML ファイルに書き込むと、その HTML ファイルを基準とする場所に新しいディレクトリが作成され、レポート内のイメージ(チャートなど)を表示するために生成されたイメージファイルがそのディレクトリに保存されます。詳細については、HTML でのレポートのエクスポートを参照してください。 |
メモ:出力ファイルの形式を PDF 形式にする場合は拡張子 .pdf を、FlashPaper 形式にする場合は拡張子 .swf を、XML 形式にする場合は拡張子 .xml を、RTF 形式にする場合は拡張子 .rtf を、HTML 形式にする場合は拡張子 .html を、Excel 形式にする場合は拡張子 .xls を使用します。 |
- ブラウザーを開き、CFM ページを表示します。ColdFusion によりレポートが生成され、ファイルに保存されます。ブラウザには空のページが表示されます。
ブラウザーでの CFR ファイルの表示を無効にする
- メニューバーから [レポート]-[レポートプロパティ] を選択して、[レポートプロパティ] ダイアログボックスを開きます。
- [.cfr ブラウザ呼び出しの許可] オプションのチェックマークをはずして、[OK] をクリックします。
実行時に変数などのデータを渡す入力パラメーターの使用
入力パラメーターは、実行時にレポートに渡されるデータフィールドです。入力パラメータは、レポートバンドに直接配置することも、計算フィールドへの入力として使用することもできます。
クエリフィールドと同じ方法で入力パラメーターを定義します。対応するパラメーターが存在しない場合に使用するデフォルト値を指定できます。入力パラメーターを定義する方法の詳細については、フィールドと入力パラメーターの定義、変更、使用を参照してください。
入力パラメーターは次の方法で使用できます。
cfreportparam タグを使用する:入力パラメーターの名前と、CFM ページの呼び出しに含まれる cfreportparam タグで指定された名前が一致している必要があります。例えば、ReportTime という名前の入力パラメーターを定義する場合は、次の例に示すように、name 属性を ReportTime に設定した cfreportparam タグを渡します。
<cfreportparam name="ReportTime" value="#DateFormat(Now())#, #TimeFormat(Now())#">
</cfreport>
- サブレポートパラメーターを使用する:メインレポートからサブレポートに情報を渡す必要がある場合は、メインレポートでサブレポートパラメーターを定義し、対応する入力パラメーターをサブレポートで定義します。詳細については、「サブレポートの使用」を参照してください。
実行時に入力パラメーターの内容をダイナミックに決定する方法については、「拡張クエリモード」を参照してください。
レポートでの CFML の使用
CFML は Report Builder 用のスクリプト言語です。CFML を利用すると、ユーザーのニーズに応じてレポートのデータを選択し、適切な書式を適用することができます。Report Builder では、次の領域で CFML を使用できます。
- 拡張クエリモード
- レポート関数
- 式
拡張クエリモード
複雑なクエリを作成したり、既存のクエリを再利用したり、追加の CFML 処理をクエリ作成の一環としてカプセル化したりすることが必要になる場合があります。そのような場合は、拡張クエリモードを使用して、クエリを返す CFML を作成します。クエリビルダーの上部にある「詳細設定」ボタンをクリックすると、Report Builder にテキスト入力領域が表示されます。ここに、クエリを生成する CFML を入力できます。ColdFusion はレポート実行時にこのタグを実行し、クエリの結果セットをレポートに渡します。
メモ:拡張クエリモードを使用する場合、クエリフィールドは自動的に作成されません。関連するクエリフィールドを手動で作成してください。 |
拡張クエリモードで使用する CFML には、クエリオブジェクトフィールドを含む変数と名前が一致するクエリオブジェクトが含まれている必要があります。クエリオブジェクトを返す任意の CFML タグまたは QueryNew 関数を使用できます。CFML では、複数のクエリオブジェクトを使用できますが、返すことができるクエリオブジェクトは 1 つだけです。
メモ:空の変数(例えば <cfset name=" ">)を設定すると、Report Builder でレポートデータバインドエラーが発生します。 |
次に示す CFML は、cfhttp タグを使用してクエリを取得します。
<cfhttp url="http://quote.yahoo.com/download/quotes.csv?Symbols=csco,jnpr&format=sc1l1&ext=.csv" |
また、拡張クエリモードでは、次の例に示すように、URL または FORM スコープにパラメーターが存在するかどうかを調べたり、これらのパラメーターを使用してデータを取得したりできます。
<cfif isDefined("url.deptidin")> |
レポート関数の使用
レポート関数とは、レポート関数エディタを使用してコーディングできるユーザー定義の CFML 関数です。これらの関数は、レポートフィールド内で実行できます。レポート関数を使用すると、データの書式を設定したり (たとえば、完全な住所を表示するために複数のフィールドを連結して書式を設定したり)、データを取得したりすることができます。
InitializeReport、BeforeExport および FinalizeReport は、Report Builder 固有のビルトイン関数です。詳細については、Report Builder オンラインヘルプを参照してください。
Report Builder ビルトイン関数
- メニューバーからレポート/レポート関数を選択します。レポート関数エディタが表示されます。
- 左端にある [デフォルト関数の追加] アイコンをクリックします。左ペインにビルトイン関数が追加されます。
- 左ペインで関数を選択します。その関数のコメント付きコードが右ペインに表示されます。
- コードを修正して、[OK] をクリックします。
レポート関数を作成するには
- メニューバーからレポート/レポート関数を選択します。レポート関数エディタが表示されます。
- プラス記号をクリックして新しいレポート関数を追加します。レポート関数の追加ダイアログボックスが表示されます。
- 名前を指定して、「OK」をクリックします。
- レポート関数エディタのテキスト入力領域に、cfreturn タグが配置されます。
関数をコーディングして「OK」をクリックします。これは ColdFusion のユーザー定義関数であり、すべての UDF ルールと機能を使用できます。次に示すレポート関数は、住所に関連する複数のフィールドを連結します。
<cfargument name="Name" required="yes"/>
<cfargument name="Address1" required="yes"/>
<cfargument name="Address2" required="yes"/>
<cfargument name="City" required="yes"/>
<cfargument name="State" required="yes"/>
<cfargument name="Zip" required="yes"/>
<cfset variables.CRLF = Chr(13) & Chr(10)>
<cfset variables.ResultVar="">
<cfif Trim(arguments.Name) NEQ "">
<cfset variables.ResultVar='#arguments.Name#'>
</cfif>
<cfif Trim(arguments.Address1) NEQ "">
<cfif variables.ResultVar NEQ "">
<cfset variables.ResultVar='#variables.ResultVar & variables.CRLF#'>
</cfif>
<cfset variables.ResultVar='#variables.ResultVar & arguments.Address1#'>
</cfif>
<cfif Trim(arguments.Address2) NEQ "">
<cfif variables.ResultVar NEQ "">
<cfset variables.ResultVar='#variables.ResultVar & variables.CRLF#'>
</cfif>
<cfset variables.ResultVar='#variables.ResultVar & arguments.Address2#'>
</cfif>
<cfif variables.ResultVar NEQ "">
<cfset variables.ResultVar='#variables.ResultVar & variables.CRLF#'>
</cfif>
<cfset variables.ResultVar='#variables.ResultVar & arguments.City & ", " & arguments.State & " " & arguments.Zip#'>
<cfreturn variables.ResultVar>
レポート関数を使用するには
- 適切なレポートバンドにダイナミックフィールドを配置します。フィールドの追加ダイアログボックスが表示されます。
- 「手動で入力される式」を指定して、「OK」をクリックします。式ビルダーが表示されます。
- "report.< 関数名>" を指定して、[OK] をクリックします。
式の使用
Report Builder の多くの要素(クエリフィールド、計算フィールド、入力パラメータ、イメージ、レポートオブジェクト属性など)は、オペランドを 1 つだけ取る ColdFusion 式です。これらの要素は式なので、CFML 関数を使用して操作できます。
式ビルダーは、Report Builder 要素に CFML 関数をすばやく適用するための GUI です。式ビルダーには、次のような用途があります。
- 多くのレポートオブジェクト属性(PrintWhen など)では、式を使用して、クエリパラメータ、入力パラメータ、ColdFusion ページ変数などに属性を関連付けることができます。レポート属性には、実行時のデータやユーザーの設定に基づいて表示する列を関連付けることができます。
- フィールドの連結
- フィールドの書式設定
- 計算フィールド
- ColdFusion ページ変数およびスコープへのアクセスと表示
式ビルダーの使用方法の詳細については、Report Builder オンラインヘルプを参照してください。
式の詳細については、「式と # 記号の使用」を参照してください。
チャートの使用
チャートを使用すると、大量のデータや複雑なデータを理解しやすくなります。Report Builder を使用すると、任意のレポートバンドにチャートを配置できます。Report Builder ではさまざまな種類のチャートがサポートされています。
レポートにチャートを追加するには、チャート作成手順を案内するチャートウィザードを使用します。チャートウィザードはクエリウィザードに完全に統合されています。チャートタイプ、レポートで使用するデータ、書式設定オプションなどをチャートウィザードで定義することにより、データベースと連動するチャートを簡単に作成できます。
メモ:チャートウィザードでチャートの特性を定義すると、RDS を使用してチャートイメージがリアルタイムで生成されます。ただし、これらのチャートイメージで使用されるデータは、実際のデータではありません。 |
チャートウィザードには、次のパネルがあります。
- チャートタイプ:チャートタイプ(棒グラフなど)とサブタイプ(3D スタックなど)を選択します。
- チャート系列:系列のデータを選択します。系列を追加する場合は、系列データをハードコードするか、系列データを取得するためのデータベースクエリをクエリビルダーで作成できます。
- チャートの形式設定:タイトルと系列、一般表示、3D 表示、線とマーカー、フォントを指定します。
メモ:チャートウィザードで指定するデータは、cfchart タグ、cfchartseries タグ、および cfchartdata タグで指定する属性に対応します。これらのタグの詳細については、『CFML リファレンス』を参照してください。 |
ColdFusion のチャート作成機能の詳細については、「チャートとグラフの作成」を参照してください。Report Builder を使用したチャート作成方法の詳細については、Report Builder オンラインヘルプを参照してください。
サブレポートの使用
サブレポートを使用すると、レポート内に別のレポートをネストできます。多くの場合、サブレポートのデータはメインレポートのデータに関係しています。メインレポートとサブレポートのデータを関連付けるには、サブレポートにサブレポートパラメーターを渡します。ただし、サブレポートのデータは、必ずしもメインレポートのデータに関係していなくてもかまいません。
サブレポートは次のような場合に使用します。
- RIGHT OUTER JOIN などの複雑な SQL を使用したくない場合
- 複数のデータベースからデータを取得する必要がある場合
メモ:Report Builder は複数のネストレベルをサポートしますが、表示されるネストレベルは 1 つのみです。 |
サブレポートの詳細については、Report Builder オンラインヘルプを参照してください。
サブレポートの定義
サブレポートは、メインレポートに挿入する前に定義することもできますが、メインレポートに挿入するときに定義することもできます。
サブレポートには次の特徴があります。
- データは詳細バンド内にのみ表示されます。サブレポートではヘッダバンドとフッタバンドを使用しません。
- サブレポートをメインレポートに関連付けるには、サブレポートに内部クエリを挿入し、メインレポートの「サブレポート式」プロパティで使用されている入力パラメーターの名前を指定する WHERE 節を含んだ SELECT ステートメントを使用する必要があります。
定義済みのサブレポートがある場合は、そのサブレポートをメインレポートに追加し、必要に応じてサブレポートパラメーターを定義します。
既存のサブレポートを追加するには
- 新規のメインレポートを定義するか、既存のメインレポートを開きます。
- ツールボックスの [サブレポート] アイコンをクリックします。
- 適切なレポートバンド内をクリック & ドラッグして、サブレポートの領域を定義します。
- [既存のレポートから] を選択し、サブレポートを指定して、[次へ] をクリックします。
- サブレポートのフィールドに対応するメインレポートのフィールドを選択し、「次へ」をクリックします。
- 「終了」をクリックします。メインレポートにサブレポートが追加され、レポートがサブレポートパラメータとしてサブレポートマッピングに保存されます。
- サブレポートパラメーターの設定を変更するには、サブレポートを選択し、プロパティパネルで「サブレポートパラメータ」をクリックします。
サブレポートで必要になるデータが事前にわかっている場合は、メインレポートに新規のサブレポートを追加して、その場でサブレポートを定義できます。
新規のサブレポートを追加するには
- 新規のメインレポートを定義するか、既存のメインレポートを開きます。
- ツールボックスの [サブレポート] アイコンをクリックします。
- レポートバンド内をクリック & ドラッグして、サブレポートの領域を定義します。
- [新規レポートとして] を選択して、[次へ] をクリックします。
- 「クエリビルダー」をクリックします。
- サブレポート用のテーブルと列を選択します。
- 「条件」列と「基準」列をキー列として使用して、レポートの WHERE 節を指定します。「条件」で WHERE を指定し、「基準」で ='#CFVariable#' (string column) または =#CFVariable# (numeric column) を指定して、CFVariable をサブレポートの入力パラメーターの名前に変更します(入力パラメータ名は後で定義します)。
- [保存] をクリックして、[次へ] をクリックします。
- 必要に応じて、グループ化に関連するフィールドを指定し、[次へ] をクリックします。
- [Free Form] または [Grid] を指定して、[次へ] をクリックします。
- [Only Detail Band] を指定して、[次へ] をクリックします。
- カラースキームを指定して、[次へ] をクリックします。
- 必要に応じて見出しを指定し、[次へ] をクリックします。
- サブレポートで必要なパラメータごとに、次の項目を指定します。
- パラメータ名
- 関連付けるメインレポートの値 (ポップアップメニューから選択します)
- データ型
- 「次へ」をクリックします。
- サブレポートの完全修飾ファイル名を指定して、[次へ] をクリックします。
- 「終了」をクリックします。メインレポートにサブレポートが追加されます。Report Builder を使用すると、サブレポートの名前やメインレポートのサブレポートパラメーターを変更できます。
サブレポートの設定を変更するには
- メインレポート内のサブレポート要素をクリックします。
- サブレポートを変更するには、[サブレポート式] の値を変更します。
- サブレポートパラメーターを変更するには:
- [サブレポートパラメータ] プロパティをクリックします。
- [...] ボタンをクリックします。
- サブレポートパラメーターを追加、変更、または削除して、「OK」をクリックします。