作成日: 2018/10/23 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
拡張フィルタを有効にして列の移動を行うと、フィルタのクリア機能に表示される列名が不正になります。
■サンプルコード(C#)
【再現手順】
1.プロジェクトをデバッグ実行します。
2.button1を押下し列を移動させます。
3.ParentB列のフィルタを展開します。
-- 「"ParentC"からフィルタをクリア」というメニューアイテムが表示されます。
■サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
int maxParentRows = 5;
int maxChildRows = 5;
DataSet ds = new DataSet();
DataTable parent = ds.Tables.Add("Parent");
parent.DefaultView.AllowNew = false;
parent.Columns.Add("ParentA", typeof(Int32));
parent.Columns.Add("ParentB", typeof(Int32));
parent.Columns.Add("ParentC", typeof(Int32));
parent.Columns.Add("ParentD", typeof(Int32));
for (var i = 0; i < maxParentRows; i++)
{
parent.Rows.Add(i,i,i,i);
}
DataTable child = ds.Tables.Add("Child");
child.DefaultView.AllowNew = false;
child.Columns.Add("ChildA", typeof(Int32));
child.Columns.Add("ChildB", typeof(String));
for (var i = 0; i < maxParentRows; i++)
{
for (var j = 0; j < maxChildRows; j++)
{
child.Rows.Add(i, String.Format("P{0}C{1}", i, j));
}
}
ds.Relations.Add("PCRelation", parent.Columns["ParentA"], child.Columns["ChildA"]);
// データの連結
fpSpread1.ActiveSheet.DataSource = ds.Tables["Parent"];
// フィルタの設定
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.SetColumnAllowFilter(0, 4, true);
}
private void button1_Click(object sender, EventArgs e)
{
// 列の移動
fpSpread1.ActiveSheet.MoveColumn(0, 2, true);
}
{
// データの作成
int maxParentRows = 5;
int maxChildRows = 5;
DataSet ds = new DataSet();
DataTable parent = ds.Tables.Add("Parent");
parent.DefaultView.AllowNew = false;
parent.Columns.Add("ParentA", typeof(Int32));
parent.Columns.Add("ParentB", typeof(Int32));
parent.Columns.Add("ParentC", typeof(Int32));
parent.Columns.Add("ParentD", typeof(Int32));
for (var i = 0; i < maxParentRows; i++)
{
parent.Rows.Add(i,i,i,i);
}
DataTable child = ds.Tables.Add("Child");
child.DefaultView.AllowNew = false;
child.Columns.Add("ChildA", typeof(Int32));
child.Columns.Add("ChildB", typeof(String));
for (var i = 0; i < maxParentRows; i++)
{
for (var j = 0; j < maxChildRows; j++)
{
child.Rows.Add(i, String.Format("P{0}C{1}", i, j));
}
}
ds.Relations.Add("PCRelation", parent.Columns["ParentA"], child.Columns["ChildA"]);
// データの連結
fpSpread1.ActiveSheet.DataSource = ds.Tables["Parent"];
// フィルタの設定
fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;
fpSpread1.ActiveSheet.SetColumnAllowFilter(0, 4, true);
}
private void button1_Click(object sender, EventArgs e)
{
// 列の移動
fpSpread1.ActiveSheet.MoveColumn(0, 2, true);
}
【再現手順】
1.プロジェクトをデバッグ実行します。
2.button1を押下し列を移動させます。
3.ParentB列のフィルタを展開します。
-- 「"ParentC"からフィルタをクリア」というメニューアイテムが表示されます。
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
旧文書番号
83328