作成日: 2019/06/25 最終更新日: 2019/06/25
文書種別
不具合
状況
修正済み
詳細
カスタムモデルを使用するとカスタムセルのFormat関数が返す文字列を、Textプロパティの値として取得できません。また、その結果としてSearchメソッドが正しく動作しません。
下記サンプルコードで現象が確認可能です。
■サンプルコード(VB.NET)
下記サンプルコードで現象が確認可能です。
■サンプルコード(VB.NET)
Imports FarPoint.Win.Spread.CellType
Imports FarPoint.Win.Spread.Model
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' カスタムモデルを設定
FpSpread1.ActiveSheet.Models.Data = New CustomSheetDataModel
' テストデータの作成
Dim replaceMap As New Dictionary(Of Object, String)
replaceMap.Add("0", String.Empty)
' SPREADの設定
FpSpread1.ActiveSheet.RowCount = 1
FpSpread1.ActiveSheet.ColumnCount = 1
FpSpread1.ActiveSheet.Columns(0).CellType = New CustomGeneralCellType(replaceMap)
FpSpread1.ActiveSheet.Models.Data.SetValue(0, 0, "0")
Dim x As Integer
Dim y As Integer
Dim result As String = FpSpread1.Search(FpSpread1.ActiveSheetIndex, "0", False, False, False, False, True, False, False, 0, 0, x, y)
' ※本来は検索結果無しでNothingが返却されますが、検索結果有りとして文字列が返却されています。
Console.WriteLine(result)
End Sub
Private Class CustomSheetDataModel
Inherits DefaultSheetDataModel
End Class
Private Class CustomGeneralCellType
Inherits GeneralCellType
Private ReplaceMap As Dictionary(Of Object, String)
Public Sub New(repraceMap As Dictionary(Of Object, String))
ReplaceMap = repraceMap
End Sub
Public Overrides Function Format(obj As Object) As String
If Not (ReplaceMap.ContainsKey(obj)) Then Return String.Empty
Return ReplaceMap(obj)
End Function
End Class
End Class
Imports FarPoint.Win.Spread.Model
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' カスタムモデルを設定
FpSpread1.ActiveSheet.Models.Data = New CustomSheetDataModel
' テストデータの作成
Dim replaceMap As New Dictionary(Of Object, String)
replaceMap.Add("0", String.Empty)
' SPREADの設定
FpSpread1.ActiveSheet.RowCount = 1
FpSpread1.ActiveSheet.ColumnCount = 1
FpSpread1.ActiveSheet.Columns(0).CellType = New CustomGeneralCellType(replaceMap)
FpSpread1.ActiveSheet.Models.Data.SetValue(0, 0, "0")
Dim x As Integer
Dim y As Integer
Dim result As String = FpSpread1.Search(FpSpread1.ActiveSheetIndex, "0", False, False, False, False, True, False, False, 0, 0, x, y)
' ※本来は検索結果無しでNothingが返却されますが、検索結果有りとして文字列が返却されています。
Console.WriteLine(result)
End Sub
Private Class CustomSheetDataModel
Inherits DefaultSheetDataModel
End Class
Private Class CustomGeneralCellType
Inherits GeneralCellType
Private ReplaceMap As Dictionary(Of Object, String)
Public Sub New(repraceMap As Dictionary(Of Object, String))
ReplaceMap = repraceMap
End Sub
Public Overrides Function Format(obj As Object) As String
If Not (ReplaceMap.ContainsKey(obj)) Then Return String.Empty
Return ReplaceMap(obj)
End Function
End Class
End Class
回避方法
Service Pack 2(v12.0.4503.2012)で修正済み。
旧文書番号
84108