改ページ対応レポート内の組み込み Globals および User 参照 (Report Builder)
適用対象: Microsoft Report Builder (SSRS) Power BI Report Builder SQL Server Data Tools の Report Designer
Globals および User コレクションの両方が含まれている組み込みフィールドのコレクションは、改ページ対応レポートの処理時に Reporting Services によって提供されるグローバルな値を表します。 Globals コレクションでは、レポート名、レポート処理の開始時刻、レポート ヘッダーまたはレポート フッターの現在のページ番号などの値が提供されます。 User コレクションでは、ユーザー ID と言語設定が提供されます。 これらの値は、レポート内の結果をフィルター処理する際に式で使用できます。
注意
ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。
Globals コレクションの使用
Globals コレクションには、レポートのグローバル変数が保持されます。 デザイン画面では、これらの変数は、[&ReportName]
など、先頭に & (アンパサンド) が付いた状態で表示されます。 次の表では、 Globals コレクションのメンバーについて説明します。
メンバー | Type | 説明 |
---|---|---|
ExecutionTime | DateTime | レポートの実行を開始した日付と時刻です。 |
PageNumber | 整数 | ページ番号をリセットした改ページを基準とする現在のページ番号です。 レポート処理の開始時、初期値は 1 に設定されています。 ページ番号は、表示されるページごとに増えます。四角形、データ領域、データ領域グループ、マップの改ページ内でページ番号を付けるには、[PageBreak] プロパティで、[ResetPageNumber] プロパティを [True] に設定します。 Tablix 列階層グループではサポートされていません。 PageNumber は、ページ ヘッダーまたはページ フッターの式でのみ使用できます。 |
ReportFolder | String | レポートを含んでいるフォルダーへの完全なパスです。 このアイテムには、レポート サーバーの URL は含まれません。 |
ReportName | String | レポート サーバー データベースに格納されているとおりのレポートの名前です。 |
ReportServerUrl | String | レポートが実行されるレポート サーバーの URL です。 |
TotalPages | 整数 | PageNumber をリセットした改ページを基準とする合計ページ数です。 改ページを設定しない場合、この値は OverallTotalPages と同じです。 TotalPages は、ページ ヘッダーまたはページ フッターの式でのみ使用できます。 |
PageName | String | ページの名前です。 レポート処理の開始時、初期値はレポート プロパティの InitialPageName から設定されます。 各レポート アイテムが処理されると、この値は四角形、データ領域、データ領域グループ、またはマップの PageName の対応する値に置き換えられます。 Tablix 列階層グループではサポートされていません。 PageName は、ページ ヘッダーまたはページ フッターの式でのみ使用できます。 |
OverallPageNumber | 整数 | レポート全体に対する現在のページのページ番号です。 この値は ResetPageNumber の影響を受けません。 OverallPageNumber は、ページ ヘッダーまたはページ フッターの式でのみ使用できます。 |
OverallTotalPages | 整数 | レポート全体の合計ページ数です。 この値は ResetPageNumber の影響を受けません。 OverallTotalPages は、ページ ヘッダーまたはページ フッターの式でのみ使用できます。 |
RenderFormat | RenderFormat | 現在の表示要求に関する情報です。 詳細については、次のセクションの「RenderFormat」を参照してください。 |
Globals コレクションのメンバーからは、Variant 値が返されます。 特定のデータ型を必要とする、このコレクションのメンバーを式で使用する場合は、先に変数をキャストする必要があります。 たとえば、バリアント型の実行時間を Date 形式に変換するには、 =CDate(Globals!ExecutionTime)
を使用します。 詳細については、「式でのデータ型 (Report Builder) に関する記事を参照してください。
RenderFormat
次の表では、 RenderFormatのメンバーについて説明します。
メンバー | 種類 | 説明 |
---|---|---|
氏名 | String | RSReportServer 構成ファイルに登録されているレンダラーの名前です。レポート処理または表示サイクルの特定の部分で使用できます。 |
IsInteractive | Boolean | 現在の表示要求で、対話型表示形式を使用するかどうかを示します。 |
DeviceInfo | 読み取り専用の名前/値のコレクションです。 | 現在の表示要求の deviceinfo パラメーターのキーと値のペアです。 キーまたはインデックスを使用して、コレクションに文字列値を指定できます。 |
例
Globals コレクションへの参照を式で使用する方法を次の例に示します。
レポートのフッター内のテキスト ボックスで次の式を使用すると、ページ番号およびレポートの総ページ数が返されます。
=Globals.PageNumber & " of " & Globals.TotalPages
次の式は、レポート名およびレポートが実行された時間を返します。 時刻の書式は、Microsoft .NET Framework の短い日付形式の書式設定文字列を使用して設定されます。
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
選択した列の [列表示] ダイアログで次の式を使用すると、レポートが Excel にエクスポートされているときにのみ列が表示されます。 それ以外の場合、列は非表示になります。
EXCELOPENXML
は、Office 2007 に含まれる Excel 形式を参照します。EXCEL
は、Office 2003 に含まれる Excel 形式を参照します。=IIF(Globals!RenderFormat.Name = "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", false, true)
User コレクションの使用
User コレクションには、レポートを実行しているユーザーのデータが保持されます。 このコレクションを使用して、レポートに表示されるデータをフィルター処理できます。 たとえば、現在のユーザーのデータのみを表示したり、レポート タイトルのように UserID を表示したりできます。 デザイン画面では、これらの変数は、[&UserID]
など、先頭に & (アンパサンド) が付いた状態で表示されます。
次の表では、 User コレクションのメンバーについて説明します。
メンバー | Type | 説明 |
---|---|---|
Language | String | レポートを実行しているユーザーの言語です。 たとえば、「 en-US 」のように入力します。 |
UserID | String | レポートを実行しているユーザーの ID です。 Windows 認証を使用している場合、この値は現在のユーザーのドメイン アカウントです。 Report Builder のセキュリティ拡張機能によって、Windows 認証またはカスタム認証を使用できる値が決定されます。 |
ロケール設定の使用
式を使用し、 User.Language 値でクライアント コンピューターのロケール設定を参照して、ユーザーに対してどのようにレポートを表示するかを指定できます。 たとえば、ロケール値に基づいて異なるクエリ式を使用するレポートを作成できます。 クエリは、返された言語に応じて異なる列からローカライズされた情報を取得するように変更できます。 また、この変数を基にしてレポートまたはレポート アイテムの言語設定に式を使用することもできます。
Note
レポートの言語設定は変更できますが、言語設定の変更により、表示に関する問題が発生する可能性があることに注意してください。 たとえば、レポートのロケール設定を変更すると、レポートの日付の書式が変更されますが、通貨の書式も変更される可能性があります。 通貨用の変換処理が行われない場合は、これによりレポートに不適切な通貨記号が表示される可能性があります。 これを回避するには、変更する各アイテムに関する言語情報を設定するか、通貨データを含むアイテムに特定の言語を設定します。
スナップショットまたは履歴レポートの UserID の識別
場合によっては、User!UserID 変数を含むレポートは、レポートを参照している現在のユーザー固有のレポート データを表示することができません。