作成日: 2019/04/22 最終更新日: 2019/09/30
文書種別
不具合
状況
修正済み
詳細
SPREADがDBNull.Valueを含んだデータソースに連結されている場合、Excelフィルタリングを使用すると、下記のような例外が発生します。
System.ArgumentException: Cannot convert value to DateTime
System.ArgumentException: Cannot convert value to DateTime
回避方法
Service Pack 5(v10.0.4010.2013)で修正済み。
Service Pack 5より前のバージョンでは次の回避方法が有効です。
------------------------------------------
下記のようにカスタムモデルを作成してアクティブシートに割り当てる方法により回避できます。
-------------------
FpSpread1.ActiveSheetView.DataModel = New CustomDefaultSheetDataModel(FpSpread1.ActiveSheetView.RowCount, FpSpread1.ActiveSheetView.ColumnCount, FpSpread1.ActiveSheetView.SheetName)
・・・
<Serializable>
Class CustomDefaultSheetDataModel
Inherits DefaultSheetDataModel
Public Overrides Function GetValue(row As Integer, column As Integer) As Object
Dim value As Object = MyBase.GetValue(row, column)
If (value Is DBNull.Value) Then
Return Nothing
End If
Return value
End Function
Public Sub New()
MyBase.New()
End Sub
Public Sub New(info As SerializationInfo, context As StreamingContext)
MyBase.New(info, context)
End Sub
Public Sub New(rowCount As Integer, columnCount As Integer, name As String)
MyBase.New(rowCount, columnCount)
Me.Name = name
End Sub
End Class
Service Pack 5より前のバージョンでは次の回避方法が有効です。
------------------------------------------
下記のようにカスタムモデルを作成してアクティブシートに割り当てる方法により回避できます。
-------------------
FpSpread1.ActiveSheetView.DataModel = New CustomDefaultSheetDataModel(FpSpread1.ActiveSheetView.RowCount, FpSpread1.ActiveSheetView.ColumnCount, FpSpread1.ActiveSheetView.SheetName)
・・・
<Serializable>
Class CustomDefaultSheetDataModel
Inherits DefaultSheetDataModel
Public Overrides Function GetValue(row As Integer, column As Integer) As Object
Dim value As Object = MyBase.GetValue(row, column)
If (value Is DBNull.Value) Then
Return Nothing
End If
Return value
End Function
Public Sub New()
MyBase.New()
End Sub
Public Sub New(info As SerializationInfo, context As StreamingContext)
MyBase.New(info, context)
End Sub
Public Sub New(rowCount As Integer, columnCount As Integer, name As String)
MyBase.New(rowCount, columnCount)
Me.Name = name
End Sub
End Class
旧文書番号
83909