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

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

 

パラメータを使ってレポートを作成する場合、従属変数を使用することができます。この場合、1つの変数が独立し、残りの変数はそれに依存するか、階層を表します。後続の各変数は、前の変数に依存します。従属変数になるには、チェックボックス Dependent Value が有効でなければなりません (これは、データソース Data Column を選択したときの Request From User パネルにあります)。チェックボックスを有効にすると、2つのフィールドが表示されます:変数と従属カラムです。最初のフィールドでは、この変数が依存するメインとなる変数を選択します。2番目のフィールドでは、メイン変数に関連するデータカラムを選択します。

 

 

この可能性(変数間の関係)としては、例えばマスター-ディテールレポートなど、レポートでパラメータを使用する際に便利です。例えば、カテゴリのリストがあり、各カテゴリはいくつかの製品を含み、各製品は詳細な説明を持っているとします。この場合、レポート・パラメータを使用すると、製品別および製品情報別の変数は、巨大な値のリスト(製品および説明の完全なリスト)を含み、特定の製品またはそれに関する情報を選択する必要がある場合、これは多くの時間を必要とすることになる。変数間の関係がない場合、カテゴリの値のリストは、製品の8つのカテゴリ - 77レコード、および数百に詳細なデータを含むことになります。これは、製品やそれに関する情報を見つけることはほとんど不可能になります。以下の画像は、変数間の関係がない値のリストの例です。

 

 

従属変数は、変数のリストを減らす機会を提供します。言い換えれば、変数間のつながりを確立することができます。これは、主変数の値によって、値のリストをフィルタリングすることにつながります。たとえば、選択されたカテゴリによって、製品ごとの変数の値のリストが作成され、選択された製品によって、詳細情報のリストが作成されます。例えば、「調味料」というカテゴリが選択されると、商品のリストがフィルタリングされ、次のようになります。

 

 

ここで、製品「玄米酵素」を選択すると、このように詳細情報一覧が表示されます。

 

 

レポートの中で変数を作成し、使用することを検討します。2つの変数を作成し、1つはカテゴリのリスト、もう1つは製品のリストを含むようにします。そして、製品のリストは、選択されたカテゴリに依存します。例えば、私たちのデモアプリケーションからのデータソース上

 

データ整数の初期化と値型の変数カテゴリと製品を作成します。メイン変数(カテゴリ)で、キーCategories.CategoryID、および値Categories.CategoryNameを選択します。

 

注意 キーは、データソース内のレコード (行) の一意の識別子です。この場合、CategoryID はキーを含む列となり、ProductID - 製品用となります。データソース間の接続は、キーによって整理されます。異なる製品キーが、同じカテゴリキーに関連する可能性があることを理解することが重要です。

 

従属変数で、キー Products.ProductID、および値 Products.ProductName を定義します。チェックボックス 従属値を選択し、Category を主変数として選択し、データ列 Products.CategoryID を従属列と して選択します。下の図に示すように、プレビュータブに移動します。2つのパラメータが表示されます。最初のリストでは、カテゴリが選択され、選択されたカテゴリに応じて 2 番目のリスト (製品) が作成されます。

 

 

上の図からわかるように、2番目の変数(値のリスト)は、保存されている値の完全なリストではなく、選択されたカテゴリに属する値のみを表示します。

 

データ辞書に3つ目の変数を追加します。この変数はAllという名前で、初期化データbool型とします。

 

ここで、レポート内で従属変数を使用します。各カテゴリがいくつかの製品を持つ、マスター-ディテールレポートがあるとします。レポート・テンプレートのデータ・バンドに式を持つフィルタを追加して、特定の製品または特定のカテゴリの製品を選択します。

 

最初のフィルタは、データバンドMasterにあります。(最初のフィルタは、データバンドMasterです(これは、レポート内でカテゴリのリストが作成されるバンドです)。選択されたレポート・パラメータによって、カテゴリをフィルタリングする必要があるので、式はCategory == Categories.CategoryIDのようになります。

 

次に、データバンドDetailに2つ目のフィルタを追加します(これは、レポート内で製品リストが作成されるバンドです)。このフィルタは、Product == Products.ProductID.という式を持つことになります。

 

 

プレビュー・タブに切り替えてください。レポート・パラメータでカテゴリを選択し、次に製品を選択し、レポート・データをフィルタリングするための設定を適用します。

 

 

上の図からわかるように、「穀物/雑穀」というカテゴリー(注、カテゴリーのキーは5)と「グスタフのクナッケブロッド」という商品(商品キー=22)が選ばれています。つまり、キーが5のカテゴリと、キーが22の製品がすべて表示されるのです。

 

カテゴリに関連する製品の完全なリストを表示するには、3番目の変数であるAllを使用する必要があります。したがって、製品のリストを作成するデータバンドのフィルタ式を変更する必要があります。(Product == Products.ProductID || All)この場合、3番目の変数の値(enabled/disabled)により、フィルタリングが行われる。チェックボックスが無効の場合、プロダクト キーによってフィルタリングが行われます。(レポートには、キーが一致する製品が表示されます)チェックボックスが有効な場合、選択したカテゴリのすべての製品が表示されます。

 

 

 

上の図からわかるように、1つのカテゴリ(キー = 5)が表示され、それに関連するすべての製品が異なるキーで表示されています。

 

上記で検討した例は、1レベルの依存関係です。今度は、より複雑な2レベルの依存関係の例について考えてみましょう。カテゴリ、それに関連する製品を残し、各製品による詳細なデータを追加します。これを行うには、データ整数の初期化で値型の変数Orderを作成します。次に、チェックボックスユーザーからのリクエストを有効にし、データ列としてデータソースを選択します。

 

OrderDetails.OrderIDをキーとし、OrderDetails.UnitPriceを値とする列を作成します。

次に、商品とのリレーションを設定します。主変数としてProductを選択します。従属列は、OrderDetails.ProductID です。

ここで、レポートテンプレートに、製品の詳細情報を持つデータバンドを追加します。この例では、データバンドのデータソースとして Order Details を選択します。マスターコンポーネントは、製品を含むデータバンドになります。また、データソース間の関係も示してください。

商品の詳細情報を含むDataバンドに、Order == Order_Details.OrderID という式を持つフィルタを追加します。

プレビュー]タブに移動します。

 

レポートで、カテゴリを選択し、製品のリストがフィルタリングされます。製品を選択すると、選択した製品の詳細データのリストがフィルタリングされます。詳細な値を選択し、[適用]ボタンをクリックします。

 

 

選択された商品の詳細情報をすべて表示する必要がある場合、商品別の詳細データを持つデータバンドのフィルタ式を変更する必要があります。式は変数3で、Order == Order_Details.OrderID || Allのようになります。これで、カテゴリを指定し、製品を選択するだけで、その製品のすべての詳細情報を取得することができます。

 

 

上の写真からわかるように、1つのカテゴリー、1つの商品、そしてその商品によるすべての詳細が印刷されています。また、ネスティングの段数に制限がないことも特筆すべき点です。