sql >> データベース >  >> RDS >> Sqlserver

SSRS 2008 R2のレポート本文にページ番号を表示するにはどうすればよいですか?

    最初にレポート変数を使用する必要があります: レポートの空きスペースを右クリック->変数->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(付属)以降のすべてのバージョンで正常に動作します。



    1. SQLiteからOracleへ

    2. ロック待機タイムアウトの取得を超えました。トランザクションを使用していないのにトランザクションを再開してみてください

    3. psqlの代替出力形式

    4. SELECTINTOで使用した場合にNO_DATA_FOUND例外がスローされない