ActiveReports for .NET 18.0J
Table
ActiveReportsユーザーガイド > 概念 > ページレポート/RDLレポートの概念 > ページレポート/RDLレポートのレポートコントロール > Table

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

構造

Table Structure

:テーブル内の垂直方向のセルのグループです。列ハンドラを右クリックし、コンテキストメニューを使用して、新しい列を追加したり、既存の列を削除したりすることができます。

:テーブル内の水平方向のセルのグループです。行ハンドラを右クリックし、コンテキストメニューを使用して、新しい行を追加したり、既存の行を削除したりできます。

セル:行と列の共通部分です。デフォルトでは、各セルにはTextBoxコントロールが含まれています。ただし、ツールボックスからImageなどの他のコントロールをセルにドラッグ&ドロップすることもできます。

ヘッダ行:テーブルの先頭に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合、各ページにヘッダが出力されます。ヘッダを使用して、表形式のレポートのタイトルまたはロゴを表示できます。テーブルには複数のヘッダ行を設定することができます。

グループヘッダ行:グループの先頭に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにグループヘッダが出力されます。また、グループヘッダ行を使用して、グループのフィールド値または集計値を表示できます。グループには複数のグループヘッダ行を設定することができます。

詳細行:データセットおよびデータ領域のフィルタを通過したレコード毎に繰り返されます。Tableデータ領域では詳細行のグループ化を設定すると、詳細行はテーブルのグループのヘッダとフッタの間に表示されます。テーブルには複数の詳細行を含むことができます。

グループフッタ行:テーブルのグループの最後に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにグループフッタが出力されます。また、グループフッタ行を使用して、集計値を表示できます。グループには複数のフッタ行を含むことができます。

フッタ行:テーブルの最後に表示されます。RepeatOnNewPageプロパティをTrueに設定すると、テーブルが複数ページにまたがる場合は、各ページにフッタが出力されます。また、フッタ行を使用して、総計を表示できます。

テーブルレイアウトのオプション

Tableデータ領域には、基本的なレイアウト操作を実行するためにコンテキストメニューのさまざまなオプションが用意されています。選択した行を右クリックして、コンテキストメニューからテーブル行のレイアウトオプションを使用できます。

選択した列を右クリックして、コンテキストメニューからテーブル列のレイアウトオプションを使用できます。

プロパティ設定ダイアログ

Tableデータ領域のプロパティは、プロパティ設定ダイアログで指定することができます。このダイアログを表示するには、レポート上のTableデータ領域を選択した状態で、[プロパティ]ウィンドウ内にある[プロパティ設定ダイアログ]のリンクをクリックします。表示される[Table]ダイアログが、Tableデータ領域のプロパティ設定ダイアログにあたります。

[名前]:まだレポートに使用されていない一意のTableの名前を入力します。この名前はコード内で呼び出すことができます。

[ツールヒント]:HTMLレポートでTITLE属性やALT属性を表示するために使用されるレポートアイテムのテキストラベル。

[データセット名]:テーブルと関連付けるデータセットを選択します。コンボボックスはレポートのデータセットコレクションにあるすべてのデータセットを表示します。

[データ領域毎にページ番号を設定]:データ領域毎にページ番号を出力するかどうかを設定します。

改ページ(RDLレポート)

  • テーブルの前で改ページする
  • テーブルの後で改ページする
  • 可能な限り1ページ内にテーブルを表示する

NewPage(RDLレポート):

  • Next:レポートの次のページから新しいグループの表示を開始します(デフォルト値)。
  • Odd:レポートの次の奇数ページから新しいグループの表示を開始します。
  • Even:レポートの次の偶数ページから新しいグループの表示を開始します。

詳細については、「データ領域での改ページ」を参照してください。

[ヘッダ/フッタ]:以下の任意オプションを選択します。

  • [すべてのページにヘッダ行を表示する]
  • [すべてのページにフッタ行を表示する]
  • [フッタ行のみのページの出力を防止する]

テーブルにデータを追加する

レポート上にテーブルを配置すると、セルにデータを追加することができるようになります。また、他のデータ領域と同様に、フィールドをドラッグしてテーブルのセル上に配置することができます。デフォルトで各セルにTextBoxコントロールが配置されていますが、任意のコントロールと置き換えて使用することができます。詳細行のセルにフィールドをドラッグする場合、ActiveReportsは自動的にテーブルヘッダにラベルを提供します。また、式を使用してテーブルのセル内のデータを操作することができます。詳細については、「」を参照してください。

  1. ツールボックスからTableをダブルクリックするか、デザイン面にドラッグ&ドロップします。
  2. レポートエクスプローラから、データセットを展開し、詳細行にフィールドをドラッグ&ドロップします。  

Adding data to Table from Report Explorer

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


Adding data to Table with Fields Selection Adorner

テーブルの機能

グループ化

グループはデータを整理し、データ分析を容易にします。Tableデータ領域では、[ナビゲーション]ページにある[見出しマップラベル]に値を指定することで、グループに基づいて見出しマップを作成することができます。見出しマップおよびナビゲーションの詳細については、「見出しマップ」を参照してください。

次の例では、ReelsデータベースのMovieテーブルのデータを使用してレポートを作成し、グループ化を説明します。レポートは、映画のタイトル、MPAAの評価、およびレイティングを表示するテーブルで構成されています。
Table with Movie Details at design


Table with Movie Details at run time

他のデータセットフィールド(たとえば、YearReleased)に従ってテーブルのデータをグループ化し、映画が公開された年に基づいて詳細をグループ化できます。

次の手順では、[グループ化の条件]の式を使用してテーブルにグループを追加する方法を説明します。

  1. Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択し、[Table-グループ]を開きます。
    メモ:Tableデータ領域のコンテキストメニューで[グループを挿入]を選択し、表示される[Table-グループ]ダイアログでグループを追加することができます。
  2. [グループ]ページに移動し、[追加(+)]をクリックします。
  3. [グループ化の条件]では、データをグループ化する式を入力します。たとえば、
    =Fields!YearReleased.Value.
    Adding a group to Table
  4. [OK]をクリックしてダイアログを閉じます。次のように、グループヘッダとグループフッタが追加されます。
    Table with an added group at design
  5. グループヘッダ行のセルを結合し、次のようにValueプロパティに式を入力します。
    =[YearReleased]
    Merging cells in the Table Group Header
    これにより、グループ値が表示され、各グループの上にまたがって出力されます。
  6. レポートをプレビューします。テーブルは次のようになります。
    Table with grouping at preview

詳細行のグループ化

テーブルのデータをグループ化するもう一つの方法は、グループを追加せずに詳細行をグループ化することです。[詳細行のグループ化]は、詳細行内の各データ行に対して、個別のグループ化値または式ごとに1行だけが表示されるようにデータをグループ化します。また、グループヘッダとグループフッタは追加されません。詳細行のグループ化は、詳細行内で同じ値を繰り返し表示したくない場合に便利です。

次の例では、詳細行のグループ化を使用してテーブルデータをグループ化する方法を説明します。たとえば、映画のタイトル、MPAAの評価、およびレイティングを表示するテーブルを含むレポートがあります。このレポートは、ReelsデータベースのMovieテーブルのデータを使用しています。
Table with Movie Details at design   

  1. Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択し、[Table-グループ]を開きます。
  2. [詳細行のグループ化]ページに移動し、[グループ化の条件]では、データをグループ化する式を入力します。たとえば、,
    =Fields!YearReleased.Value.
    Table Detail Grouping dialog
  3. [OK]をクリックしてダイアログを閉じます。
  4. レポートをプレビューします。テーブルは次のようになります。
    Table with added detail grouping at preview

セルの結合

テーブルの同じ行または列にある隣接するセルを1つのセルに結合できます。垂直方向に結合するにはセルが同じ行にあり、ヘッダなら同じヘッダ行内、グループヘッダなら同じグループヘッダ行内、フッタなら同じフッタ行内、詳細行なら同じ詳細行内である必要があります。

セルを結合するには、次の手順を実行します。

  1. Ctrlキーを押しながら、セルを選択し、選択範囲を右クリックします。
  2. コンテキストメニューから[セルの結合]を選択します。

自動結合

AutoMergeModeプロパティを使用すると、同じ値を含む詳細行の隣接するセルを結合するモードを設定できます。AutoMergeModeプロパティを設定する場合は以下のオプションがあります。

以下の手順は、Tableデータ領域のセルに自動結合設定を追加する方法を説明します。

Orders Table at design

Orders Table at preview

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

行/列の固定表示(RDLレポート)

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

次の画像は、ゲラモード使用時のRDLレポートをJSビューワで表示したようすを表しており、FrozenRowsに1、FrozenColumnsに1を設定しています。

Table with frozen rows and columns at preview

固定表示したいヘッダに含まれるセルの個数よりも少ない値をFrozenRowsプロパティ、またはFrozenColumnsプロパティに設定することはお勧めできません。

Tableデータ領域のネスト

ページレポートおよびRDLレポートでは、異なるデータセットに連結されたTableデータ領域をネストして使用することができます。ネストしたTableを使用して異なるデータセットからデータを表示するには、次のいずれかの方法を使用できます。

以下のレポートは、ネストした3つのTableデータ領域から構成され、3つの異なるデータセットからデータを取得します。

Nesting in Tables at design

このレポートは、Northwindデータベース(NWind.mdb)のテーブルを使用しています。

Table1はProductsデータセットに、Table2はInvoicesデータセットに、Table3はCustomersデータセットに連結されています。Table1(親テーブル)は、Productsデータセットから製品名と在庫数の情報を表示します。Table2(子テーブル)は、各ProductIDに対して、Invoicesデータセットから船名と出荷元の情報を表示します。また、Table3(子テーブル)は、各CustomerIDに対して、Customersデータセットから連絡先、市区町村、電話番号の情報を表示します。

最終的には次の画像のようなレポートとなります。

Nesting in Tables at preview

 

以下のセクションでは、上記の両方の方法を使用してレポートを作成します。

フィルタの使用

両方の子テーブルでは、Filtersプロパティを使用してフィルタを追加します。

  1. Table2を選択し、[プロパティ]ウィンドウからFiltersプロパティに移動します。
  2. [Table - フィルタ]で、「=[ProductID]==[ProductID]」式を使用して、フィルタを追加します。「=[ProductID]」は、親テーブルと子テーブルのデータセットの共通フィールドです。

    Table Filters Dialog
  1. Select Table3を選択し、[プロパティ]ウィンドウからFiltersプロパティに移動します。
  2. [Table - フィルタ]で、「=[CustomerID]=[CustomerID]」式を使用して、フィルタを追加します。「=[CustomerID]」は、親テーブルと子テーブルのデータセットの共通フィールドです。

パラメータの使用

子テーブルごとに、データセットに渡すパラメータを作成して、データセットフィールドをフィルタするようにデータセットクエリを変更します。

メモ:JSONデータセットにはパラメータコレクションがありません。したがって、データ領域のDataSetParametersに設定されたパラメータは、このようなデータセットでは使用できません。

これにより、データ領域のDataSetParametersは、そのようなデータセットと対話できません。

  1. Table2を選択し、DataSetParametersプロパティに移動します。
  2. Nameを「Parameter_ProductID」に、を「=Fields!ProductID.Value」に設定して、新しいパラメータを追加します。
     DatasetParameterDesigner Collection Editor
  3. Table2が連結されているデータセット(Invoices)を右クリックして、編集を選択します。
  4. 開いたダイアログでは、[パラメータ]ページに移動し、新しいパラメータParameter_ProductID(DataSetParameterと同じ名前)を追加します。
    DataSet Parameters Dialog
  5. [クエリ]ページに移動し、パラメータを含む文字列を既存のデータセットクエリに追加します。更新されたクエリは次のようになります。
    select * from Invoices where ProductID = @Parameter_ProductID

同様に、

  1. Table3を選択し、DataSetParametersプロパティに移動します。
  2. Nameを「Parameter_CustomerID」に、を「=Fields!CustomerID.Value」に設定して、新しいパラメータを追加します。
  3. Table3が連結されているデータセット(Customers)を右クリックして、編集を選択します。
  4. 開いたダイアログでは、[パラメータ]ページに移動し、新しいパラメータParameter_CustomerID(DataSetParameterと同じ名前)を追加します。
  5. [クエリ]ページに移動し、パラメータを含む文字列を既存のデータセットクエリに追加します。更新されたクエリは次のようになります。
    select * from Invoices where ProductID = @Parameter_CustomerID

フィルタ、並べ替え、対話的な並べ替え

フィルタ

データソースから取得済みのデータに対してフィルタを設定することで、データセットまたはデータ領域において、ユーザーに表示する情報を制限することができます。パフォーマンスの面から見ると、データを元からフィルタするクエリパラメータは効率的ですが、フィルタを設定することが有効な場合もあります。たとえば、データソースがクエリパラメータをサポートしていない場合に有効です。

以下は、Tableデータ領域にフィルタを適用する方法を示します。

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

並べ替え

並べ替えの機能を使用し、実行時にレポートのデータを並べ替えることができます。この機能により、データをアルファベット順、または数値を昇順、降順で並べ替えることができます。

以下は、Tableデータ領域に並べ替えを設定する方法を示します。

  1. Tableデータ領域を選択した状態で、[プロパティ]ウィンドウの下部にある[プロパティ設定ダイアログ]リンクを選択します。
    Table Sorting Dialog
  2. [並べ替え]ページに移動し、[追加(+)]をクリックします。
  3. [式]フィールドで、レポートのデータを並べ替える値を選択します(たとえば、=[UserRating])。
  4. [方向]で、[昇順]または[降順]オプションをクリックして並べ替え方向を選択します。
  5. [OK]をクリックします。
  6. レポートをプレビューします。「レイティング」列が昇順に並べ替えられます。
    Table with sorting at preview

対話的な並べ替え

データ領域内にあるTextBoxコントロールに対して、対話的な並べ替えを設定することにより、ユーザーがビューワ上でデータを並べ替えることができます。

対話的な並べ替えを設定するには、[並べ替え]ページにある[対話的な並べ替えを有効にする]オプションを選択する必要があります。

TextBoxコントロールに対して、対話的な並べ替えを設定すると、ビューワ、またはプレビュータブで並べ替えのアイコンが表示されます。このアイコンをクリックし、ユーザーがTextBox内のデータを昇順、または降順に並べ替えることができます。

対話的な並べ替えのページでは、次のオプションが用意されています。

Table with interactive sorting at preview

列幅自動調整機能

Tableコントロールの列を動的に非表示にした後、他の列のAutoWidthプロパティを「Proportional」に設定することで、残っているスペースで列の幅を自動的に調整することができます。

たとえば、テーブルにタイトル、MPAAの評価、レイティング、国、言語の5つの列があります。MPAAの評価、レイティング、言語の列の表示/非表示は、テキストボックスで切り替えられます。これらの列を表示/非表示にすると、表示されているタイトルと国の列の幅は領域の幅を埋めるように広がります。

Dynamic columns in Table at preview

上記のようなレポートを作成する手順は、次のとおりです。

デザイン時のレイアウト


Designing dynamic coulmns in Table

  1. MPAAの評価、レイティング、言語の列を選択します(Ctrl(Windows)またはCmd(Mac OS)キーを押しながら列ハンドラをクリックする)。
  2. [プロパティ]ウィンドウで、[Visibility] > [Hidden]を「False」に設定します。[ToggleItem]に、これらの列の表示/非表示を切り替えるテキストボックスの値を設定します。
  3. [タイトル]と[国]の列を選択します。
  4. [プロパティ]ウィンドウで、AutoWidthプロパティを「Proportional」に設定します。
  5. レポートをプレビューします。表示される列の列幅は、Tableデータ領域の幅を埋めるように広がります。これにより、テーブルに表示される列の数に関係なく、領域の幅は同じままになります。

Webデザイナ

Webデザイナに表示されるプロパティは、以下の通りです。

Table

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

Table(行)

カテゴリ プロパティ 説明
位置とサイズ 高さ 高さを設定します。
アクション​ 種類​ クリックしたときに実行するアクションを設定します。
ヘッダ すべてのページに表示 すべてのページに表示するかどうかを設定します。
フッタ ページ下部に表示 フッタをページ下部に表示するかどうかを設定します。
すべてのページに表示 すべてのページに表示するかどうかを設定します。
表示 非表示 非表示にするかどうかを設定します。
トグルスイッチにする項目 表示/非表示の切り替えに使うテキストボックスの名前を設定します。

Table(列)

カテゴリ プロパティ 説明
レイアウト 幅の自動調整 列の幅を自動で調整するかどうかを設定します。
位置とサイズ 幅を設定します。
表示 非表示 非表示にするかどうかを設定します。
トグルスイッチにする項目 表示/非表示の切り替えに使うテキストボックスの名前を設定します。

Table(グループ)

カテゴリ プロパティ 説明
グループ 名前​ グループの名前を設定します。
データをグループ化するための式を設定します。
改ページ 改ページのタイミングを設定します。
新ページ 改ページ後に、ページを開始する位置を設定します。
親グループ 親グループを設定します。
ラベル 目次に表示するラベルを設定します。
要素名 データ出力で使用する要素の名前を設定します。
要素出力 データ出力でデータを出力するかどうかを設定します。
グループ毎にページ番号を設定 グループ毎にページ番号をカウントするかどうかを設定します。
フィルタ データを抽出するフィルタを設定します。
データ 並べ替えの式 並べ替えの式を設定します。
レイアウト 1ページ内に収める 1ページ内に収めて表示するかどうかを設定します。
フッタ行のみのページの出力を防止 フッタ行だけのページが出力されないように設定します。
表示 非表示 非表示にするかどうかを設定します。
トグルスイッチにする項目 表示/非表示の切り替えに使うテキストボックスの名前を設定します。

Table(詳細)

カテゴリ プロパティ 説明
グループ 名前​ グループの名前を設定します。
データをグループ化するための式を設定します。
改ページ 改ページのタイミングを設定します。
新ページ 改ページ後に、ページを開始する位置を設定します。
親グループ 親グループを設定します。
ラベル 目次に表示するラベルを設定します。
要素名 データ出力で使用する要素の名前を設定します。
要素出力 データ出力でデータを出力するかどうかを設定します。
グループ毎にページ番号を設定 グループ毎にページ番号をカウントするかどうかを設定します。
フィルタ データを抽出するフィルタを設定します。
データ 並べ替えの式 並べ替えの式を設定します。
表示 非表示 非表示にするかどうかを設定します。
トグルスイッチにする項目 表示/非表示の切り替えに使うテキストボックスの名前を設定します。

関連トピック