作成日: 2022/10/20 最終更新日: 2022/10/20
文書種別
技術情報
詳細
SPREAD for Windows Forms 15.0Jでは、チャートの数値軸(ValueAxisクラス)およびデータラベル(Series クラス)で、値が負数の場合に自動的に赤字で表示することができるLabelNegativeRedプロパティが追加されました。 LabelNegativeRedプロパティをTrueに設定することで、以下のように負数を赤字で表示することができます。
<実行イメージ>
◎サンプルコード(VB)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' テストデータの設定
Dim sheet As FarPoint.Win.Spread.SheetView = FpSpread1.Sheets(0)
sheet.SetClipValue(0, 1, 1, 5, "S" & vbTab & "E" & vbTab & "W" & vbTab & "N" & vbTab & "NE")
sheet.SetClipValue(1, 0, 1, 6, "S1" & vbTab & "50" & vbTab & "-25" & vbTab & "85" & vbTab & "-30" & vbTab & "26")
sheet.SetClipValue(2, 0, 1, 6, "S2" & vbTab & "92" & vbTab & "14" & vbTab & "15" & vbTab & "24" & vbTab & "65")
sheet.SetClipValue(3, 0, 1, 6, "S3" & vbTab & "65" & vbTab & "26" & vbTab & "70" & vbTab & "60" & vbTab & "43")
sheet.SetClipValue(4, 0, 1, 6, "S4" & vbTab & "24" & vbTab & "80" & vbTab & "26" & vbTab & "11" & vbTab & "27")
' シリーズを作成
Dim series1 As FarPoint.Win.Chart.BarSeries = New FarPoint.Win.Chart.BarSeries()
series1.SeriesName = "s1"
series1.SeriesNameDataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$2:$A$2", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series1.CategoryNames.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series1.Values.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$2:$F$2")
' データラベルの表示
series1.LabelVisible = True
' 負数の赤字表示
series1.LabelNegativeRed = True
Dim series2 As FarPoint.Win.Chart.BarSeries = New FarPoint.Win.Chart.BarSeries()
series2.SeriesName = "s2"
series2.SeriesNameDataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$3:$A$3", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series2.CategoryNames.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series2.Values.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$3:$F$3")
Dim series3 As FarPoint.Win.Chart.BarSeries = New FarPoint.Win.Chart.BarSeries()
series3.SeriesName = "s3"
series3.SeriesNameDataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$4:$A$4", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series3.CategoryNames.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series3.Values.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$4:$F$4")
Dim series4 As FarPoint.Win.Chart.BarSeries = New FarPoint.Win.Chart.BarSeries()
series4.SeriesName = "s4"
series4.SeriesNameDataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$5:$A$5", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series4.CategoryNames.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text)
series4.Values.DataSource = New FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$5:$F$5")
Dim barSeries As FarPoint.Win.Chart.ClusteredBarSeries = New FarPoint.Win.Chart.ClusteredBarSeries()
barSeries.Series.AddRange(New FarPoint.Win.Chart.BarSeries() {series1, series2, series3, series4})
' プロット領域を作成
Dim plotArea As FarPoint.Win.Chart.YPlotArea = New FarPoint.Win.Chart.YPlotArea()
plotArea.Location = New System.Drawing.PointF(0.1F, 0.1F)
plotArea.Size = New System.Drawing.SizeF(0.7F, 0.8F)
plotArea.XAxis.MajorGridVisible = True
plotArea.Vertical = False
' 負数の赤字表示
plotArea.YAxes(0).LabelNegativeRed = True
plotArea.Series.AddRange(New FarPoint.Win.Chart.Series() {barSeries})
' 凡例を設定
Dim legend As FarPoint.Win.Chart.LegendArea = New FarPoint.Win.Chart.LegendArea()
legend.Location = New System.Drawing.PointF(0.995F, 0.5F)
legend.AlignmentX = 1.0F
legend.AlignmentY = 0.5F
' チャートモデルに各情報を追加
Dim model As FarPoint.Win.Chart.ChartModel = New FarPoint.Win.Chart.ChartModel()
model.LegendAreas.Add(legend)
model.PlotAreas.Add(plotArea)
' SPREADチャートにチャートモデルを設定
Dim chart As FarPoint.Win.Spread.Chart.SpreadChart = New FarPoint.Win.Spread.Chart.SpreadChart()
chart.Size = New Size(450, 250)
chart.Location = New Point(0, 120)
chart.Model = model
' シートにSPREADチャートを追加
sheet.Charts.Add(chart)
End Sub
End Class
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
FarPoint.Win.Spread.SheetView sheet = fpSpread1.Sheets[0];
// テストデータの設定
sheet.SetClipValue(0, 1, 1, 5, "S\tE\tW\tN\tNE");
sheet.SetClipValue(1, 0, 1, 6, "S1\t50\t-25\t85\t-30\t26");
sheet.SetClipValue(2, 0, 1, 6, "S2\t92\t14\t15\t24\t65");
sheet.SetClipValue(3, 0, 1, 6, "S3\t65\t26\t70\t60\t43");
sheet.SetClipValue(4, 0, 1, 6, "S4\t24\t80\t26\t11\t27");
// シリーズを作成
FarPoint.Win.Chart.BarSeries series1 = new FarPoint.Win.Chart.BarSeries();
series1.SeriesName = "s1";
series1.SeriesNameDataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$2:$A$2", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series1.CategoryNames.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series1.Values.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$2:$F$2");
// データラベルの表示
series1.LabelVisible = true;
// 負数の赤字表示
series1.LabelNegativeRed = true;
FarPoint.Win.Chart.BarSeries series2 = new FarPoint.Win.Chart.BarSeries();
series2.SeriesName = "s2";
series2.SeriesNameDataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$3:$A$3", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series2.CategoryNames.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series2.Values.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$3:$F$3");
FarPoint.Win.Chart.BarSeries series3 = new FarPoint.Win.Chart.BarSeries();
series3.SeriesName = "s3";
series3.SeriesNameDataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$4:$A$4", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series3.CategoryNames.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series3.Values.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$4:$F$4");
FarPoint.Win.Chart.BarSeries series4 = new FarPoint.Win.Chart.BarSeries();
series4.SeriesName = "s4";
series4.SeriesNameDataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldSeriesName", "Sheet1!$A$5:$A$5", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series4.CategoryNames.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldCategoryName", "Sheet1!$B$1:$F$1", FarPoint.Win.Spread.Chart.SegmentDataType.Text);
series4.Values.DataSource = new FarPoint.Win.Spread.Chart.SeriesDataField(sheet.FpSpread, "DataFieldValue", "Sheet1!$B$5:$F$5");
FarPoint.Win.Chart.ClusteredBarSeries barSeries = new FarPoint.Win.Chart.ClusteredBarSeries();
barSeries.Series.AddRange(new FarPoint.Win.Chart.BarSeries[] { series1, series2, series3, series4 });
// プロット領域を作成
FarPoint.Win.Chart.YPlotArea plotArea = new FarPoint.Win.Chart.YPlotArea();
plotArea.Location = new System.Drawing.PointF(0.1f, 0.1f);
plotArea.Size = new System.Drawing.SizeF(0.7f, 0.8f);
plotArea.XAxis.MajorGridVisible = true;
plotArea.Vertical = false;
// 負数の赤字表示
plotArea.YAxes[0].LabelNegativeRed = true;
plotArea.Series.AddRange(new FarPoint.Win.Chart.Series[] { barSeries });
// 凡例を設定
FarPoint.Win.Chart.LegendArea legend = new FarPoint.Win.Chart.LegendArea();
legend.Location = new System.Drawing.PointF(0.995f, 0.5f);
legend.AlignmentX = 1f;
legend.AlignmentY = 0.5f;
// チャートモデルに各情報を追加
FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel();
model.LegendAreas.Add(legend);
model.PlotAreas.Add(plotArea);
// SPREADチャートにチャートモデルを設定
FarPoint.Win.Spread.Chart.SpreadChart chart = new FarPoint.Win.Spread.Chart.SpreadChart();
chart.Size = new Size(450, 250);
chart.Location = new Point(0, 120);
chart.Model = model;
// シートにSPREADチャートを追加
sheet.Charts.Add(chart);
}