このサイトをご覧になるには、JavaScriptを有効にしてください。
時には、内容のあるレポートを作成する必要があります。この場合、まずレポート構造を作成し、その後に全体についてのレポートを作成する必要があります。しかし、疑問がある。というのも、現時点では、コンテンツのレンダリング時に、コンテンツの要素が参照するページ数が不明だからです。この場合、アンカーを使います。アンカーを作成するには、AddAnchorメソッドを使用します。アンカーを作成すると、レポート・ジェネレータは現在のページを保存し、指定されたアンカーと比較します。たとえば、以下のようになります。
AddAnchor(“MyAnchorName”)
この行では、「MyAnchorName」を持つ新しいアンカーが作成されます。アンカーの値を取得するには、GetAnchorPageNumberメソッドを使用する必要があります。 このメソッドは、アンカー名に対応するページの番号を返します。もしそのような名前を持つアンカーがなければ、0が返されます。
例えば、
{GetAnchorPageNumber(“MyAnchorName”)}
このテキスト式は、"MyAnchorName" に従ってページの番号を返します。つまり、アンカー名があれば、そのアンカーが作成されたページの番号を知ることができるのです。この2つの方法を使って、コンテンツの構築が行われる。まずコンテンツが作られる。ページ番号の代わりに、アンカーへのハイパーリンクを貼り付けます。 アンカーからページ番号を取得する関数を呼び出すすべてのコンポーネントでは、最後のプロセスプロパティをtrueに設定する必要があります。これは、これらのコンポーネントが、レポートレンダリングの最後に、すべてのページ数が判明した時点で処理されるために必要なことです。
コンテンツが作成された後、レポート・レンダリング全体が処理されます。アンカーはレポート作成中に作成されます。レポートがレンダリングされた後、ハイパーリンクの代わりに、実際のページ番号がコンテンツ内のアンカーに表示されます。テンプレートでのアンカーの使い方を見てみましょう。 カテゴリで分割された製品の リストを表示するマスター・ディテール・ディテールレポートを作成します。このようなレポートを作成するには、2つのページを用意する必要があります。最初のページがコンテンツ用で、2 番目がレポート用です。コンテンツのページには、2つのバンドを配置します。その間に 、マスターとディテールのリンクを設定します。 そして 、詳細のバンドには、テキストコンポーネントを配置します。 この最後のプロセステキストコンポーネントのプロパティは、trueに設定されている必要があります。
お知らせ: ページ数を返す式のテキスト・ コンポーネントの最後のプロセスプロパティを有効にする必要があります。 このプロパティは、レポートレンダリング後にこれらのテキストコンポーネントの値を処理するために使用されます。(ページ数がわかっている場合)
テキストプロパティのテキスト表現を次のように指定します。
{GetAnchorPageNumber(component.TagValue)}
このテキスト式は、アンカーを使用しているページの番号を返します。
アンカー名として 、タグプロパティの値が使用 される。タグプロパティへの入力は、 以下の式で行います。
{Products.ProductName}
この式では、製品名が使われています。従って、以下の式は使用できません。
{GetAnchorPageNumber(Products.ProductName)}
式を含むコンポーネントは、レポート構築の最後に処理されます。そのため、Products.ProductNameフィールドの値は、すべての文字列(リストの最後)について等しくなります。そのため、コンテンツを構築する際に、すべての文字列についてProducts.ProductNameフィールドの値を記憶しておく必要があります。 これには、タグプロパティを使用します。 2ページ目では、レポートが作成されます。データバンドコンポーネント(コンテンツ構築に使用 )のレンダリングプロパティで、AddAnchorメソッドが呼び出されています。 このメソッドは、呼び出された瞬間に現在のページを返します。
アンカー名は、Products.ProductName フィールドの値です。 その結果、ページ番号が最初にレンダリングされます。次に、2 番目のページがレンダリングされ、ページ番号が保存されます。レポートレンダリング後、レポートジェネレーターエンジンは最初のページに戻り、すべてのページに番号を付けます。