Chartコントロールでは、実行時にChartコントロールのデータソース、系列、データ点コレクションを動的に設定できます。
以下は、データソースとして使用できるオブジェクト一覧です。
- DataSet
- DataSet列
- DataTable
- SqlCommand/OleDbCommand
- SqlDataAdapter/OleDbDataAdapter
- 配列
以下のサンプルコードは、実行時にさまざまなデータソースに連結する方法を示します。
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);
|