Table(テーブル)データ領域は、ページレポートおよびRDLレポートで使用でき、テーブル形式のレポートにデータを表形式で表示するために使用されます。Tableは、行と列で構成されています。デフォルトは、3行3列(合計9つのセルで構成)のテーブルで、各セルにテキストボックスが指定されています。行・列の追加・削除や、データのグループ化も可能です。テーブルのセルに他のデータ領域を埋め込むことが可能です。
構造

列:テーブル内の垂直方向のセルのグループです。列ハンドラを右クリックし、コンテキストメニューを使用して、新しい列を追加したり、既存の列を削除したりすることができます。
行:テーブル内の水平方向のセルのグループです。行ハンドラを右クリックし、コンテキストメニューを使用して、新しい行を追加したり、既存の行を削除したりできます。
セル:行と列の共通部分です。デフォルトでは、各セルにはTextBoxコントロールが含まれています。ただし、ツールボックスからImageなどの他のコントロールをセルにドラッグ&ドロップすることもできます。
ヘッダ行:テーブルの先頭に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合、各ページにヘッダが出力されます。ヘッダを使用して、表形式のレポートのタイトルまたはロゴを表示できます。テーブルには複数のヘッダ行を設定することができます。
グループヘッダ行:グループの先頭に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにグループヘッダが出力されます。また、グループヘッダ行を使用して、グループのフィールド値または集計値を表示できます。グループには複数のグループヘッダ行を設定することができます。
詳細行:データセットおよびデータ領域のフィルタを通過したレコード毎に繰り返されます。Tableデータ領域では詳細行のグループ化を設定すると、詳細行はテーブルのグループのヘッダとフッタの間に表示されます。テーブルには複数の詳細行を含むことができます。
グループフッタ行:テーブルのグループの最後に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにグループフッタが出力されます。また、グループフッタ行を使用して、集計値を表示できます。グループには複数のフッタ行を含むことができます。
フッタ行:テーブルの最後に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにフッタが出力されます。また、フッタ行を使用して、総計を表示できます。
テーブルレイアウトのオプション
Tableデータ領域には、基本的なレイアウト操作を実行するためにコンテキストメニューのさまざまなオプションが用意されています。選択した行を右クリックして、コンテキストメニューからテーブル行のレイアウトオプションを使用できます。
- 上に行を挿入:選択した行の上に行を追加します。挿入される行のタイプは、選択された行のタイプと似ています。たとえば、選択された行はヘッダ行の場合、新しいヘッダ行が追加されます。
- 下に行を挿入:選択した行の下に行を追加します。挿入される行のタイプは、選択された行のタイプと似ています。たとえば、選択された行はヘッダ行の場合、新しいヘッダ行が追加されます。
- 行を削除:選択した行を削除します。
- 行の高さを揃える:選択した複数の行に同じ高さを設定します。
- 列の幅を揃える:選択した複数の列に同じ幅を設定します。
- テーブルのヘッダー行:テーブルヘッダー行を表示または非表示にします。
- テーブルの詳細行:テーブルの詳細行を表示または非表示にします。
- テーブルのフッター行:テーブルのフッター行を表示または非表示にします。
- グループを挿入:テーブルにグループを挿入します。
- グループを編集:テーブル内のグループを編集します。
- グループを削除:テーブル内のグループを削除します。
選択した列を右クリックして、コンテキストメニューからテーブル列のレイアウトオプションを使用できます。
- 左に列を挿入:選択した列の左側に列を追加します。
- 右に列を挿入:選択した列の右側に列を追加します。
- 列を追加:選択した列の右側に1つ以上の列を追加します。
- 列を削除:選択した列を削除します。
- 列の幅を揃える:選択した複数の列に同じ幅を設定します。
- 行の高さを揃える:選択した複数の行に同じ高さを設定します。
プロパティ設定ダイアログ
Tableデータ領域のプロパティは、プロパティ設定ダイアログで指定することができます。このダイアログを表示するには、レポート上のTableデータ領域を選択した状態で、[プロパティ]ウィンドウ内にある[プロパティ設定ダイアログ]のリンクをクリックします。表示される[Table]ダイアログが、Tableデータ領域のプロパティ設定ダイアログにあたります。
[名前]:まだレポートに使用されていない一意のTableの名前を入力します。この名前はコード内で呼び出すことができます。
[ツールヒント]:HTMLレポートでTITLE属性やALT属性を表示するために使用されるレポートアイテムのテキストラベル。
[データセット名]:テーブルと関連付けるデータセットを選択します。コンボボックスはレポートのデータセットコレクションにあるすべてのデータセットを表示します。
[データ領域毎にページ番号を設定]:データ領域毎にページ番号を出力するかどうかを設定します。
改ページ(RDLレポート):
- テーブルの前で改ページする
- テーブルの後で改ページする
- 可能な限り1ページ内にテーブルを表示する
NewPage(RDLレポート):
- Next:レポートの次のページから新しいグループの表示を開始します(デフォルト値)。
- Odd:レポートの次の奇数ページから新しいグループの表示を開始します。
- Even:レポートの次の偶数ページから新しいグループの表示を開始します。
詳細については、「データ領域での改ページ」を参照してください。
[ヘッダ/フッタ]:以下の任意オプションを選択します。
- [すべてのページにヘッダ行を表示する]
- [すべてのページにフッタ行を表示する]
- [フッタ行のみのページの出力を防止する]
[レポートの初期実行時]
- [表示する]:レポートの実行時にテーブルを表示します。
- [非表示]:レポートの実行時にテーブルを非表示にします。
- [式]:テーブルを初期状態で非表示にするかどうかを、ブール型の式で設定することができます(VisibilityクラスのHiddenプロパティ)。非表示にする場合は「True」、表示する場合は「False」を返す式を設定します。
[次のレポートアイテムでの表示の切り替えを可能にする]:コントロールに別のレポートに隣接する切り替え表示を表すには、このチェックボックスをオンにします。その下のドロップダウンが有効になり、テーブルの表示を切り替えするためのTextBoxコントロールを指定します。
[見出しマップラベル]: 目次(見出しマップ)でこのアイテムを表すためのラベルとして使用する式を入力します。
[ブックマークID]: このテーブルのロケータとして使用する式を入力します。次に、[ブックマークに移動]アクションを使用して、別のレポートコントロールからこの項目にブックマークリンクを提供することが可能となります。
[追加](+)ボタンをクリックして並べ替えの新しい式を入力します。[削除](X)ボタンを使用して削除します。
式:詳細行データの並べ替えに使用する式を入力します。グループ化に使用するデータの並び替えは、グループの並べ替えで設定します。
方向:ソート式の方法を「昇順」または「降順」に設定します。
ダイアログで用意されている[追加](+)ボタンでグループの追加、[削除](X)ボタンでグループの削除をできます。グループを追加したら、矢印ボタンを使用してグループの順番の変更を行い、以下のタブを使用してグループに関する詳細設定を行います。
[全般]
[名前]:まだレポートに使用されていない一意のTableの名前を入力します。このプロパティを設定するには、[グループ化の条件]の[式]を設定する必要があります。
[グループ化の条件]:データをグループ化するために使用する式を入力します。
[見出しマップラベル]:目次(見出しマップ)でこのアイテムを表すためのラベルとして使用する式を入力します。
[親グループ]:再帰階層の場合使用します。親グループとして使用する式を入力します。
[フィルタ]
コレクションに新しいフィルタを追加するには、次の3つの値を設定する必要があります。
式:フィルタリングに使用する式を入力します。
演算子:フィルタリングの方法を次の演算子から選択します。
- Equal:一致するデータが選択されます。
- Like:左側の値が右側の値と同様であるデータが選択されます。
- Like:演算子の詳細情報については、「MSDN ウェブサイト」を参照してください。
- NotEqual:一致しないデータが選択されます。
- GreaterThan:指定した値よりも大きな値のデータが選択されます。
- GreaterThanOrEqual:指定した値以上のデータが選択されます。
- LessThan:指定した値未満のデータが選択されます。
- LessThanOrEqual:指定した値以下のデータが選択されます。
- TopN:上位N番目までのデータが選択されます。
- BottomN:下位N番目までのデータが選択されます。
- TopPercent:累積合計が指定された割合以上になる、上位のデータが選択されます。
- BottomPercent:累積合計が指定された割合以上になる、下位のデータが選択されます。
- In:指定した値のリストに含まれるデータのみが選択されます。
- Between:指定した2つの値の間に入るデータが選択されます。
値:選択された演算子に基づいて左側の式と比較する値を入力します。Between演算子を選択した場合、2つの値ボックスが有効になります。
値:In演算子を選択した場合、多くの値を入力することができます。
[並べ替え]
[追加](+)ボタンをクリックして並べ替えの新しい式を入力します。また、[削除](X)ボタンを使用して削除します。
式:グループの並べ替えに使用する式を入力します。
方向:「昇順」、「降順」のいずれかを設定します。
[表示]
デフォルトでは、実行時にレポート内のグループが表示されるが、特定の条件が満たされた場合にグループを非表示にしたり、別のレポートアイテムでグループの表示を切り替えたりすることができます。
[レポートの初期実行時]
- 表示する:レポートの実行時にグループを表示します。
- 非表示:レポートの実行時にグループを非表示にします。
- 式:グループを初期状態で非表示にするかどうかを、ブール型の式で設定できます(VisibilityクラスのHiddenプロパティ)。非表示にする場合は「True」、表示する場合は「False」を返す式を設定します。
[次のレポートアイテムでの表示の切り替えを可能にする]:次のレポートアイテムに隣接する切り替え画像を表示するには、このチェックボックスをオンにします。ユーザーが切り替えアイテムをクリックしてバンドグループを表示または非表示できます。その下のドロップダウンが有効になり、グループの表示を切り替えするためにユーザーがレポートコントロールを選択できます。
[データ出力]
要素名:このグループのXML出力に使用する名前を入力します。
コレクション:このグループのすべてのインスタンスのコレクションのXML出力に使用する名前を入力します。
出力:Auto、はい、いいえのいずれかを選択して、XML出力にこのグループを含めるかどうかを決定します。
[レイアウト]
[改ページ位置]:次のオプションから選択して、グループに改ページを挿入する位置を決定します。
- None:改ページを挿入しません。
- Start:グループの前に改ページを挿入します。
- End:グループの後に改ページを挿入します。
- StartAndEnd:グループの前後に改ページを挿入します。
- Between:グループ間(現在のグループの終了位置と次のグループの開始位置)に改ページを挿入します。
[新しいページ]
- Next:レポートの次のページから新しいグループの表示を開始します(デフォルト値)。
- Odd:レポートの次の奇数ページから新しいグループの表示を開始します。
- Even:レポートの次の偶数ページから新しいグループの表示を開始します。
[グループヘッダを含める]:グループヘッダを表示します(デフォルト)。
[グループフッタを含める]:グループフッタを表示します(デフォルト)。
[グループヘッダを繰り返す]:ページごとにグループヘッダを繰り返します。
[グループフッタを繰り返す]:ページごとにグループフッタを繰り返します。
[グループ毎にページ番号を設定]:データ領域毎にページ番号を出力するかどうかを設定します。
[可能な限り1ページに収める]:グループを可能な限り1ページに収めて表示します。
[グループフッタのみのページの出力を防止する]:孤立したフッタが次のページに表示されないように、最後の詳細行とともにフッタを印刷します。
詳細行のグループ化は、詳細行内で同じ値を繰り返し表示したくない場合に便利です。詳細行のグループ化を設定すると、グループ化を設定した式の結果のうち、値が重複しない結果のみが表示されるようになります。たとえば、NorthwindデータベースのCustomersテーブルを使用して、国のリストを作成するとします。詳細行のグループ化を設定せずにこれを行うと、各国に存在する顧客の数だけ国の名前もリストに繰り返し表示されることになりますが、詳細行のグループ化に「=Fields!Country.Value」と設定すると、各国の名前は一度しか表示されません。
メモ:詳細行のグループ化で設定した式が、データの行ごとに異なっている場合には、出力結果はグループ化しない場合とあまり変わりません。
[詳細行のグループ化]のページには、次のタブがあります。
[全般]
名前:まだレポートに使用されていない一意の名前を入力します。このプロパティを設定するには、[グループ化の条件]の[式]を設定する必要があります。
グループ化の条件:データのグループ化に使用する式を入力します。
見出しマップラベル:目次(見出しマップ)でこのアイテムを表すためのラベルとして使用する式を入力します。
親グループ:再帰階層の場合使用します。親グループとして使用する式を入力します。
[フィルタ]
コレクションに新しいフィルタを追加するには、次の3つの値を設定する必要があります。
式:フィルタリングに使用する式を入力します。
演算子:フィルタリングの方法を次の演算子から選択します。
- Equal:一致するデータが選択されます。
- Like:左側の値が右側の値と同様であるデータが選択されます。
- Like演算子の詳細情報については、「MSDN ウェブサイト」を参照してください。
- NotEqual:一致しないデータが選択されます。
- GreaterThan:指定した値より大きな値のデータが選択されます。
- GreaterThanOrEqual:指定した値以上のデータが選択されます。
- LessThan:指定した値未満のデータが選択されます。
- LessThanOrEqual:指定した値以下のデータが選択されます。
- TopN:上位N番目までのデータが選択されます。
- BottomN:下位N番目までのデータが選択されます。
- TopPercent:累積合計が指定された割合以上になる、上位のデータが選択されます。
- BottomPercent:累積合計が指定された割合以上になる、下位のデータが選択されます。
- In:指定した値のリストに含まれるデータのみが選択されます。
- Between:指定した2つの値の間に入るデータが選択されます。
値:選択された演算子に基づいて左側の式と比較する値を入力します。Between演算子を選択した場合、2つの値ボックスが有効になります。
値:In演算子を選択した場合、多くの値を入力することができます。
[表示]
[レポートの初期実行時]
- 表示する:レポートの実行時にグループを表示します。
- 非表示:レポートの実行時にグループを非表示にします。
- 式:グループを初期状態で非表示にするかどうかを、ブール型の式で設定することができます(VisibilityクラスのHiddenプロパティ)。非表示にする場合は「True」、表示する場合は「False」を返す式を設定します。
[次のレポートアイテムでの表示の切り替えを可能にする]:次のレポートアイテムに隣接する切り替え画像を表示するには、このチェックボックスをオンにします。ユーザーが切り替えアイテムをクリックしてバンドグループを表示または非表示にできます。その下のドロップダウンが有効になり、グループの表示を切り替えするためにユーザーがレポートコントロールを選択できます。
[データ出力]
要素名:このグループのXML出力に使用する名前を入力します。
コレクション:このグループのすべてのインスタンスのコレクションのXML出力に使用する名前を入力します。
出力:[はい]、[いいえ]のいずれかを選択して、XML出力にこのグループを含めるかどうかを決定します。
[レイアウト]
[改ページ位置]:次のオプションから選択して、グループに改ページを挿入する位置を決定します。
- None:改ページを挿入しません。
- Start:グループの前に改ページを挿入します。
- End:グループの後に改ページを挿入します。
- StartAndEnd:グループの前後に改ページを挿入します。
- Between:グループ間(現在のグループの終了位置と次のグループの開始位置)に改ページを挿入します。
[新しいページ]
- Next:レポートの次のページから新しいグループの表示を開始します(デフォルト値)。
- Odd:レポートの次の奇数ページから新しいグループの表示を開始します。
- Even:レポートの次の偶数ページから新しいグループの表示を開始します。
[グループ毎にページ番号を設定]:データ領域毎にページ番号を出力するかどうかを設定します。
コレクションに新しいフィルタを追加するには、次の3つの値を設定する必要があります。
式:フィルタリングに使用する式を入力します。
演算子:フィルタリングの方法を次の演算子から選択します。
- Equal:一致するデータが選択されます。
- Like:左側の値が右側の値と同様であるデータが選択されます。
- Like演算子の詳細情報については、「MSDN ウェブサイト」を参照してください。
- NotEqual:一致しないデータが選択されます。
- GreaterThan:指定した値より大きな値のデータが選択されます。
- GreaterThanOrEqual:指定した値以上のデータが選択されます。
- LessThan:指定した値未満のデータが選択されます。
- LessThanOrEqual:指定した値以下のデータが選択されます。
- TopN:上位N番目までのデータが選択されます。
- BottomN:下位N番目までのデータが選択されます。
- TopPercent:累積合計が指定された割合以上になる、上位のデータが選択されます。
- BottomPercent:累積合計が指定された割合以上になる、下位のデータが選択されます。
- In:指定した値のリストに含まれるデータのみが選択されます。
- Between:指定した2つの値の間に入るデータが選択されます。
値:選択された演算子に基づいて左側の式と比較する値を入力します。Between演算子を選択した場合、2つの値ボックスが有効になります。
値:In演算子を選択した場合、多くの値を入力することができます。
テーブルをXMLに出力するときに次のプロパティを使用できます。
- 要素名:このテーブルをXML出力に使用する場合の名前を入力します。
- 出力:[自動]、[はい]、[いいえ]のいずれかを選択して、XML出力にこのテーブルを含めるかどうかを決定します。[自動]を選択すると、リストの内容がエクスポートされます。
- 要素名の詳細:このテーブルのインスタンスのコレクションのXML出力に使用する名前を入力します。詳細行のグループ化を指定している場合は、この名前が無視されます。
- コレクション名の詳細:詳細グループのすべてのインスタンスのコレクションのデータ要素のXML出力で使用する名前を入力します。
- データ要素の出力:[はい]、[いいえ]のいずれかを選択して、XML出力に詳細を含めるかどうかを決定します。
テーブルにデータを追加する
レポート上にテーブルを配置すると、セルにデータを追加することができるようになります。また、他のデータ領域と同様に、フィールドをドラッグしてテーブルのセル上に配置することができます。デフォルトで各セルにTextBoxコントロールが配置されていますが、任意のコントロールと置き換えて使用することができます。詳細行のセルにフィールドをドラッグする場合、ActiveReportsは自動的にテーブルヘッダにラベルを提供します。また、式を使用してテーブルのセル内のデータを操作することができます。詳細については、「式」を参照してください。
- ツールボックスからTableをダブルクリックするか、デザイン面にドラッグ&ドロップします。
- レポートエクスプローラから、データセットを展開し、詳細行にフィールドをドラッグ&ドロップします。

あるいは、Tableで、詳細行の各TextBoxを選択し、セルの右上隅に表示されるフィールド選択用アイコンをクリックして、フィールドを選択します。

テーブルの機能
グループ化
グループはデータを整理し、データ分析を容易にします。Tableデータ領域では、[ナビゲーション]ページにある[見出しマップラベル]に値を指定することで、グループに基づいて見出しマップを作成することができます。見出しマップおよびナビゲーションの詳細については、「見出しマップ」を参照してください。
次の例では、ReelsデータベースのMovieテーブルのデータを使用してレポートを作成し、グループ化を説明します。レポートは、映画のタイトル、MPAAの評価、およびレイティングを表示するテーブルで構成されています。


他のデータセットフィールド(たとえば、YearReleased)に従ってテーブルのデータをグループ化し、映画が公開された年に基づいて詳細をグループ化できます。
次の手順では、[グループ化の条件]の式を使用してテーブルにグループを追加する方法を説明します。
- Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択し、[Table-グループ]を開きます。
メモ:Tableデータ領域のコンテキストメニューで[グループを挿入]を選択し、表示される[Table-グループ]ダイアログでグループを追加することができます。
- [グループ]ページに移動し、[追加(+)]をクリックします。
- [グループ化の条件]では、データをグループ化する式を入力します。たとえば、
=Fields!YearReleased.Value.

- [OK]をクリックしてダイアログを閉じます。次のように、グループヘッダとグループフッタが追加されます。

- グループヘッダ行のセルを結合し、次のようにValueプロパティに式を入力します。
=[YearReleased]

これにより、グループ値が表示され、各グループの上にまたがって出力されます。
- レポートをプレビューします。テーブルは次のようになります。

詳細行のグループ化
テーブルのデータをグループ化するもう一つの方法は、グループを追加せずに詳細行をグループ化することです。[詳細行のグループ化]は、詳細行内の各データ行に対して、個別のグループ化値または式ごとに1行だけが表示されるようにデータをグループ化します。また、グループヘッダとグループフッタは追加されません。詳細行のグループ化は、詳細行内で同じ値を繰り返し表示したくない場合に便利です。
次の例では、詳細行のグループ化を使用してテーブルデータをグループ化する方法を説明します。たとえば、映画のタイトル、MPAAの評価、およびレイティングを表示するテーブルを含むレポートがあります。このレポートは、ReelsデータベースのMovieテーブルのデータを使用しています。
- Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択し、[Table-グループ]を開きます。
- [詳細行のグループ化]ページに移動し、[グループ化の条件]では、データをグループ化する式を入力します。たとえば、,
=Fields!YearReleased.Value.

- [OK]をクリックしてダイアログを閉じます。
- レポートをプレビューします。テーブルは次のようになります。

セルの結合
テーブルの同じ行または列にある隣接するセルを1つのセルに結合できます。垂直方向に結合するにはセルが同じ行にあり、ヘッダなら同じヘッダ行内、グループヘッダなら同じグループヘッダ行内、フッタなら同じフッタ行内、詳細行なら同じ詳細行内である必要があります。
セルを結合するには、次の手順を実行します。
- Ctrlキーを押しながら、セルを選択し、選択範囲を右クリックします。
- コンテキストメニューから[セルの結合]を選択します。
自動結合
AutoMergeModeプロパティを使用すると、同じ値を含む詳細行の隣接するセルを結合するモードを設定できます。AutoMergeModeプロパティを設定する場合は以下のオプションがあります。
- Always:結合されます。
- Never:結合されません。
- Restricted:前列の該当するセルが同様に結合された場合にのみ結合されます。例えば、列2のセルは「Restricted」に設定されている場合、同じ値を含む前列(列1)の該当セルを「Never」に設定すると、列2のセルが結合されません。
以下の手順は、Tableデータ領域のセルに自動結合設定を追加する方法を説明します。


- EmployeeIDフィールド値のセルを選択し、[レイアウト] > [AutoMergeMode]プロパティを「Restricted」に設定します。これにより、前列のセルの出荷先が結合されるかどうかによって従業員IDが結合されます。
- ShipNameフィールド値のセルを選択し、[レイアウト] > [AutoMergeMode]プロパティを「Always」に設定します。これにより、同様な出荷先を含むセルが結合されます。
- レポートをプレビューします。テーブルは次のようになります。

行/列の固定表示(RDLレポート)
RDLレポートを使用する時、大量のデータを含んだTableデータ領域を表示する場合、すべてのデータに目を通すためには画面をスクロールする必要が出てきます。このとき、スクロール中に行ヘッダや列ヘッダが表示範囲外に出てしまうと、データの内容がつかみづらくなるという問題が生じます。この問題を解決するには、FrozenRowsプロパティとFrozenColumnsプロパティを使用できます。これらのプロパティは、RDLレポートをJSビューワにゲラモードで表示する際に有効になり、行ヘッダ/列ヘッダを固定するので、データ領域全体をスクロールしている間も両ヘッダは元の位置に留まった状態で表示されます。各ヘッダ部分にあるセルの数と同じ数の行、あるいは列を固定することができます。
- データが下方向に伸展する場合、FrozenRowsプロパティに適当な値を設定して、スクロール中も列ヘッダが固定されるようにします。
- データが右方向に伸展する場合、FrozenColumnsプロパティに適当な値を設定して、スクロール中も行ヘッダが固定されるようにします。
- データが下方向/右方向の両方に伸展する場合、FrozenRowsプロパティ、FrozenColumnsプロパティの両方に適当な値を設定します。
次の画像は、ゲラモード使用時のRDLレポートをJSビューワで表示したようすを表しており、FrozenRowsに1、FrozenColumnsに1を設定しています。

固定表示したいヘッダに含まれるセルの個数よりも少ない値をFrozenRowsプロパティ、またはFrozenColumnsプロパティに設定することはお勧めできません。
Tableデータ領域のネスト
ページレポートおよびRDLレポートでは、異なるデータセットに連結されたTableデータ領域をネストして使用することができます。ネストしたTableを使用して異なるデータセットからデータを表示するには、次のいずれかの方法を使用できます。
- Filtersプロパティを使用して、子テーブルにフィルタを追加し、2つのデータセットの共通フィールドに基づいてTableデータ領域内のデータをフィルタします。
- DataSetParametersプロパティを使用して、データセットのクエリに渡される子テーブルのパラメータを作成し、2つのデータセットの共通フィールドに基づいてデータセットフィールドをフィルタします。
以下のレポートは、ネストした3つのTableデータ領域から構成され、3つの異なるデータセットからデータを取得します。

このレポートは、Northwindデータベース(NWind.mdb)のテーブルを使用しています。
Table1はProductsデータセットに、Table2はInvoicesデータセットに、Table3はCustomersデータセットに連結されています。Table1(親テーブル)は、Productsデータセットから製品名と在庫数の情報を表示します。Table2(子テーブル)は、各ProductIDに対して、Invoicesデータセットから船名と出荷元の情報を表示します。また、Table3(子テーブル)は、各CustomerIDに対して、Customersデータセットから連絡先、市区町村、電話番号の情報を表示します。
最終的には次の画像のようなレポートとなります。

以下のセクションでは、上記の両方の方法を使用してレポートを作成します。
フィルタの使用
両方の子テーブルでは、Filtersプロパティを使用してフィルタを追加します。
- Table2を選択し、[プロパティ]ウィンドウからFiltersプロパティに移動します。
- [Table - フィルタ]で、「=[ProductID]==[ProductID]」式を使用して、フィルタを追加します。「=[ProductID]」は、親テーブルと子テーブルのデータセットの共通フィールドです。

- Select Table3を選択し、[プロパティ]ウィンドウからFiltersプロパティに移動します。
- [Table - フィルタ]で、「=[CustomerID]=[CustomerID]」式を使用して、フィルタを追加します。「=[CustomerID]」は、親テーブルと子テーブルのデータセットの共通フィールドです。
パラメータの使用
子テーブルごとに、データセットに渡すパラメータを作成して、データセットフィールドをフィルタするようにデータセットクエリを変更します。
メモ:JSONデータセットにはパラメータコレクションがありません。したがって、データ領域のDataSetParametersに設定されたパラメータは、このようなデータセットでは使用できません。
これにより、データ領域のDataSetParametersは、そのようなデータセットと対話できません。
- Table2を選択し、DataSetParametersプロパティに移動します。
- Nameを「Parameter_ProductID」に、値を「=Fields!ProductID.Value」に設定して、新しいパラメータを追加します。

- Table2が連結されているデータセット(Invoices)を右クリックして、編集を選択します。
- 開いたダイアログでは、[パラメータ]ページに移動し、新しいパラメータParameter_ProductID(DataSetParameterと同じ名前)を追加します。

- [クエリ]ページに移動し、パラメータを含む文字列を既存のデータセットクエリに追加します。更新されたクエリは次のようになります。
select * from Invoices where ProductID = @Parameter_ProductID
同様に、
- Table3を選択し、DataSetParametersプロパティに移動します。
- Nameを「Parameter_CustomerID」に、値を「=Fields!CustomerID.Value」に設定して、新しいパラメータを追加します。
- Table3が連結されているデータセット(Customers)を右クリックして、編集を選択します。
- 開いたダイアログでは、[パラメータ]ページに移動し、新しいパラメータParameter_CustomerID(DataSetParameterと同じ名前)を追加します。
- [クエリ]ページに移動し、パラメータを含む文字列を既存のデータセットクエリに追加します。更新されたクエリは次のようになります。
select * from Invoices where ProductID = @Parameter_CustomerID
フィルタ、並べ替え、対話的な並べ替え
フィルタ
データソースから取得済みのデータに対してフィルタを設定することで、データセットまたはデータ領域において、ユーザーに表示する情報を制限することができます。パフォーマンスの面から見ると、データを元からフィルタするクエリパラメータは効率的ですが、フィルタを設定することが有効な場合もあります。たとえば、データソースがクエリパラメータをサポートしていない場合に有効です。
以下は、Tableデータ領域にフィルタを適用する方法を示します。
- テーブルを選択し、Filtersプロパティに移動します。

- [Table - フィルタ]ダイアログでは、[追加(+)]をクリックします。
[プロパティ設定ダイアログ]に移動し、[フィルタ]ページを選択することができます。
- [式]フィールドで、テーブルが連結されているデータセットから「=[UserRating]」式を選択します。
- [演算子]で、「GreaterThanOrEqual」を選択します。
- [値]で、データをフィルタリングする式を評価する値(たとえば、9)を入力します。
- [OK]をクリックします。
- レポートをプレビューすると、「レイティング」列には9以上の評価が表示されます。

並べ替え
並べ替えの機能を使用し、実行時にレポートのデータを並べ替えることができます。この機能により、データをアルファベット順、または数値を昇順、降順で並べ替えることができます。
以下は、Tableデータ領域に並べ替えを設定する方法を示します。
- Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択します。

- [並べ替え]ページに移動し、[追加(+)]をクリックします。
- [式]フィールドで、レポートのデータを並べ替える値を選択します(たとえば、=[UserRating])。
- [方向]で、[昇順]または[降順]オプションをクリックして並べ替え方向を選択します。
- [OK]をクリックします。
- レポートをプレビューします。「レイティング」列が昇順に並べ替えられます。

対話的な並べ替え
データ領域内にあるTextBoxコントロールに対して、対話的な並べ替えを設定することにより、ユーザーがビューワ上でデータを並べ替えることができます。
対話的な並べ替えを設定するには、[並べ替え]ページにある[対話的な並べ替えを有効にする]オプションを選択する必要があります。
TextBoxコントロールに対して、対話的な並べ替えを設定すると、ビューワ、またはプレビュータブで並べ替えのアイコンが表示されます。このアイコンをクリックし、ユーザーがTextBox内のデータを昇順、または降順に並べ替えることができます。
対話的な並べ替えのページでは、次のオプションが用意されています。
- 並べ替えの式:列内にあるデータに対して並べ替えの値を定義する式を設定します。
- 並べ替えの対象の選択:グループ化の範囲、またはレポート内にあるデータ領域を設定します。デフォルトでは、[現在の範囲]オプションが設定されているが、[データ領域またはグループの選択]オプションも選択することができます。
- 以下の範囲に並べ替えの式を適用する:並べ替えの式を適用するグループ化の範囲を設定します。デフォルトでは、[現在の範囲]オプションが設定されているが、[データ領域またはグループの選択]オプションも選択することができます。

列幅自動調整機能
Tableコントロールの列を動的に非表示にした後、他の列のAutoWidthプロパティを「Proportional」に設定することで、残っているスペースで列の幅を自動的に調整することができます。
たとえば、テーブルにタイトル、MPAAの評価、レイティング、国、言語の5つの列があります。MPAAの評価、レイティング、言語の列の表示/非表示は、テキストボックスで切り替えられます。これらの列を表示/非表示にすると、表示されているタイトルと国の列の幅は領域の幅を埋めるように広がります。

上記のようなレポートを作成する手順は、次のとおりです。
デザイン時のレイアウト

- MPAAの評価、レイティング、言語の列を選択します(Ctrl(Windows)またはCmd(Mac OS)キーを押しながら列ハンドラをクリックする)。
- [プロパティ]ウィンドウで、[Visibility] > [Hidden]を「False」に設定します。[ToggleItem]に、これらの列の表示/非表示を切り替えるテキストボックスの値を設定します。
- [タイトル]と[国]の列を選択します。
- [プロパティ]ウィンドウで、AutoWidthプロパティを「Proportional」に設定します。
- レポートをプレビューします。表示される列の列幅は、Tableデータ領域の幅を埋めるように広がります。これにより、テーブルに表示される列の数に関係なく、領域の幅は同じままになります。
Webデザイナ
Webデザイナに表示されるプロパティは、以下の通りです。
Table
カテゴリ |
プロパティ |
説明 |
全般 |
名前 |
名前を設定します。 |
データ |
データセット |
表示するデータセットを設定します。 |
データセットパラメータ |
データセットに渡すパラメータを設定します。 |
要素名 |
データ出力で使用する要素の名前を設定します。 |
要素出力 |
データ出力でデータを出力するかどうかを設定します。 |
詳細データの要素名 |
データ出力で使用する詳細データの要素の名前を設定します。 |
詳細データのコレクション名 |
データ出力で使用する詳細データのコレクションの名前を設定します。 |
詳細データの要素出力 |
データ出力で詳細データを出力するかどうかを設定します。 |
並べ替えの式 |
並べ替えの式を設定します。 |
フィルタ |
データを抽出するフィルタを設定します。 |
オーバーフローデータの連結先 |
オーバーフローしたデータを表示する連結先を設定します。 |
背景 |
背景色 |
背景色を設定します。 |
画像 |
背景に表示する画像を設定します。 |
罫線 |
太さ |
罫線の太さを設定します。 |
スタイル |
罫線の種類を設定します。 |
色 |
罫線の色を設定します。 |
位置とサイズ |
左 |
左位置を設定します。 |
上 |
上位置を設定します。 |
幅 |
幅を設定します。 |
高さ |
高さを設定します。 |
固定の幅 |
拡張できる幅の上限を設定します。 |
固定の高さ |
拡張できる高さの上限を設定します。 |
レイアウト |
スタイル |
スタイル名を設定します。 |
パディング |
罫線との間のパディング(余白)を設定します。 |
レイヤー名 |
含まれるレイヤーの名前を設定します。 |
改ページ |
改ページのタイミングを設定します。 |
新ページ |
改ページ後に、ページを開始する位置を設定します。 |
行の固定表示 |
固定して表示する行数を設定します。 |
列の固定表示 |
固定して表示する列数を設定します。 |
フッタ行のみのページの出力を防止 |
フッタ行だけのページが出力されないように設定します。 |
データ領域毎にページ番号を設定 |
データ領域毎にページ番号をカウントするかどうかを設定します。 |
1ページ内に収める |
1ページ内に収めて表示するかどうかを設定します。 |
Zインデックス |
レポートアイテム同士の重なりの優先順位を設定します。 |
空行出力 |
空行を出力する方法を設定します。 |
データなし |
データがない場合のメッセージ |
データがない場合に表示するメッセージを設定します。 |
色 |
テキストの色を設定します。 |
フォント名 |
フォントの種類を設定します。 |
サイズ |
フォントのサイズを設定します。 |
スタイル |
フォントのスタイルを設定します。 |
太さ |
フォントの太さを設定します。 |
文字飾り |
テキストの下、上、または中央に線を追加します。 |
水平方向の整列 |
テキストの水平方向の配置を設定します。 |
垂直方向の整列 |
テキストの垂直方向の配置を設定します。 |
表示形式 |
日付、数値の表示書式を設定します。 |
表示 |
非表示 |
非表示にするかどうかを設定します。 |
トグルスイッチにする項目 |
表示/非表示の切り替えに使うテキストボックスの名前を設定します。 |
インターナショナル |
カレンダー |
日付の書式設定に使用するカレンダーを設定します。 |
方向 |
テキストの表示方向を設定します(左書き、右書き)。 |
言語 |
テキストの主要言語を設定します。 |
桁形式 |
桁形式を設定します。 |
桁形式の言語変種 |
桁形式の変化形を設定します。 |
Unicodeの文字表記の方向 |
左書き、右書きが混在する場合の文字表記の方向を設定します。 |
縦中横 |
縦書きの中で特定の文字を横向き表示するかどうかを設定します。 |
文字表記の方向 |
テキストの表示方向を設定します(横書き、縦書き)。 |
その他 |
ページ名 |
Excelファイルに出力する際のシート名を設定します。 |
ツールチップ |
カーソルを合わせたときに表示するテキストを設定します。 |
ラベル |
目次に表示するラベルを設定します。 |
ブックマークID |
ブックマークのIDを設定します。 |
Table(行)
カテゴリ |
プロパティ |
説明 |
位置とサイズ |
高さ |
高さを設定します。 |
アクション |
種類 |
クリックしたときに実行するアクションを設定します。 |
ヘッダ |
すべてのページに表示 |
すべてのページに表示するかどうかを設定します。 |
フッタ |
ページ下部に表示 |
フッタをページ下部に表示するかどうかを設定します。 |
すべてのページに表示 |
すべてのページに表示するかどうかを設定します。 |
表示 |
非表示 |
非表示にするかどうかを設定します。 |
トグルスイッチにする項目 |
表示/非表示の切り替えに使うテキストボックスの名前を設定します。 |
Table(列)
カテゴリ |
プロパティ |
説明 |
レイアウト |
幅の自動調整 |
列の幅を自動で調整するかどうかを設定します。 |
位置とサイズ |
幅 |
幅を設定します。 |
表示 |
非表示 |
非表示にするかどうかを設定します。 |
トグルスイッチにする項目 |
表示/非表示の切り替えに使うテキストボックスの名前を設定します。 |
Table(グループ)
カテゴリ |
プロパティ |
説明 |
グループ |
名前 |
グループの名前を設定します。 |
式 |
データをグループ化するための式を設定します。 |
改ページ |
改ページのタイミングを設定します。 |
新ページ |
改ページ後に、ページを開始する位置を設定します。 |
親グループ |
親グループを設定します。 |
ラベル |
目次に表示するラベルを設定します。 |
要素名 |
データ出力で使用する要素の名前を設定します。 |
要素出力 |
データ出力でデータを出力するかどうかを設定します。 |
グループ毎にページ番号を設定 |
グループ毎にページ番号をカウントするかどうかを設定します。 |
フィルタ |
データを抽出するフィルタを設定します。 |
データ |
並べ替えの式 |
並べ替えの式を設定します。 |
レイアウト |
1ページ内に収める |
1ページ内に収めて表示するかどうかを設定します。 |
フッタ行のみのページの出力を防止 |
フッタ行だけのページが出力されないように設定します。 |
表示 |
非表示 |
非表示にするかどうかを設定します。 |
トグルスイッチにする項目 |
表示/非表示の切り替えに使うテキストボックスの名前を設定します。 |
Table(詳細)
カテゴリ |
プロパティ |
説明 |
グループ |
名前 |
グループの名前を設定します。 |
式 |
データをグループ化するための式を設定します。 |
改ページ |
改ページのタイミングを設定します。 |
新ページ |
改ページ後に、ページを開始する位置を設定します。 |
親グループ |
親グループを設定します。 |
ラベル |
目次に表示するラベルを設定します。 |
要素名 |
データ出力で使用する要素の名前を設定します。 |
要素出力 |
データ出力でデータを出力するかどうかを設定します。 |
グループ毎にページ番号を設定 |
グループ毎にページ番号をカウントするかどうかを設定します。 |
フィルタ |
データを抽出するフィルタを設定します。 |
データ |
並べ替えの式 |
並べ替えの式を設定します。 |
表示 |
非表示 |
非表示にするかどうかを設定します。 |
トグルスイッチにする項目 |
表示/非表示の切り替えに使うテキストボックスの名前を設定します。 |
関連トピック