FlexReport for WinForms
サブレポート
パラメータの操作 > サブレポート

サブレポートは、メインレポートに存在するデータに関する追加情報を表示する場合に便利です。レポートにパラメータを渡すように、サブレポートにパラメータを渡して、サブレポート内のデータ値間の関係を形成することもできます。

たとえば、メインレポート内に並べてレンダリングされるサブレポートにデータをフェッチするとします。このようなシナリオを実現するには、次の手順に従います。

  1. C1FlexReportDesigner.exe アプリケーションを実行します。
  2. 非連結モードで、メインレポートの新しいレポート定義を作成します。
  3. もう 1 つのレポートを作成し、それを C1NWind.mdb にある Photos レポートに連結します。
  4. [挿入]タブからサブレポートフィールドをクリックします。利用できるレポートがすべて表示されます。
  5. 2 つのサブレポートフィールドをドロップして横に並べます。
  6. 2 つのパラメータを追加します。これらのパラメータは、2 つのサブレポートに 1 つずつ渡されます。
  7. Name プロパティからパラメータ名を設定します。左側のサブレポートのパラメータを「prmLeftPlace」に、右側のサブレポートのパラメータを「prmRightPlace」にします。
  8. パラメータのデータソースを追加し、データプロバイダと接続文字列を設定します。パラメータに値を渡すために使用される SQL 文を記述します。たとえば、Photos レポートから Place を選択するには、次のようになります。
    select distinct Place from Photos order by Place
            
    
  9. 2 つのパラメータに対して AllowedValuesDefinition プロパティを設定します。- 
    1. AllowedValuesDefinition の横にある省略符ボタンをクリックします。
    2. [AllowedValuesDefinition エディタ]ダイアログボックスで、[データソースから]ラジオボタンを選択します。
    3. データソースをパラメータに連結するために、[データソース]、[ラベル]、および[値]を選択します。
  10. 各パラメータの Prompt プロパティからプロンプトテキストを設定します。
  11. サブレポート Photos を選択し、[データ]タブをクリックします。
  12. データソースを編集し、次の SQL 文を記述します。
    select distinct Place from Photos order by Place

  13. メインレポートを選択し、左側のサブレポートフィールドをクリックします。横の省略符をクリックすると、[ParameterValues エディタ]が表示されます。次のように名前と値を設定します。
  14. 同様に、右側のサブレポートフィールドに対して、[名前]を「prmPlace」、[値]を「prmRightPlace.Value」に設定します。デザインビューでは、次の図のようにレポートが表示されます。
  15. レポートをプレビュー表示します。

2 つのパラメータプロンプト(2 つのサブレポートに 1 つずつ)に値(場所)のリストが表示されていることがわかります。値を選択し、[パラメータの適用]をクリックします。ここでは、左側のサブレポートで Chaumont、右側のサブレポートで Cote d'Azur を選択しました。