FlexReport for WPF
FlexReport のデータソース
FlexReport のデータ連結 > FlexReport のデータソース

FlexReport 定義には複数のデータソースを設定でき、これらのデータソースには C1FlexReport.DataSources コレクションからアクセスできます。このコレクション内のデータソースは、一意の名前で識別されます。これらのデータソースは次のように使用できます。

メインデータソース これはレポートのメインデータソースです。メインデータソースは、レポートの C1FlexReport.DataSourceName プロパティを使用して指定します。メインデータソースが指定されていない場合(DataSourceName が空、または DataSources コレクションにない名前が指定されている)、C1FlexReport は非連結モードでレンダリングされ、詳細セクションが 1 つだけ含まれます。
パラメータ用のデータソース これは、レポートパラメータ(C1FlexReport.Parameters コレクション内の要素)として有効な値のソースです。パラメータ用のデータソースは、ReportParameter.AllowedValuesDefinition.Binding.DataSourceName プロパティを使用して指定します。
チャート用のデータソース これは、チャートフィールド用のデータソースです。チャート用のデータソースは、ChartFieldクラスのDataSource プロパティを使用して指定します。

The list of supported data source types in FlexReport are as follows:

レガシーC1Report との下位互換性のため、C1FlexReport には DataSources を指す DataSource プロパティがあります。新しい C1FlexReport を作成すると、「Main」という名前の 1 つの要素が C1FlexReport.DataSources コレクションに追加され、「Main」が C1FlexReport.DataSourceName プロパティに割り当てられます。C1Report では、メインデータソースがレポートの唯一のデータソースです。

Note that in C1Report, Main data source is the only data source for the report. 

複数のデータソースレポートのパラメータへのデータの連結

パラメータにデータを連結することで、レポートパラメータ(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);