ActiveReports for .NET 18.0J
実行時データソース
ActiveReportsユーザーガイド > 概念 > セクションレポートの概念 > グラフ > グラフデータ > 実行時データソース

Chartコントロールでは、実行時にChartコントロールのデータソース、系列、データ点コレクションを動的に設定できます。

以下は、データソースとして使用できるオブジェクト一覧です。

以下のサンプルコードは、実行時にさまざまなデータソースに連結する方法を示します。

DataSet

実行時にChartコントロールのDataSourceプロパティを系列に設定できます。以下のサンプルコードは、実行時にDataSetを設定し、DataSourceプロパティを「DataSet」に設定、系列を作成し、ValueMembersYプロパティを系列式に設定する方法を示します。

Visual Basic

Visual Basicコード
コードのコピー

' 系列を作成します。
Dim s As New GrapeCity.ActiveReports.Chart.Series
Dim m_cnnString As String = _
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False"
Dim m_cnn As New System.Data.OleDb.OleDbConnection(m_cnnString)
Dim oDBAdapter As System.Data.OleDb.OleDbDataAdapter

'コントロールを貼り付けたときに自動的に作成されている系列を削除します。
Me.ChartControl1.Series.Clear()

' DataSetを作成します。
Dim oDS As DataSet
oDBAdapter = _
     New System.Data.OleDb.OleDbDataAdapter("SELECT ShipCountry, SUM(Freight) AS Expr1 FROM Orders GROUP BY ShipCountry", m_cnnString)
oDS = New DataSet
oDBAdapter.Fill(oDS, "Expr1")

' DataSourceとValueMembersYのプロパティを設定します。
Me.ChartControl1.DataSource = oDS

Me.ChartControl1.Series.Add(s)
Me.ChartControl1.Series(0).ValueMembersY = "Expr1"

C#

C#コード
コードのコピー

// 系列を作成します。
GrapeCity.ActiveReports.Chart.Series s = new GrapeCity.ActiveReports.Chart.Series();
string m_cnnString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False";
System.Data.OleDb.OleDbConnection m_cnn = new System.Data.OleDb.OleDbConnection(m_cnnString);
System.Data.OleDb.OleDbDataAdapter oDBAdapter;

//コントロールを貼り付けたときに自動的に作成されている系列を削除します。
this.chartControl1.Series.Clear();

// DataSetを作成します。
System.Data.DataSet oDS;
oDBAdapter =
    new System.Data.OleDb.OleDbDataAdapter("SELECT ShipCountry, SUM(Freight) AS Expr1 FROM Orders GROUP BY ShipCountry", m_cnnString);
oDS = new System.Data.DataSet();
oDBAdapter.Fill(oDS, "Expr1");

// DataSourceとValueMembersYのプロパティを設定します。
this.chartControl1.DataSource = oDS;

this.chartControl1.Series.Add(s);
this.chartControl1.Series[0].ValueMembersY = "Expr1";

DataSet列

Chartコントロールで、系列のValueMemberXプロパティとValueMembersYプロパティをDataSet列に設定することができます。以下のサンプルコードは、実行時に系列を作成、DataSetを設定、DataSourceプロパティを「DataSet」に設定、ValueMembersYプロパティとValueMemberXプロパティをDataSet列に設定する方法を示します。

Visual Basic

Visual Basicコード
コードのコピー

' 系列を作成します。
Dim s As New GrapeCity.ActiveReports.Chart.Series
Dim m_cnnString As String = _
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False"
Dim m_cnn As New System.Data.OleDb.OleDbConnection(m_cnnString)
Dim oDBAdapter As System.Data.OleDb.OleDbDataAdapter

'コントロールを貼り付けたときに自動的に作成されている系列を削除します。
Me.ChartControl1.Series.Clear()

' DataSetを作成します。
Dim oDS As DataSet
oDBAdapter = _
     New System.Data.OleDb.OleDbDataAdapter("SELECT * from Orders WHERE OrderDate < #08/17/1994#", m_cnnString)
oDS = New DataSet
oDBAdapter.Fill(oDS, "Orders")

' DataSource、ValueMembersY、ValueMembersXの各プロパティを設定します。
Me.ChartControl1.DataSource = oDS
Me.ChartControl1.Series.Add(s)
Me.ChartControl1.Series(0).ValueMembersY = oDS.Tables("Orders").Columns(7).ColumnName
Me.ChartControl1.Series(0).ValueMemberX = oDS.Tables("Orders").Columns(8).ColumnName

C#

C#コード
コードのコピー

// 系列を作成します。
GrapeCity.ActiveReports.Chart.Series s = new GrapeCity.ActiveReports.Chart.Series();
string m_cnnString =
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False";
System.Data.OleDb.OleDbConnection m_cnn = new System.Data.OleDb.OleDbConnection(m_cnnString);
System.Data.OleDb.OleDbDataAdapter oDBAdapter;

//コントロールを貼り付けたときに自動的に作成されている系列を削除します。
this.chartControl1.Series.Clear();

// DataSetを作成します。
System.Data.DataSet oDS;
oDBAdapter =
     new System.Data.OleDb.OleDbDataAdapter("SELECT * from Orders WHERE OrderDate < #08/17/1994#", m_cnnString);
oDS = new System.Data.DataSet();
oDBAdapter.Fill(oDS, "Orders");

// DataSource、ValueMembersY、ValueMembersXの各プロパティを設定します。
this.chartControl1.DataSource = oDS;
this.chartControl1.Series.Add(s);
this.chartControl1.Series[0].ValueMembersY = oDS.Tables["Orders"].Columns[7].ColumnName;
this.chartControl1.Series[0].ValueMemberX = oDS.Tables["Orders"].Columns[8].ColumnName;

データコマンド

グラフのデータソースにSqlCommandクラス、またはOleDbCommandクラスのインスタンスを作成し、設定できます。以下のサンプルコードは、実行時に系列を作成、OleDbCommandクラスのインスタンスを作成、DataSourceプロパティをデータコマンドに設定、系列のValueMembersYプロパティを設定する方法を示します。

Visual Basic

Visual Basicコード
コードのコピー

' 系列を作成します。
Dim s As New GrapeCity.ActiveReports.Chart.Series
Dim m_cnnString As String = _
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False"
Dim m_cnn As New System.Data.Oledb.OleDbConnection(m_cnnString)
Dim query As String = "SELECT ShipCountry, SUM(Freight) AS Expr1 FROM Orders GROUP BY ShipCountry"

'コントロールを貼り付けたときに自動的に作成されている系列を削除します。
Me.ChartControl1.Series.Clear()

' OleDbCommandを作成し、接続を開きます。
Dim command As New System.Data.Oledb.OleDbCommand(query, m_cnn)
command.Connection.Open()

' DataSourceとValueMembersYのプロパティを設定します。
Me.ChartControl1.DataSource = command
Me.ChartControl1.Series.Add(s)
Me.ChartControl1.Series(0).ValueMembersY = "Expr1"

' 接続を閉じます。
m_cnn.Close()

C#

C#コード
コードのコピー

// 系列を作成します。
GrapeCity.ActiveReports.Chart.Series s = new GrapeCity.ActiveReports.Chart.Series();
string m_cnnString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Nwind.mdb;Persist Security Info=False";
System.Data.OleDb.OleDbConnection m_cnn = new System.Data.OleDb.OleDbConnection(m_cnnString);
string query = "SELECT ShipCountry, SUM(Freight) AS Expr1 FROM Orders GROUP BY ShipCountry";

//コントロールを貼り付けたときに自動的に作成されている系列を削除します。
this.chartControl1.Series.Clear();

// OleDbCommandを作成し、接続を開きます。
System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand(query, m_cnn);
command.Connection.Open();

// DataSourceとValueMembersYのプロパティを設定します。
this.chartControl1.DataSource = command;
this.chartControl1.Series.Add(s);
this.chartControl1.Series[0].ValueMembersY = "Expr1";

// 接続を閉じます。
m_cnn.Close();

配列

Chartコントロールでは、配列をデータ点コレクションのデータソースに設定することができます。以下のサンプルコードは、実行時に系列を作成と配列を作成します。そして、DataPointsCollectionクラスのDataBindYメソッドを使用して、データ点コレクションのデータソースを設定します。

Visual Basic

Visual Basicコード
コードのコピー

'コントロールを貼り付けたときに自動的に作成されている系列を削除します。
Me.ChartControl1.Series.Clear()

' 系列を作成します。
Dim s As New GrapeCity.ActiveReports.Chart.Series

' 配列を作成します。
Dim a As Double() = {1, 4, 2, 6, 3, 3, 4, 7}

' データ点コレクションのデータソースを設定します。
Me.ChartControl1.Series.Add(s)
Me.ChartControl1.Series(0).Points.DataBindY(a)

C#

C#コード
コードのコピー

//コントロールを貼り付けたときに自動的に作成されている系列を削除します。
this.chartControl1.Series.Clear();

// 系列を作成します。
GrapeCity.ActiveReports.Chart.Series s = new GrapeCity.ActiveReports.Chart.Series();

// 配列を作成します。
double [] a = {1,4,2,6,3,3,4,7};

// データ点コレクションのデータソースを設定します。
this.chartControl1.Series.Add(s);
this.chartControl1.Series[0].Points.DataBindY(a);