このサイトをご覧になるには、JavaScriptを有効にしてください。

[帳票開発ツール]Stimulsoft レポート&ダッシュボード ユーザーマニュアル

 

時には、内容のあるレポートを作成する必要があります。この場合、まずレポート構造を作成し、その後に全体についてのレポートを作成する必要があります。しかし、疑問がある。というのも、現時点では、コンテンツのレンダリング時に、コンテンツの要素が参照するページ数が不明だからです。この場合、アンカーを使います。アンカーを作成するには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 番目のページがレンダリングされ、ページ番号が保存されます。レポートレンダリング後、レポートジェネレーターエンジンは最初のページに戻り、すべてのページに番号を付けます。