FlexReport for WPF
複数データソースレポートでのパラメータへのデータの連結
FlexReport の操作 > FlexReport のデータソース > コードを使用した複数のデータソースへの接続 > 複数データソースレポートでのパラメータへのデータの連結

パラメータにデータを連結することで、レポートパラメータ(C1FlexReport.Parameters コレクション内の要素)に対して有効な値が定義できます。ReportParameter.AllowedValuesDefinition.Binding.DataSourceName プロパティは、有効なパラメータ値のリストを作成するために使用されるデータソースを示します。次のコード例は、複数のデータソースを含むレポートのパラメータにデータを連結する方法を示します。

' データソースおよびこのデータソースを使用するパラメータを追加します
Dim mds As DataSource = rep.DataSource
Dim ds As New DataSource()
ds.Name = "CategoriesDS"
ds.ConnectionString = mds.ConnectionString
ds.RecordSource = "select * from categories"
ds.DataProvider = DataProvider.OLEDB
rep.DataSources.Add(ds)
mds.RecordSource = "select * from products where categoryid = [CategoryParam]"
Dim rp As New ReportParameter()
rp.DataType = Doc.ParameterType.[Integer]
rp.Prompt = "Category"
rp.Name = "CategoryParam"
rp.AllowedValuesDefinition.Binding.DataSourceName = "CategoriesDS"
rp.AllowedValuesDefinition.Binding.ValueExpression = "CategoryID"
rp.AllowedValuesDefinition.Binding.LabelExpression = "CategoryName"
rep.Parameters.Add(rp)
// データソースおよびこのデータソースを使用するパラメータを追加します
DataSource mds = rep.DataSource;
DataSource ds = new DataSource();
ds.Name = "CategoriesDS";
ds.ConnectionString = mds.ConnectionString;
ds.RecordSource = "select * from categories";
ds.DataProvider = DataProvider.OLEDB;
rep.DataSources.Add(ds);
mds.RecordSource = "select * from products where categoryid = [CategoryParam]";
ReportParameter rp = new ReportParameter();
rp.DataType = Doc.ParameterType.Integer;
rp.Prompt = "Category";
rp.Name = "CategoryParam";
rp.AllowedValuesDefinition.Binding.DataSourceName = "CategoriesDS";
rp.AllowedValuesDefinition.Binding.ValueExpression = "CategoryID";
rp.AllowedValuesDefinition.Binding.LabelExpression = "CategoryName";
rep.Parameters.Add(rp);