作成日: 2021/01/15 最終更新日: 2021/02/03
文書種別
不具合
状況
修正済み
詳細
SetRowPageBreakメソッドで複数の行に対して改ページを設定してから改ページが設定された行の一部を削除すると、改ページが設定されている削除されていない行の改ページ情報も不正に削除され、GetRowPageBreakメソッドがFalseを返す場合があります。
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadを張り付ける。
2.下記サンプルコードを記述し、プロジェクトを実行する。
■サンプルコード(VB.NET)
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadを張り付ける。
2.下記サンプルコードを記述し、プロジェクトを実行する。
■サンプルコード(VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim sheet As FarPoint.Win.Spread.SheetView = FpSpread1.ActiveSheet
sheet.RowCount = 1100
'改ページ設定
sheet.SetRowPageBreak(20, True)
sheet.SetRowPageBreak(40, True)
sheet.SetRowPageBreak(1020, True)
sheet.SetRowPageBreak(1040, True)
Console.WriteLine($"pre: 1020行={sheet.GetRowPageBreak(1020)}")
Console.WriteLine($"pre: 1040行={sheet.GetRowPageBreak(1040)}")
'pre: 1020行 = True
'pre: 1040行 = True
'行の削除
sheet.RemoveRows(0, 1000)
Console.WriteLine($"pst: 20行={sheet.GetRowPageBreak(20)}")
Console.WriteLine($"pst: 40行={sheet.GetRowPageBreak(40)}")
'pst: 20行 = False <== 本来はTrueになるべき動作のため不正
'pst: 40行 = False <== 本来はTrueになるべき動作のため不正
End Sub
Dim sheet As FarPoint.Win.Spread.SheetView = FpSpread1.ActiveSheet
sheet.RowCount = 1100
'改ページ設定
sheet.SetRowPageBreak(20, True)
sheet.SetRowPageBreak(40, True)
sheet.SetRowPageBreak(1020, True)
sheet.SetRowPageBreak(1040, True)
Console.WriteLine($"pre: 1020行={sheet.GetRowPageBreak(1020)}")
Console.WriteLine($"pre: 1040行={sheet.GetRowPageBreak(1040)}")
'pre: 1020行 = True
'pre: 1040行 = True
'行の削除
sheet.RemoveRows(0, 1000)
Console.WriteLine($"pst: 20行={sheet.GetRowPageBreak(20)}")
Console.WriteLine($"pst: 40行={sheet.GetRowPageBreak(40)}")
'pst: 20行 = False <== 本来はTrueになるべき動作のため不正
'pst: 40行 = False <== 本来はTrueになるべき動作のため不正
End Sub
回避方法
Service Pack 6(v12.0.4509.2012)で修正済み。
旧文書番号
86324