作成日: 2020/02/19 最終更新日: 2020/08/26
文書種別
不具合
状況
修正済み
詳細
データソースとしてDataTableを使用して箱ひげ図をプロットする際、C1FlexChartのDataSourceプロパティにDataTableを指定すると、箱ひげ図が正しくプロットされません。
回避方法
この問題は2020J v2(4.5.20202.438)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
DataTableのDataView※をC1FlexChartのDataSourceに設定するか、またはDataTableをBoxWiskerクラスのDataSourceに設定します。
※以下の例では、DataTableのDefaultViewをDataViewとして指定しています。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
DataTableのDataView※をC1FlexChartのDataSourceに設定するか、またはDataTableをBoxWiskerクラスのDataSourceに設定します。
※以下の例では、DataTableのDefaultViewをDataViewとして指定しています。
◎サンプルコード(VB)
Imports C1.Chart
Imports C1.Win.Chart
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データテーブルのバインド
Call ChartTest()
End Sub
Private Sub ChartTest()
' データの作成
Dim dt As New DataTable("Test")
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Value1", GetType(Double))
Dim rdm As New Random()
For i = 0 To 19
dt.Rows.Add($"{Chr(65 + i Mod 3)}", rdm.Next(0, 100))
Next
dt.AcceptChanges()
' 更新の開始
FlexChart1.BeginUpdate()
' データ連結
'FlexChart1.DataSource = dt ' <== 無効
FlexChart1.DataSource = dt.DefaultView ' <== 回避方法(1)
' 箱ひげ図の作成
Dim series1 As New BoxWhisker()
series1.Name = "テスト1"
series1.Binding = "Value1"
series1.BindingX = "Name"
'series1.DataSource = dt ' <== 回避方法(2)
series1.QuartileCalculation = QuartileCalculation.InclusiveMedian
series1.ShowInnerPoints = True
series1.ShowOutliers = True
series1.ShowMeanLine = True
series1.ShowMeanMarks = True
' 箱ひげ図の追加
FlexChart1.Series.Clear()
FlexChart1.Series.Add(series1)
' 更新の終了
FlexChart1.EndUpdate()
End Sub
End Class
◎サンプルコード(C#)using C1.Chart;
using C1.Win.Chart;
namespace C1FlexChart_DataSource
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データテーブルのバインド
ChartTest();
}
private void ChartTest()
{
// データの作成
DataTable dt = new DataTable("Test");
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Value1", typeof(double));
Random rdm = new Random();
for (int i = 0; (i <= 19); i++)
{
dt.Rows.Add($"{(char)(65 + i%3)}", rdm.Next(0, 100));
}
dt.AcceptChanges();
// 更新の開始
flexChart1.BeginUpdate();
// データ連結
//flexChart1.DataSource = dt; // <== 無効
flexChart1.DataSource = dt.DefaultView; // <== 回避方法(1)
// 箱ひげ図の作成
BoxWhisker series1 = new BoxWhisker();
series1.Name = "テスト1";
series1.Binding = "Value1";
series1.BindingX = "Name";
//series1.DataSource = dt; // <== 回避方法(2)
series1.QuartileCalculation = QuartileCalculation.InclusiveMedian;
series1.ShowInnerPoints = true;
series1.ShowOutliers = true;
series1.ShowMeanLine = true;
series1.ShowMeanMarks = true;
// 箱ひげ図の追加
flexChart1.Series.Clear();
flexChart1.Series.Add(series1);
// 更新の終了
flexChart1.EndUpdate();
}
}
}
旧文書番号
84945