【GeneXus】一覧ソートの可視化【WWP】

【GeneXus】一覧ソートの可視化【WWP】

WorkWithPlusのSelection検索部でソート条件を可視化して切り替えられることを最近知ったのでさわってみました。

コーディング

①赤枠
SelectionのTableFilters>Ordersを選択した状態でプロパティを参照
Visibleが<default>になっているので、Trueに切り替える

②緑枠
Orderをいくつか追加してみる
今回は「NAME」「ID」「START_DATE」の3つを設定

実行結果

検索部に「順序:」というラベルでコンボボックスが表示されました。
画像は「ID」を選択した状態。ID昇順でソートされています。

 

コンボボックス内を確認してみると、Ordersで指定した「NAME」「ID」「START_DATE」以外も選択できるようです。

コンボボックスに表示される条件

コンボボックス内には、各Grid項目のSortable By TitleがTrue(default)の項目が選択肢として表示されているようです。
ソート順序として選択したい項目以外はSortable By TitleをFalseに設定します。
TableFilters>Ordersに指定する項目は
・規定値の昇順から降順に変更したい
・複数項目を使用したソートを指定したい
など、特別なソート条件を設定したい場合に追加するのがよさそうです。

修正と再実行結果

【修正】
①赤枠
ID昇順、開始昇順/終了降順 の2つを指定

②緑枠
全項目Sortable By TitleをFalseに設定

【実行結果】
修正時赤枠で指定した「ID」「開始昇順/終了降順」が選択できるコンボボックスが生成されました。
切り替えると、Grid内のソートが指定の通りに変更されます。
コンボボックス内の表示は、修正時赤枠で指定したOrderのNameプロパティで変更が可能。

おまけ:ソート項目のラベルを変更する

「順序:」というラベルは標準で登録されている予約語のようです。
Label Captionを直接編集したり配置されている変数&OrderedByのディスクリプションを変更しても保存時に元に戻ってしまうため、
カスタマイズ>ローカライズ>Japaneseで「WWP_OrderedBy」のローカライズされたテキストを表示したい文言に変更するのがよさそうです。
ただし全体に影響してしまうため、個別対応が必要な場合は他の方法を考えなければなりません。