[FlexPivot for WinForms] グリッドで、上下のセル値が同じでも、セル同士が正しく結合されないことがある

文書番号 : 81778     文書種別 : 既知の問題     登録日 : 2016/08/17     最終更新日 : 2017/01/25
文書を印刷する
対象製品
ComponentOne for WinForms
ステータス
修正済み
詳細
FlexPivotのグリッドで、以下のケースでは、同じ値を持つセルが期待するように結合されません。

◆パターン1◆
1列目に、同じ値を持ち隣接する複数行が何組かあり、2列目では、これらの組に対するセル値がすべて同じ場合。
【結果】ソートされた1列目の先頭組のセル以外、結合されません。

◆パターン2◆
1列目に、同じ値を持ち隣接する複数行が何組かあり、2列目で、これらの組に対するセル値が一つだけ異なる場合。
【結果】該当セルより下部にある行は、1列目/2列目とも結合されません。
回避方法
この問題はバージョン2.0.20163.226または4.0.20163.226で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。

修正版を適用しない場合の回避方法は、次の通りです。

・FlexPivotのUpdatedイベントを利用し、データの更新が発生したタイミングで、FlexPivotGridのAllowMergingおよびAllowMergingFixedを明示的に指定します。

(A) 隣接するセルが同じ値のセル同士をすべて自動的に結合させる場合

◎サンプルコード(VB)
Private Sub c1FlexPivotPage1_Updated(sender As Object, e As EventArgs)
  Me.c1FlexPivotPage1.FlexPivotGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.FixedOnly
  Me.c1FlexPivotPage1.FlexPivotGrid.AllowMergingFixed = C1.Win.C1FlexGrid.AllowMergingEnum.Free
  For Each col As C1.Win.C1FlexGrid.Column In Me.c1FlexPivotPage1.FlexPivotGrid.Cols
    col.AllowMerging = True
  Next
  For Each row As C1.Win.C1FlexGrid.Row In Me.c1FlexPivotPage1.FlexPivotGrid.Rows
    row.AllowMerging = False
  Next
End Sub

◎サンプルコード(C#)
private void c1FlexPivotPage1_Updated(object sender, EventArgs e)
{
  this.c1FlexPivotPage1.FlexPivotGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.FixedOnly;
  this.c1FlexPivotPage1.FlexPivotGrid.AllowMergingFixed = C1.Win.C1FlexGrid.AllowMergingEnum.Free;
  foreach (C1.Win.C1FlexGrid.Column col in this.c1FlexPivotPage1.FlexPivotGrid.Cols) {
    col.AllowMerging = true;
  }
  foreach (C1.Win.C1FlexGrid.Row row in this.c1FlexPivotPage1.FlexPivotGrid.Rows) {
    row.AllowMerging = false;
  }
}

(B) 左側の列の結合状態に応じて、右側の列を結合させる場合

◎サンプルコード(VB)
Private Sub c1FlexPivotPage1_Updated(sender As Object, e As EventArgs)
  Me.c1FlexPivotPage1.FlexPivotGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.RestrictCols
  Me.c1FlexPivotPage1.FlexPivotGrid.AllowMergingFixed = C1.Win.C1FlexGrid.AllowMergingEnum.RestrictCols
  For Each col As C1.Win.C1FlexGrid.Column In Me.c1FlexPivotPage1.FlexPivotGrid.Cols
    col.AllowMerging = True
  Next
  For Each row As C1.Win.C1FlexGrid.Row In Me.c1FlexPivotPage1.FlexPivotGrid.Rows
    row.AllowMerging = False
  Next
End Sub

◎サンプルコード(C#)
private void c1FlexPivotPage1_Updated(object sender, EventArgs e)
{
  this.c1FlexPivotPage1.FlexPivotGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.RestrictCols;
  this.c1FlexPivotPage1.FlexPivotGrid.AllowMergingFixed = C1.Win.C1FlexGrid.AllowMergingEnum.RestrictCols;
  foreach (C1.Win.C1FlexGrid.Column col in this.c1FlexPivotPage1.FlexPivotGrid.Cols) {
    col.AllowMerging = true;
  }
  foreach (C1.Win.C1FlexGrid.Row row in this.c1FlexPivotPage1.FlexPivotGrid.Rows) {
    row.AllowMerging = false;
  }
}