【小技】命名セレクション型リストボックスの並び替え
【小技】命名セレクション型リストボックスの並び替え
配列型・カレントセレクション型のリストボックスは,ヘッダークリックによる並び替えができますが,命名セレクション型は,自分でプログラミングする必要があります。
☆例題
https://github.com/4D-JP/event-world-tour-japan-2015
"hierarchical-list"
プロジェクトフォーム「Invoice」の右側が命名セレクション型,左側がカレントセレクション型です。
同じようなことができることを例証するために並べてあります。
☆ポイント
ヘッダー関連
ヘッダークリックの検出は,On Header Clickイベントを処理します。
Selfは,クリックされたヘッダーを指しています。
クリックされたヘッダーの値で,並び順アイコンの向きがわかります。
新しい値を代入することにより,並び順アイコンの向きを反転させることができます。
オブジェクトメソッドの戻り値に「-1」を返すことにより,ヘッダーの自動アクションを阻止します。
並び替え関連
命名セレクションをそのまま並び替えることができないので,
USE NAMED SELECTION, ORDER BY, CUT NAMED SELECTION と続けます。
CUT NAMED SELECTION は,カレントセレクションを空にしますが,
カレントレコードはロードされたまま(セレクション外のカレントレコード)なので,
UNLOAD RECORD を忘れずに・・・
ハイライトセット関連
命名セレクションを差し替えた後,ハイライトセットを再描画させるために,
COPY SET("$Highlight";"$Highlight")
と自己代入文を実行して,リストボックスがリドローされるように誘導します。
このようにすれば,命名セレクション型リストボックスでも,ヘッダークリックを処理することができます。
☆例題
https://github.com/4D-JP/event-world-tour-japan-2015
"hierarchical-list"
プロジェクトフォーム「Invoice」の右側が命名セレクション型,左側がカレントセレクション型です。
同じようなことができることを例証するために並べてあります。
☆ポイント
ヘッダー関連
ヘッダークリックの検出は,On Header Clickイベントを処理します。
Selfは,クリックされたヘッダーを指しています。
クリックされたヘッダーの値で,並び順アイコンの向きがわかります。
新しい値を代入することにより,並び順アイコンの向きを反転させることができます。
オブジェクトメソッドの戻り値に「-1」を返すことにより,ヘッダーの自動アクションを阻止します。
並び替え関連
命名セレクションをそのまま並び替えることができないので,
USE NAMED SELECTION, ORDER BY, CUT NAMED SELECTION と続けます。
CUT NAMED SELECTION は,カレントセレクションを空にしますが,
カレントレコードはロードされたまま(セレクション外のカレントレコード)なので,
UNLOAD RECORD を忘れずに・・・
ハイライトセット関連
命名セレクションを差し替えた後,ハイライトセットを再描画させるために,
COPY SET("$Highlight";"$Highlight")
と自己代入文を実行して,リストボックスがリドローされるように誘導します。
このようにすれば,命名セレクション型リストボックスでも,ヘッダークリックを処理することができます。
miyako- 投稿数 : 468
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|