レポート パーツのリンク情報を貼り付ける場合、そのリンクのデータ コンテキストに最も大きく影響するのは[コンテキスト レポート パーツ]オプションです。[選択元]フィールド(レポート URI)と[オブジェクト名]フィールドは、[リンク貼り付け]リストのどのオプションを選択しても常に同じです。この節では、いくつかのシナリオを取り上げて、データ コンテキストがどのように作成されるかについて説明します。
シナリオ 1
ソース レポートにデータが含まれている場合(つまり、レポートに[プレビュー]ビューがある場合)、コンテキスト レポート パーツの(ターゲット レポート内での)データ コンテキストは、選択されたフィールドのすべての子について、ソース レポートの[プレビュー]データ コンテキストになります。たとえば、[データ コンテキスト]フィールドに /Country[USA]/地域[*]と表示されている場合はこのケースに相当します。ソース レポートにデータが含まれていない場合は、ソース レポートのデザイン ビュー データ コンテキストが、コンテキスト レポート パーツのターゲット レポート内でのデータ コンテキストとして使用されます。
シナリオ 2
ソース レポートとターゲット レポートが同じレポートで、かつ[プレビュー]ビューからソースとなるオブジェクトを選択する場合に、リンクするターゲット オブジェクトがソース オブジェクトよりも高レベルにあるときは、データ コンテキストが空のままになります。たとえば、ソース データ コンテキストが /Country[Australia]/ChildIndex[5]で、ターゲット データ コンテキストが /Country[Australia]のとき、コンテキスト レポート パーツのデータ コンテキストは空になります。
シナリオ 3
ソース レポートとターゲット レポートが同じレポートで、かつ[プレビュー]ビューからソースとなるオブジェクトを選択する場合に、リンクするターゲット オブジェクトがソース オブジェクトよりも低レベルにあるときは、デザイン ビュー データ コンテキストが(式形式で)貼り付けられます。たとえば、ソース データ コンテキストが /Country[Australia]で、ターゲット データ コンテキストが /Country[Australia]/ ChildIndex[5]のとき、コンテキスト レポート パーツのデータ コンテキストは”/”+{Customer.Country}になります。
クロス集計
ソース レポート内のコピー元のオブジェクトがクロス集計の一部である場合は、そのクロス集計に埋め込まれている選択されたオブジェクトによって、コンテキスト レポート パーツのデータ コンテキストが決まります。Crystal Reports は、クロス集計内の選択されたオブジェクトが、行、列、セルのいずれかであるかを追跡してデータ コンテキストを作成します。次に、行と列の名前を検索します。その後で、デザイン ビュー データ コンテキストを解析します。最後に、データ コンテキスト式のグループが前に検索した行または列の名前に現れる場合は、GridRowColumnValue 関数を追加して、コンテキスト レポート パーツのデータ コンテキストを作成します。たとえば、次のようなデータ コンテキストが作成されます。
"/"+GridRowColumnValue("Customer.Country")+"/"+GridRowColumnValue("Customer.Region")