作成日: 2018/06/05 最終更新日: 2018/06/05
文書種別
使用方法
詳細
ソートインジケータクリックによる自動ソート開始時にはAutoSortingColumnイベントが発生します。イベント引数e.CancelをTrueにすることでデフォルトのソート処理をキャンセルし、SortRowsメソッドにて独自のソート処理を実現できます。
複数のソート条件を指定する場合にはSortInfoクラスを利用します。SortRowsメソッドにSortInfoオブジェクトの配列を渡すことで、指定したソート条件に基づいたソートができます。
◎サンプルコード(VB)
◎サンプルコード(C#)
複数のソート条件を指定する場合にはSortInfoクラスを利用します。SortRowsメソッドにSortInfoオブジェクトの配列を渡すことで、指定したソート条件に基づいたソートができます。
◎サンプルコード(VB)
Imports FarPoint.Win.Spread.Model
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 5
FpSpread1.ActiveSheet.ColumnCount = 2
FpSpread1.ActiveSheet.SetValue(0, 0, 10)
FpSpread1.ActiveSheet.SetValue(1, 0, 5)
FpSpread1.ActiveSheet.SetValue(2, 0, 10)
FpSpread1.ActiveSheet.SetValue(3, 0, 5)
FpSpread1.ActiveSheet.SetValue(4, 0, 5)
FpSpread1.ActiveSheet.SetValue(0, 1, 200)
FpSpread1.ActiveSheet.SetValue(1, 1, 1)
FpSpread1.ActiveSheet.SetValue(2, 1, 100)
FpSpread1.ActiveSheet.SetValue(3, 1, 2)
FpSpread1.ActiveSheet.SetValue(4, 1, 3)
'第一列の自動ソートを許可します
FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True
End Sub
Private Sub FpSpread1_AutoSortingColumn(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.AutoSortingColumnEventArgs) Handles FpSpread1.AutoSortingColumn
'デフォルト動作をキャンセルします
e.Cancel = True
'現在のソートインジケーターを取得します
Dim Indicator As SortIndicator = FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator
Dim si(1) As FarPoint.Win.Spread.SortInfo
'ソートキーを「第一列」「第二列」の順で設定します
If Indicator = SortIndicator.None Or Indicator = SortIndicator.Descending Then
FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator = SortIndicator.Ascending
si(0) = New FarPoint.Win.Spread.SortInfo(0, True)
si(1) = New FarPoint.Win.Spread.SortInfo(1, True)
Else
FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator = SortIndicator.Descending
si(0) = New FarPoint.Win.Spread.SortInfo(0, False)
si(1) = New FarPoint.Win.Spread.SortInfo(1, False)
End If
'ソートを実行します
FpSpread1.ActiveSheet.SortRows(0, FpSpread1.ActiveSheet.RowCount, si)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 5
FpSpread1.ActiveSheet.ColumnCount = 2
FpSpread1.ActiveSheet.SetValue(0, 0, 10)
FpSpread1.ActiveSheet.SetValue(1, 0, 5)
FpSpread1.ActiveSheet.SetValue(2, 0, 10)
FpSpread1.ActiveSheet.SetValue(3, 0, 5)
FpSpread1.ActiveSheet.SetValue(4, 0, 5)
FpSpread1.ActiveSheet.SetValue(0, 1, 200)
FpSpread1.ActiveSheet.SetValue(1, 1, 1)
FpSpread1.ActiveSheet.SetValue(2, 1, 100)
FpSpread1.ActiveSheet.SetValue(3, 1, 2)
FpSpread1.ActiveSheet.SetValue(4, 1, 3)
'第一列の自動ソートを許可します
FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True
End Sub
Private Sub FpSpread1_AutoSortingColumn(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.AutoSortingColumnEventArgs) Handles FpSpread1.AutoSortingColumn
'デフォルト動作をキャンセルします
e.Cancel = True
'現在のソートインジケーターを取得します
Dim Indicator As SortIndicator = FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator
Dim si(1) As FarPoint.Win.Spread.SortInfo
'ソートキーを「第一列」「第二列」の順で設定します
If Indicator = SortIndicator.None Or Indicator = SortIndicator.Descending Then
FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator = SortIndicator.Ascending
si(0) = New FarPoint.Win.Spread.SortInfo(0, True)
si(1) = New FarPoint.Win.Spread.SortInfo(1, True)
Else
FpSpread1.ActiveSheet.Columns(e.Column).SortIndicator = SortIndicator.Descending
si(0) = New FarPoint.Win.Spread.SortInfo(0, False)
si(1) = New FarPoint.Win.Spread.SortInfo(1, False)
End If
'ソートを実行します
FpSpread1.ActiveSheet.SortRows(0, FpSpread1.ActiveSheet.RowCount, si)
End Sub
◎サンプルコード(C#)
using FarPoint.Win.Spread.Model;
private void Form1_Load(object sender, System.EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 5;
fpSpread1.ActiveSheet.ColumnCount = 2;
fpSpread1.ActiveSheet.SetValue(0, 0, 10);
fpSpread1.ActiveSheet.SetValue(1, 0, 5);
fpSpread1.ActiveSheet.SetValue(2, 0, 10);
fpSpread1.ActiveSheet.SetValue(3, 0, 5);
fpSpread1.ActiveSheet.SetValue(4, 0, 5);
fpSpread1.ActiveSheet.SetValue(0, 1, 200);
fpSpread1.ActiveSheet.SetValue(1, 1, 1);
fpSpread1.ActiveSheet.SetValue(2, 1, 100);
fpSpread1.ActiveSheet.SetValue(3, 1, 2);
fpSpread1.ActiveSheet.SetValue(4, 1, 3);
//第一列の自動ソートを許可します
fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = true;
}
private void fpSpread1_AutoSortingColumn(object sender, FarPoint.Win.Spread.AutoSortingColumnEventArgs e)
{
//デフォルト動作をキャンセルします
e.Cancel = true;
//現在のソートインジケーターを取得します
SortIndicator Indicator = fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator;
FarPoint.Win.Spread.SortInfo[] si = new FarPoint.Win.Spread.SortInfo[2];
//ソートキーを「第一列」「第二列」の順で設定します
if (Indicator == SortIndicator.None || Indicator == SortIndicator.Descending)
{
fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator = SortIndicator.Ascending;
si[0] = new FarPoint.Win.Spread.SortInfo(0, true);
si[1] = new FarPoint.Win.Spread.SortInfo(1, true);
}
else
{
fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator = SortIndicator.Descending;
si[0] = new FarPoint.Win.Spread.SortInfo(0, false);
si[1] = new FarPoint.Win.Spread.SortInfo(1, false);
}
//ソートを実行します
fpSpread1.ActiveSheet.SortRows(0, fpSpread1.ActiveSheet.RowCount, si);
}
private void Form1_Load(object sender, System.EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 5;
fpSpread1.ActiveSheet.ColumnCount = 2;
fpSpread1.ActiveSheet.SetValue(0, 0, 10);
fpSpread1.ActiveSheet.SetValue(1, 0, 5);
fpSpread1.ActiveSheet.SetValue(2, 0, 10);
fpSpread1.ActiveSheet.SetValue(3, 0, 5);
fpSpread1.ActiveSheet.SetValue(4, 0, 5);
fpSpread1.ActiveSheet.SetValue(0, 1, 200);
fpSpread1.ActiveSheet.SetValue(1, 1, 1);
fpSpread1.ActiveSheet.SetValue(2, 1, 100);
fpSpread1.ActiveSheet.SetValue(3, 1, 2);
fpSpread1.ActiveSheet.SetValue(4, 1, 3);
//第一列の自動ソートを許可します
fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = true;
}
private void fpSpread1_AutoSortingColumn(object sender, FarPoint.Win.Spread.AutoSortingColumnEventArgs e)
{
//デフォルト動作をキャンセルします
e.Cancel = true;
//現在のソートインジケーターを取得します
SortIndicator Indicator = fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator;
FarPoint.Win.Spread.SortInfo[] si = new FarPoint.Win.Spread.SortInfo[2];
//ソートキーを「第一列」「第二列」の順で設定します
if (Indicator == SortIndicator.None || Indicator == SortIndicator.Descending)
{
fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator = SortIndicator.Ascending;
si[0] = new FarPoint.Win.Spread.SortInfo(0, true);
si[1] = new FarPoint.Win.Spread.SortInfo(1, true);
}
else
{
fpSpread1.ActiveSheet.Columns[e.Column].SortIndicator = SortIndicator.Descending;
si[0] = new FarPoint.Win.Spread.SortInfo(0, false);
si[1] = new FarPoint.Win.Spread.SortInfo(1, false);
}
//ソートを実行します
fpSpread1.ActiveSheet.SortRows(0, fpSpread1.ActiveSheet.RowCount, si);
}
旧文書番号
82834