none
[SSRS]1ページに表示する件数を指定するには? RRS feed

  • 質問

  • Windows Server 2008
    SQL Server 2008
    -BI Development Studio


    お世話になっております。
    Reporting Servicesについて質問です。

    レポートに、とあるテーブルのデータを一覧で表示させています。
    件数が多いので1ページあたり10件のレコードを表示させたいと考えていますが、件数を指定するにはどうすれば良いでしょうか?

    例えばサンプルデータベースであるAdventureWorksDW2008のDimEmployeeテーブルからEmployeeKeyとFirstNameの一覧を表示させようとすると
    1ページあたりEmployeeKeyが1から46までの一覧が表示されます。
    [グループのプロパティ]から[改ページ]-[グループの各インスタンスの間]にチェックをつけると、1行毎に改行されてしまいます。

    これをEmployeeKeyが1から10までの一覧を1ページに表示させたい、という意味です。
    どこかにRowCountを指定するようなプロパティがあるのでしょうか・・・。
    それともクエリの書き方でどうにかなるのでしょうか・・・。


    どうぞ宜しくお願いします。
    2009年7月29日 2:38

回答

  • Tablix に、PageBreak のための行グループを追加して対応できると思います。

    1. Tablix に行グループを追加
    ※「詳細」にあたるグループの上位グループとして作成します。(名前:Group1 とします。)

    2. グループ"Group1"にグループ式を追加
    グループ"Group1"のプロパティの「全般」ページにて
    例えばこんな感じ↓で、 行番号を"1ページあたりの行数"で割り算して切り上げ、などの方法でグループ化します。
    =Ceiling(RowNumber(Nothing)/5)
    ※最後の"5"を好きな数字に変更してください。

    3. グループ"Group1"の「改ページ」オプションを指定
    グループ"Group1"のプロパティの「改ページ」ページにて、オプション「グループの各インスタンスの間」をチェックします。
    ※「グループの各インスタンス」はグループ式で同じ値になる行の集まりです。

    これで 5行ごとに改ページするようになりますが、2ページ目以降の行ヘッダが表示されません。
    表示したい場合、グループ"Group1"に該当する行を挿入して、行ヘッダにあたる文字列(項目名など)を記述するとうまくいくと思います。

    • 編集済み nagasakit 2009年7月30日 9:24
    • 回答としてマーク 服部清次 2009年8月5日 5:46
    2009年7月30日 9:22

すべての返信

  • Tablix に、PageBreak のための行グループを追加して対応できると思います。

    1. Tablix に行グループを追加
    ※「詳細」にあたるグループの上位グループとして作成します。(名前:Group1 とします。)

    2. グループ"Group1"にグループ式を追加
    グループ"Group1"のプロパティの「全般」ページにて
    例えばこんな感じ↓で、 行番号を"1ページあたりの行数"で割り算して切り上げ、などの方法でグループ化します。
    =Ceiling(RowNumber(Nothing)/5)
    ※最後の"5"を好きな数字に変更してください。

    3. グループ"Group1"の「改ページ」オプションを指定
    グループ"Group1"のプロパティの「改ページ」ページにて、オプション「グループの各インスタンスの間」をチェックします。
    ※「グループの各インスタンス」はグループ式で同じ値になる行の集まりです。

    これで 5行ごとに改ページするようになりますが、2ページ目以降の行ヘッダが表示されません。
    表示したい場合、グループ"Group1"に該当する行を挿入して、行ヘッダにあたる文字列(項目名など)を記述するとうまくいくと思います。

    • 編集済み nagasakit 2009年7月30日 9:24
    • 回答としてマーク 服部清次 2009年8月5日 5:46
    2009年7月30日 9:22
  • nagasakit さん

    ありがとうございます!期待する実装が出来ました。

    Technetの「式の例」
    http://technet.microsoft.com/ja-jp/library/ms157328.aspx#PageBreaks

    を見て実現出来るかと思って、「詳細」行グループにグループ式(=Ceiling.../5)を代入したところ単に5行おきにレコードが表示するだけで困っていました。
    上位グループを追加すればいいんですね。気づきませんでした。


    丁寧に解説して頂けて分かりやすかったです。ありがとうございました。
    2009年7月30日 12:12
  • こんにちは!
    フォーラム オペレーターの服部 清次です。

    > nagasakit さん、
    とても分かりやすく説明していただき、ありがとうございます!

    > pache01 さん、
    無事ご希望の実装が実現できたとのことで何よりです!
    今回、nagasakit さんの回答が役に立ったようですので、私の方で、[回答としてマーク] のチェックを付けさせていただきました。

    また何か困ったことがありましたら、ぜひ TechNet フォーラムをご利用ください。
    これからも、よろしくお願いします。
    それでは、また! (^_^)/


    __________________________________________________
    マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    • 編集済み 服部清次 2009年8月5日 6:00 脱字修正
    2009年8月5日 5:57