MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > データ操作 > フィルタリング > フィルタリングの外観 |
フィルタの基準を満たした行を「フィルタイン」行、基準を満たさない行を「フィルタアウト」行と呼びます。フィルタした行の表示方法には、フィルタアウト行を非表示にする方法と、フィルタイン行およびフィルタアウト行の両方を表示し、それぞれに異なる外観(スタイル)を適用する方法があります。
表示方法 | 説明 |
---|---|
非表示フィルタ | フィルタアウト行を非表示にします。HideRowFilterクラスを使用します。 |
スタイル行フィルタ | フィルタイン行およびフィルタアウト行の両方を表示し、それぞれに異なる外観(スタイル)を適用します。StyleRowFilterクラスを使用します。 |
スタイル行フィルタを使用すると、フィルタの基準を満たした行を強調表示できます。フィルタイン行、およびフィルタアウト行に適用するスタイルは、それぞれNamedStyleオブジェクトとして定義します。
次の図は、スタイル行フィルタで、フィルタ項目リストから「Gibson」を選択する様子を表しています。「Gibson」に該当する行にはフィルタイン行のスタイルが、他の行には、フィルタアウト行のスタイルが適用されています。詳しくは、後述のサンプルコードを参照してください。
次のサンプルコードは、スタイル行フィルタを設定します。フィルタイン行、およびフィルタアウト行に適用するスタイルを、それぞれNamedStyleオブジェクトとして定義します。先頭列のフィルタ定義を作成し、StyleRowFilterオブジェクトに追加します。そして、StyleRowFilterオブジェクトをシートに設定します。
C# |
コードのコピー
|
---|---|
// フィルタリングされた行に適用するスタイルを定義します。 FarPoint.Win.Spread.NamedStyle inStyle = new FarPoint.Win.Spread.NamedStyle(); FarPoint.Win.Spread.NamedStyle outStyle = new FarPoint.Win.Spread.NamedStyle(); inStyle.BackColor = Color.LightCyan; inStyle.ForeColor = Color.DarkRed; outStyle.BackColor = Color.LemonChiffon; outStyle.ForeColor = Color.Green; // 先頭列に対して新規のフィルタ列定義を作成します(デフォルト設定によるDefinition)。 FarPoint.Win.Spread.FilterColumnDefinition fcdef = new FarPoint.Win.Spread.FilterColumnDefinition(0); // StyleRowFilterオブジェクト(Styleフィルタ)を作成し、上記のフィルタリング列定義を追加します。 FarPoint.Win.Spread.StyleRowFilter styleFilter = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, inStyle, outStyle); styleFilter.AddColumn(fcdef); // 作成した行フィルタリングオブジェクトをシートに設定します。 fpSpread1.ActiveSheet.RowFilter = styleFilter; fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget; // データ領域にテキストデータを供給します。 fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.TextCellType(); fpSpread1.ActiveSheet.SetText(0, 0, "Fender"); fpSpread1.ActiveSheet.SetText(1, 0, "Gibson"); fpSpread1.ActiveSheet.SetText(2, 0, "Fender"); fpSpread1.ActiveSheet.SetText(3, 0, "Ibanez"); fpSpread1.ActiveSheet.SetText(4, 0, "Gibson"); fpSpread1.ActiveSheet.SetText(5, 0, "Yamaha"); fpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC"); fpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus"); fpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX"); fpSpread1.ActiveSheet.SetText(3, 1, "AGS83B"); fpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme"); fpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II"); fpSpread1.ActiveSheet.SetColumnWidth(0, 90); fpSpread1.ActiveSheet.SetColumnWidth(1, 210); |
Visual Basic |
コードのコピー
|
---|---|
' フィルタイン行に対する名前付きスタイルオブジェクトを作成します。 Dim inStyle As New FarPoint.Win.Spread.NamedStyle Dim outStyle As New FarPoint.Win.Spread.NamedStyle inStyle.BackColor = Color.LightCyan inStyle.ForeColor = Color.DarkRed outStyle.BackColor = Color.LemonChiffon outStyle.ForeColor = Color.Green ' 先頭列に対して新規のフィルタ列定義を作成します(デフォルト設定によるDefinition)。 Dim fcdef As New FarPoint.Win.Spread.FilterColumnDefinition(0) ' StyleRowFilterオブジェクト(Styleフィルタ)を作成し、上記のフィルタリング列定義を追加します。 Dim styleFilter As New FarPoint.Win.Spread.StyleRowFilter(FpSpread1.ActiveSheet, inStyle, outStyle) styleFilter.AddColumn(fcdef) ' 作成した行フィルタリングオブジェクトをシートに設定します。 FpSpread1.ActiveSheet.RowFilter = styleFilter FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget ' データ領域にテキストデータを供給します。 FpSpread1.ActiveSheet.DefaultStyle.CellType = New FarPoint.Win.Spread.CellType.TextCellType FpSpread1.ActiveSheet.SetText(0, 0, "Fender") FpSpread1.ActiveSheet.SetText(1, 0, "Gibson") FpSpread1.ActiveSheet.SetText(2, 0, "Fender") FpSpread1.ActiveSheet.SetText(3, 0, "Ibanez") FpSpread1.ActiveSheet.SetText(4, 0, "Gibson") FpSpread1.ActiveSheet.SetText(5, 0, "YAMAHA") FpSpread1.ActiveSheet.SetText(0, 1, "AST-100 DMC") FpSpread1.ActiveSheet.SetText(1, 1, "Les Paul Standard Double Cut Plus") FpSpread1.ActiveSheet.SetText(2, 1, "ST58-70TX") FpSpread1.ActiveSheet.SetText(3, 1, "AGS83B") FpSpread1.ActiveSheet.SetText(4, 1, "Les Paul Supreme") FpSpread1.ActiveSheet.SetText(5, 1, "ATTITUDE-Limited II") FpSpread1.ActiveSheet.SetColumnWidth(0, 90) FpSpread1.ActiveSheet.SetColumnWidth(1, 210) |
次のサンプルコードは、非表示フィルタを設定します。先頭列のフィルタ定義を作成し、HideRowFilterオブジェクトに追加します。そして、HideRowFilterオブジェクトをシートに設定します。
C# |
コードのコピー
|
---|---|
// 先頭列に対して新規のフィルタ列定義を作成します(デフォルト設定によるDefinition)。 FarPoint.Win.Spread.FilterColumnDefinition fcdef = new FarPoint.Win.Spread.FilterColumnDefinition(0); // HideRowFilterオブジェクト(Styleフィルタ)を作成し、上記のフィルタリング列定義を追加します。 FarPoint.Win.Spread.HideRowFilter hideFilter = new FarPoint.Win.Spread.HideRowFilter(fpSpread1.ActiveSheet); hideFilter.AddColumn(fcdef); // 作成した行フィルタリングオブジェクトをシートに設定します。 fpSpread1.ActiveSheet.RowFilter = hideFilter; fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget; |
Visual Basic |
コードのコピー
|
---|---|
' 先頭列に対して新規のフィルタ列定義を作成します(デフォルト設定によるDefinition)。 Dim fcdef As New FarPoint.Win.Spread.FilterColumnDefinition(0) ' HideRowFilterオブジェクト(Styleフィルタ)を作成し、上記のフィルタリング列定義を追加します。 Dim hideFilter As New FarPoint.Win.Spread.HideRowFilter(FpSpread1.ActiveSheet) hideFilter.AddColumn(fcdef) ' 作成した行フィルタリングオブジェクトをシートに設定します。 FpSpread1.ActiveSheet.RowFilter = hideFilter FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget |