作成日: 2018/03/20 最終更新日: 2018/03/20
文書種別
制限事項
詳細
※この現象は「ページレポート/RDLレポート」のみで発生します。
共通フィールドとデータフィールドを文字列結合するような式を設定した時、データフィールドの値または共通フィールドの値が正しく表示(取得)されない場合があります。
たとえば、ページ番号と"Field1"というフィールドの値を文字列結合して、TextBoxコントロールに表示する場合、以下のような式をValueプロパティに設定します。
◆式
このレポートが2ページ表示され、フィールド"Field1"内のレコードの値を"Data1"と仮定した場合、以下のように表示されるのが正しい状態です。
しかしながら、実際には以下のようにデータフィールドの値が出力されません。
これは、ActiveReportsの仕様・制限となります。
なお、本事象は共通フィールドと固定の文字列を結合した場合や、データフィールドと固定の文字列を結合した場合には発生しません。共通フィールドとデータフィールドを1つの式内で結合した場合にのみ発生します。
問題が発生する共通フィールドとしては、以下のようなものが一例として挙げられます。
共通フィールドとデータフィールドを文字列結合するような式を設定した時、データフィールドの値または共通フィールドの値が正しく表示(取得)されない場合があります。
たとえば、ページ番号と"Field1"というフィールドの値を文字列結合して、TextBoxコントロールに表示する場合、以下のような式をValueプロパティに設定します。
◆式
=Globals!PageNumber & "ページ:" & Fields!Field1.Value
このレポートが2ページ表示され、フィールド"Field1"内のレコードの値を"Data1"と仮定した場合、以下のように表示されるのが正しい状態です。
| ページ | 出力内容 |
|---|---|
| 1ページ目 | 1ページ:Data1 |
| 2ページ目 | 2ページ:Data1 |
しかしながら、実際には以下のようにデータフィールドの値が出力されません。
| ページ | 出力内容 |
|---|---|
| 1ページ目 | 1ページ: |
| 2ページ目 | 2ページ: |
これは、ActiveReportsの仕様・制限となります。
なお、本事象は共通フィールドと固定の文字列を結合した場合や、データフィールドと固定の文字列を結合した場合には発生しません。共通フィールドとデータフィールドを1つの式内で結合した場合にのみ発生します。
問題が発生する共通フィールドとしては、以下のようなものが一例として挙げられます。
| 共通フィールド | 内容 |
|---|---|
| Globals!PageNumber | ページ番号 |
| Globals!TotalPages | 総ページ数 |
| Globals!PageNumberInSection | ページ番号(セクション内) |
| Globals!TotalPagesInSection | 総ページ数(セクション内) |
| Globals!CumulativePageNumber | ページ番号(丁合い) |
| Globals!CumulativeTotalPages | 総ページ数(丁合い) |
回避方法
本事象を回避する方法としては、以下の2通りが考えられます。
- 式で結合せず、コントロールを分ける
1つのTextBoxコントロールで共通フィールドとデータフィールドを結合して表示するのではなく、共通フィールドの値を出力するコントロールと、データフィールドの値を出力するコントロールを分けて、レポート上に配置する方法です。
問題が発生する式を、TextBoxコントロールのValueプロパティに設定している場合は、こちらの方法をご検討ください。 - 別のTextBoxコントロールを経由する
データフィールドから直接値を取得するのではなく、いったん別のTextBoxコントロールにデータフィールドの値を表示し、そのコントロールを参照するような式に変更する方法です。
レポート上のコントロールを式中で参照する場合、「ReportItems」を使用します。
たとえば、前述の例の場合、データフィールド"Field1"の値を出力するためのTextBoxコントロールを「TextBox1」とすると、以下のような式になります。
=Globals!TotalPages & "ページ:" & ReportItems!TextBox1.Value
問題の式を、Value以外のプロパティに記述したい場合は、こちらの方法をご検討ください。
なお、こちらの方法を用いる場合、データフィールドの値を取得するコントロール(上記の場合、「TextBox1」)を非表示(Visibility.Hidden = True)にすることはできません。レポート上にこのコントロールの値を表示したくない場合は、文字色(Colorプロパティ)を白(White)や透明(Transparent)に設定するか、視認できないくらい小さなサイズに設定してください。
旧文書番号
41711