SQL Server Reporting ServicesでTablix ヘッダー行を各ページに繰り返し表示する方法:詳細解説

2024-05-02

レポートビルダー 3.0 で Tablix ヘッダー行を各ページに繰り返し表示する方法

SQL Server Reporting Services (SSRS) のレポートビルダー 3.0 において、Tablix ヘッダー行を各ページに繰り返し表示するには、以下の手順に従います。

Tablix プロパティを設定

  1. Tablix を選択します。
  2. プロパティウィンドウを開きます。
  3. 詳細 タブをクリックします。
  4. 行の繰り返し プロパティを ページベース に設定します。

ヘッダー行を固定

  1. ヘッダー行を選択します。
  2. 右クリックメニューから 行の固定 を選択します。

ヘッダー行の表示条件を設定

  1. 行の表示 ダイアログボックスが開きます。
  2. 行グループ ドロップダウンリストから (なし) を選択します。

これらの手順を実行すると、Tablix ヘッダー行が各ページに繰り返し表示されます。

補足

  • ヘッダー行を固定すると、スクロール時に常に表示されます。
  • ヘッダー行の表示条件を設定することで、特定の条件下でのみヘッダー行を表示できます。
  • 上記の手順は SQL Server Reporting Services バージョン 3.0 を対象としています。他のバージョンでは異なる場合があります。
  • ヘッダー行を繰り返し表示する方法は他にもあります。詳細は SSRS のドキュメントを参照してください。



<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" version="3.0">
  <Body>
    <Tablix Name="Tablix1">
      <TablixBody>
        <tr>
          <TableCell>
            <Data>
              </Data>
          </TableCell>
        </tr>
      </TablixBody>
      <RowGroups>
        <RowGroup Name="RG1">
          </RowGroup>
      </RowGroups>
      <TopCorners>
        <TopCorner>
          <Cell Text="ヘッダー" />
        </TopCorner>
      </TopCorners>
      <VisualStyles>
        <TextStyle Name="HeaderStyle" ForeColor="#FF0000" FontWeight="Bold" />
      </VisualStyles>
    </Tablix>
  </Body>
  <PageSettings>
    <ReportSize>
      <Width>8.5in</Width>
      <Height>11in</Height>
    </ReportSize>
  </PageSettings>
</Report>

説明

このサンプルコードは、以下のことを行います。

  • Tablix コントロールを作成します。
  • TablixBody にデータ行を挿入します。
  • RowGroups コレクションに RowGroup コントロールを追加します。この RowGroup コントロールは、Tablix データをグループ化します。
  • VisualStyles コレクションに TextStyle コントロールを追加します。この TextStyle コントロールは、ヘッダーセルのスタイルを定義します。

使用方法

  1. 上記のコードをテキストエディタで開きます。
  2. データ行とグループ化条件を挿入します。
  3. ヘッダーセルのテキストとスタイルを変更します。
  4. コードを保存します。
  5. SQL Server Reporting Services でレポートをデザインして実行します。

結果

レポートが実行されると、Tablix ヘッダー行が各ページに繰り返し表示されます。ヘッダー行は、HeaderStyle スタイルで定義されたスタイルで表示されます。

注意

このサンプルコードはあくまで例であり、ニーズに合わせて変更する必要があります。




Tablix ヘッダー行を各ページに繰り返し表示するその他の方法

前述の方法に加えて、Tablix ヘッダー行を各ページに繰り返し表示する方法は他にもいくつかあります。

集計関数を挿入

Tablix ヘッダー行に集計関数 (SUM、AVG、COUNT など) を挿入することで、各ページにヘッダー行とその集計結果を表示することができます。

手順

  1. ヘッダー行に新しいセルを追加します。
  2. セルに集計関数を入力します。
  3. 集計関数の引数として、集計対象となる列を指定します。

<tr>
  <TableCell>
    <Data>売上合計: [SUM(SalesAmount)]</Data>
  </TableCell>
</tr>

式を使用

Tablix ヘッダー行に式を使用することで、動的なヘッダーテキストを表示することができます。

  1. 式には、レポートパラメータやグローバル変数などの値を含めることができます。
<tr>
  <TableCell>
    <Data>レポート期間: [StartDate] - [EndDate]</Data>
  </TableCell>
</tr>

サブレポートを使用

  1. セルにサブレポートアイテムを追加します。
  2. サブレポートアイテムのプロパティで、サブレポートファイルパスを指定します。

カスタムコードを使用

C# または VB.NET などの言語を使用して、カスタムコードで Tablix ヘッダー行を繰り返し表示することができます。

  1. レポートのコードビハインドファイルを開きます。
  2. Tablix コントロールの BeforePrint イベントハンドラーを作成します。
  3. イベントハンドラー内で、Tablix ヘッダー行を各ページに繰り返し表示するコードを記述します。
private void Tablix1_BeforePrint(object sender, PrintEventArgs e)
{
  // ヘッダー行を固定
  this.Tablix1.RowHeaders.IsFixed = true;

  // ヘッダー行を各ページに繰り返し表示
  this.Tablix1.RowHeaders.RepeatOnEachPage = true;
}

これらの方法は、それぞれ異なる利点と欠点があります。状況に応じて最適な方法を選択してください。

  • ヘッダー行を繰り返し表示する場合は、レポートのパフォーマンスに影響を与える可能性があります。パフォーマンスが問題になる場合は、他の方法を検討する必要があります。

sql-server reporting-services ssrs-tablix


SQL Serverでクエリが何も返さない場合にデフォルト行を設定する方法

SELECT ステートメントは、通常、テーブルからデータを取得します。しかし、条件に合致するデータがない場合、何も返さないこともあります。この場合、デフォルト行を設定することで、常に1行のデータを表示することができます。方法デフォルト行を設定するには、次の2つの方法があります。...


SQL Serverで特定のテーブルを参照するすべての外部キーを一覧表示する方法

このチュートリアルでは、SQL Server Management Studio (SSMS) と Transact-SQL (T-SQL) クエリを使用して、特定のテーブルを参照するすべての外部キーを一覧表示する方法を説明します。方法SSMS を使用...


【SQL Server】FROM句、OUTPUT句、MERGE文を使ったSELECT結果からのUPDATE

方法FROM句を使用する最もシンプルで直感的な方法です。 UPDATE文のFROM句でSELECT文を指定することで、SELECT結果を基に更新対象レコードを特定できます。例:この例では、注文ステータスが完了の顧客の氏名を、注文テーブルから取得して更新します。...


SQL Serverにおける一時テーブルの使い分け:ローカルとグローバル、それぞれの役割と利点

概要SQL Serverには、2種類の仮テーブル、ローカル一時テーブルとグローバル一時テーブルがあります。どちらも、処理中に一時的にデータを保持するために使用されますが、スコープと存続期間が異なります。ローカル一時テーブルユーザーの現在のセッション内でのみ有効です。...


クラスター化テーブルインデックスによる継承表現

SQL Serverでは、テーブル間の親子関係を表現する「継承」機能は直接提供されていません。しかし、いくつかの代替方法を用いることで、継承関係を模倣することができます。代替方法テーブル階層最も単純な方法は、テーブル階層を作成することです。親テーブルには共通属性、子テーブルには固有属性を定義します。...