自動行追加が有効のとき、数式が二重に計算される
対象製品
El Tabelle MultiRow 4.0J
発生環境
この現象は、次のファイルバージョンのアセンブリで発生します。
v4.0.2006.0428 および以前のアセンブリ
v4.0.2006.0428 および以前のアセンブリ
状況
修正済み
詳細
自動行追加が有効(AllowUserToAddMRow=True)のとき、SUM 関数などによる合計処理が二重に計算される場合があります。
回避方法
この現象は、ファイル バージョン v4.0.2006.0526 以降のアセンブリで修正されています。v4.0.2006.0526 は、HotFix で提供されます。
または、次の設定を適用すると現象を回避できます。
AllowUserToAddMRow プロパティを使用せず、最後のマルチ行が編集されたときに InsertMRow メソッドを使使用します。
[Visual Basic]
Private Sub MultiRowSheet1_CellValueChanged(ByVal sender As Object, ByVal e As GrapeCity.Win.ElTabelle.MCellValueChangedEventArgs) Handles MultiRowSheet1.CellValueChanged
'最終行の最後のセルの値が変更されたときに新規行を追加します。
If e.Position.Equals(New GrapeCity.Win.ElTabelle.MPosition(MultiRowSheet1.MRows.Count - 1, 1, 1)) Then
MultiRowSheet1.InsertMRow(MultiRowSheet1.MRows.Count, False)
End If
End Sub
[C#]
private void multiRowSheet1_CellValueChanged(object sender, GrapeCity.Win.ElTabelle.MCellValueChangedEventArgs e)
{
//最終行の最後のセルの値が変更されたときに新規行を追加します。
if(e.Position.Equals(new GrapeCity.Win.ElTabelle.MPosition(multiRowSheet1.MRows.Count - 1, 1, 1)))
{
multiRowSheet1.InsertMRow(multiRowSheet1.MRows.Count, false);
}
}
または、次の設定を適用すると現象を回避できます。
AllowUserToAddMRow プロパティを使用せず、最後のマルチ行が編集されたときに InsertMRow メソッドを使使用します。
[Visual Basic]
Private Sub MultiRowSheet1_CellValueChanged(ByVal sender As Object, ByVal e As GrapeCity.Win.ElTabelle.MCellValueChangedEventArgs) Handles MultiRowSheet1.CellValueChanged
'最終行の最後のセルの値が変更されたときに新規行を追加します。
If e.Position.Equals(New GrapeCity.Win.ElTabelle.MPosition(MultiRowSheet1.MRows.Count - 1, 1, 1)) Then
MultiRowSheet1.InsertMRow(MultiRowSheet1.MRows.Count, False)
End If
End Sub
[C#]
private void multiRowSheet1_CellValueChanged(object sender, GrapeCity.Win.ElTabelle.MCellValueChangedEventArgs e)
{
//最終行の最後のセルの値が変更されたときに新規行を追加します。
if(e.Position.Equals(new GrapeCity.Win.ElTabelle.MPosition(multiRowSheet1.MRows.Count - 1, 1, 1)))
{
multiRowSheet1.InsertMRow(multiRowSheet1.MRows.Count, false);
}
}
キーワード
ETMR05526
この文書は、以前は次のバグレポートIDで公開されていました : 6097