このカスタムレポートを検討してください。
そのページ番号をすべてのページで自動的に生成したい。横向きのページがいくつかあります。フッターにページ番号を配置したいのですが、横向きレポートのフッターはページの右側ではなくページ下部に配置されるため、横向きレポートで問題が発生します。ページ番号を本文セクションに配置する必要があります。
本文セクションにページ番号を配置するにはどうすればよいですか?
このカスタムレポートを検討してください。
そのページ番号をすべてのページで自動的に生成したい。横向きのページがいくつかあります。フッターにページ番号を配置したいのですが、横向きレポートのフッターはページの右側ではなくページ下部に配置されるため、横向きレポートで問題が発生します。ページ番号を本文セクションに配置する必要があります。
本文セクションにページ番号を配置するにはどうすればよいですか?
あなたが創造的にならなければ、これは不可能だと思います。
現時点でプログラムが手元にないので、これがいくつかの考えを始めることができることを願っています。
行数を数えてデータにexrta列を追加し、x行ごとにページ分割を強制してみてください。それがうまくいけば、視覚的に正しくするためにいくつかのフォーマットで遊ぶことができるかもしれません。
頑張ってね!
この記事は役に立つかもしれません:SSRSでページ番号を決定する
SSRSでページ番号を決定する
このメソッドは、SQL Serverの新しいランキング関数を利用し、SQLレポートで使用して、レポートの本文のページ番号を決定し、その情報に基づいて列を非表示/表示することもできます。
次の場合にこの方法を使用します。
- 1ページに表示されるレコード数に事前設定された制限があります
- グループ化があり、各グループが独自のページに表示されます
- 各ページのレコード数を正確に計算できます
この記事のソリューションでは、SQLのランキング関数を使用しており、適用可能かどうかを確認する価値があります。
だから私はこれがあなたのために働くことができる3つのシナリオがあると言いました。それぞれを行う方法の例を示し、残りはあなたの創造性に任せます。これは、サンプルの販売テーブルとして使用されます。
name sales_amount group_name Scenario #1 Scenario #2 Scenario#3
A 10 A1 1 1 1
B 20 A1 1 1 1
C 30 A1 2 1 1
D 30 A2 2 2 1
E 40 A3 3 3 2
F 40 A3 3 3 2
G 50 A4 4 4 2
H 60 A5 4 5 2
シナリオ#1:
各ページに配置するプリセット#レコードがあります。SQLクエリは次のようになります。
DECLARE @rows_per_page INT
SET @rows_per_page = 2
SELECT
employee.name
,page = (Row_Number() OVER ( ORDER BY employee.sales_amount ) / @rows_per_page)
FROM
employee
SSRSでは、Tablix(SSRS 2008)で親グループを作成し、「グループの各インスタンス間」を解除するオプションを設定できます。(SSRS 2008の[ページ分割]タブ)
シナリオ#2:
グループ化があり、各グループが独自のページに表示されます
SELECT
employee.name
,page = Dense_Rank() OVER ( ORDER BY employee.group_name )
FROM
employee
SSRSのレポートで、table / matrix / tablixのグループプロパティで、「グループの各インスタンス間」を分割するオプションを設定します。(SSRS 2008の[ページ分割]タブ)
シナリオ#3:
各ページのレコード数を正確に計算できます各ページのレコード数を正確に計算できれば、#1と同様の方法で簡単に計算できます。この例では、数は1ページあたり4レコードでした。
これを使用します: SSRSのレポート本文のページ番号にアクセスします
レポートのカスタムコードを作成し、必要な場所でそのコードを参照する必要があります(2番目のリンクから参照)。
[データ]または[レイアウト]タブビューをアクティブにして、[レポート]-> [レポートプロパティ]を選択します。[レポートプロパティ]ダイアログで[コード]タブを選択します。[カスタムコード:]に新しい関数を追加して、ページ番号を取得します。
Public Function PageNumber() as String
Dim str as String
str = Me.Report.Globals!PageNumber.ToString()
Return str
End Function
Public Function TotalPages() as String
Dim str as String
str = Me.Report.Globals!TotalPages.ToString()
Return str
End Function
次のように使用します。
="Page " + Code.PageNumber() + " of " + Code.TotalPages()