DBGridのタイトルをクリックしたらその列でソートしようと考えていて、
今のところClientDataSetコンポーネントを用いて
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ClientDataSet1.IndexFieldNames := Column.FieldName;
end;
まではうまくいっているのですが、例えば2列目でそーとした際に、同じものは次に1列目でソートするにはどうすればよいですか?
4 c 3 a
3 a 2 b
5 b ⇒ 5 b
2 b 4 c
のようにしたいです。
AddIndexで出来るとは書いてあったのですが、Helpを見てもよくわかりません。よろしくお願いします。
設計時の場合
1.ClientDataSet.IndexDefsプロパティにIndexDefを一つ作成します。
2.Nameプロパティを任意に指定。
3.Fieldsプロパティに フィールド名1;フィールド名2。
4.ClientDataSet.IndexNameプロパティに 2 で指定したName値を設定。
これでソートは出来るはずです。
AddIndexは使ったこと内ので分かりませんが,
上記手順をプログラムに置き換えれば可能(のはず)
>Ruさん
ありがとうございました。出来ました。
もうひとついいですか?
3a
5b
2b
4c
のように、2列目は昇順にソート、1列目は降順にソートなどは出来ないですか?
3. Fieldsプロパティに フィールド名2;フィールド名1。
3.5 DescFieldsプロパティに フィールド名1
4. ClientDataSets.IndexNameプロパティを設定
これでできます。
>Ruさん
出来ました!ありがとうございました!
ツイート | ![]() |