【ソート】空の文字列(String.Empty)を含むデータを複数の列でソートすると正しい結果が得られない

文書番号 : 23797     文書種別 : 不具合     最終更新日 : 2007/05/03
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
SortInfo 配列を指定して複数の列でソートする際、プライマリ列に空の文字列が設定されていると正しい順序でソートが行われません。
空の文字列ではなくNothingの場合は正しくソートされます。

[再現手順]
1.新規WebフォームにSPREADとButtonを配置します
2.下記コードをコピーします
3.実行し、Buttonをクリックします
4.2列目のソート結果が不正となります

[再現コード]
-------------------------
Webフォームクラス
-------------------------
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack Then Return

    Dim dt As New Data.DataTable

    dt.Columns.Add(New Data.DataColumn("COL1", GetType(System.String)))
    dt.Columns.Add(New Data.DataColumn("COL2", GetType(System.String)))

    Dim a As Int32 = 65
    For i As Int32 = 0 To 9
      dt.Rows.Add(New Object() {"", Chr(a + i).ToString()})
    Next

    Dim ds As New Data.DataSet
    ds.Tables.Add(dt)

    FpSpread1.DataSource = ds
  End Sub

  ' ソートの実行(昇順)
  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' クライアントの変更を確定
    FpSpread1.SaveChanges()

    Dim si As New FarPoint.Web.Spread.SortInfo(0, True)
    Dim si2 As New FarPoint.Web.Spread.SortInfo(1, True)
    Dim info() As FarPoint.Web.Spread.SortInfo = New FarPoint.Web.Spread.SortInfo() {si, si2}

    FpSpread1.ActiveSheetView.SortRows(0, FpSpread1.ActiveSheetView.RowCount, info)
  End Sub
回避方法
2007/09/05版で修正済み。
キーワード
SPRN06081

この文書は、以前は次のバグレポートIDで公開されていました : 6945