最初にレポート変数を使用する必要があります: レポートの空きスペースを右クリック->変数->PageCountなどの変数を作成します(デフォルト値を0に設定します)
次に、ヘッダーまたはフッターで->テキストボックスを作成して式を設定します->
=Variables!PageCount.SetValue(Variables!PageCount.Value+1)
ページごとに自動的に増加します。(重要:ヘッダーまたはフッターから非表示にしないでください。ボックスを非表示にするとSetValueが機能しないため、フォントを1に、テキストを白に変更してください。非表示にしないでください (設定が行われると「True」と出力されます))
次に、次を使用できます:
=Variables!PageCount.Value
レポート本文の任意の部分でページ番号にアクセスします。
重要:Globals!PageNumberを使用して変数を設定しようとしましたが、レポート本文からアクセスできなかったことに注意してください。したがって、ヘッダー/フッターまたは本文の両方からアクセスできるものである必要があります。
私の場合、グループのインスタンスごとにページ番号をリセットする必要があるため、グループの最後にトリガーを設定するだけです(たとえば、合計値が返されるかどうかを確認します。私のグループはトータルディスプレイになります。
関数IIF
のため TrueとFalseの両方の部分が処理されるため、セッターをIIF
に配置すると 以下のように:
=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),Variables!PageCount.SetValue(0))
)
レポートはTrue部分をチェックしてからFalse部分をチェックするため、常に値0になり、両方のセッターが実行されます(値は2回設定されます)
したがって、2つのボックスと次のようなものが必要です: (チェック条件で不要なボックスを非表示にする必要があります)
=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),"")
)
NOT IsNothing(ReportItems!TotalBox.Value)
の場合は、このボックスを非表示にする必要があります
=IIF(NOT IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(0),"")
)
IsNothing(ReportItems!TotalBox.Value)
の場合も、このボックスを非表示にする必要があります。
もちろん、他の方法を使用して、グループインスタンスの終わりを判断することもできます。たとえば、グループテーブルの最後に固定値のみを含むテキストボックスを作成します。そしてそれを隠します。トリガーをチェックするときは、私と同じようなアプローチを実行してください。
2008 R2(付属)以降のすべてのバージョンで正常に動作します。