【小技】命名セレクション型リストボックスの並び替え

前のトピックを表示 次のトピックを表示 Go down

【小技】命名セレクション型リストボックスの並び替え

投稿 by miyako on 2016-09-29, 4:53 pm

配列型・カレントセレクション型のリストボックスは,ヘッダークリックによる並び替えができますが,命名セレクション型は,自分でプログラミングする必要があります。

☆例題

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

投稿数 : 204
登録日 : 2016/07/05

トップに戻る Go down

前のトピックを表示 次のトピックを表示 トップに戻る


 
Permissions in this forum:
返信投稿: 不可