作成日: 2018/09/21 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
SPREADに外部データ(DataTable等)をデータ連結した後に、その連結セルを参照する配列数式を設定しようとすると、以下の例外が発生します。
----------------------------------------
System.NotSupportedException :数式配列を設定できません。
----------------------------------------
■サンプルコード(VB.NET)
----------------------------------------
System.NotSupportedException :数式配列を設定できません。
----------------------------------------
■サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' サンプルデータを作成します。
Dim dt As New DataTable("SAMPLE")
dt.Columns.Add("ItemB", GetType(Int32))
dt.Columns.Add("ItemC", GetType(Int32))
dt.Rows.Add(100, 1)
dt.Rows.Add(10, 2)
dt.Rows.Add(200, 1)
dt.Rows.Add(20, 2)
dt.AcceptChanges()
' SPREADに生成したデータを連結します。
FpSpread1.ActiveSheet.AutoGenerateColumns = False
FpSpread1.ActiveSheet.DataAutoCellTypes = False
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.ColumnCount = 3
FpSpread1.ActiveSheet.DataSource = dt
FpSpread1.ActiveSheet.BindDataColumn(1, "ItemB")
FpSpread1.ActiveSheet.BindDataColumn(2, "ItemC")
' 配列数式を設定します。
FpSpread1.ActiveSheet.Cells(0, 0).FormulaArray _
= "SUM(IF(C1:C4=1,B1:B4,0))-SUM(IF(C1:C4=2,B1:B4,0))"
End Sub
' サンプルデータを作成します。
Dim dt As New DataTable("SAMPLE")
dt.Columns.Add("ItemB", GetType(Int32))
dt.Columns.Add("ItemC", GetType(Int32))
dt.Rows.Add(100, 1)
dt.Rows.Add(10, 2)
dt.Rows.Add(200, 1)
dt.Rows.Add(20, 2)
dt.AcceptChanges()
' SPREADに生成したデータを連結します。
FpSpread1.ActiveSheet.AutoGenerateColumns = False
FpSpread1.ActiveSheet.DataAutoCellTypes = False
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.ColumnCount = 3
FpSpread1.ActiveSheet.DataSource = dt
FpSpread1.ActiveSheet.BindDataColumn(1, "ItemB")
FpSpread1.ActiveSheet.BindDataColumn(2, "ItemC")
' 配列数式を設定します。
FpSpread1.ActiveSheet.Cells(0, 0).FormulaArray _
= "SUM(IF(C1:C4=1,B1:B4,0))-SUM(IF(C1:C4=2,B1:B4,0))"
End Sub
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
Service Pack 2を適用せずに対処する方法としては、SPREADにデータ連結する前(DataSourceプロパティを設定する前)に、配列数式を設定してください。
Service Pack 2を適用せずに対処する方法としては、SPREADにデータ連結する前(DataSourceプロパティを設定する前)に、配列数式を設定してください。
旧文書番号
83250