ソート
最終更新日: 2022年11月29日
R8 | R9
図1は、顧客モデルの一覧表示画面において「氏名」「氏名かな」「電子メール」の3つの項目をソートキーと指定した例です。
画面表示時は、第一ソートキーで並びます。(この例ではアルファベット降順としています。)
ソートキーと指定した項目は、項目名部分をクリックできます。クリックするとその項目でソートが行われます。同じ項目をクリックすると、ソート順を反転させることができます。
図2は電子メール項目をアルファベット昇順ソートに切り替えた例です。
ソートキーは画面ごと、かつ、利用者ごとに記憶されます。利用を終了し、再びログオンすると、最後に指定したソートキーで並び替えられた一覧画面が表示されます。
検索部に用意された「リセット」ボタンクリック後、再度「検索の実行」を行うと、再検索のタイミングで初期ソートに戻ります。
サンプルで用いた顧客モデルの定義を図3に示します。ここでは「氏名」「氏名かな」「電子メール」の3つの項目にソートキーを設定します。
モデル項目詳細定義を開きます。各項目の「ソート順」という欄に数字を指定します。数字の若い順に第一ソートキー、第二ソートキー... と割り当てられます。(図4,図5,図6)
数値の前に「マイナス」を指定すると、初期ソートルールが逆順ソートとなります。(図4の「電子メール」項目)
上の図4,5,6のように複数のソートキーを指定した場合、一覧表示画面の初期表示時は第一ソートキーのみが働くわけではなく、第二以降のソートキーもソート順として反映されます。(後述する SQL の ORDER BY 句に、第一ソートキーから順に列挙されます。)
上の図4,5,6に示した初期設定の昇順/降順にかかわらず、一覧表示画面の列のクリック操作は一度目のクリックで昇順、二度目は降順となります。
ソートはデータベースの SQL 処理 (ORDER BY 句) によって実現しています。
そのため、データベースによってルールが変わります。
ソートはデータベースの ORDER BY 句によって実現しています。そのため、データベースに保存しない項目はソートキーとして指定することはできません。
ユーザが項目名をクリックしてソートルールを変更した場合、この情報は(利用者ごとに)記憶されます。ユーザがログオフし、再びログオンすると、直前に操作したソートルールが適用された一覧画面が表示されます。
Wagbyは一覧表示の並び順(ソートキー)をユーザ毎に保持しています。運用開始後に項目を削除、または項目名を変更した場合、データベースとは異なる(変更前の)状態でソートしようとし、実行時エラーとなります。ソートキーを初期状態に戻すこと(このあと説明あり)で、エラーを解消してください。
検索部に用意された「リセット」ボタンクリック後、再度「検索の実行」を行うと、再検索のタイミングで初期ソートに戻ります。
日本語文字でのソートは、利用者が期待した並びにならないことがあります。これは文化的な並びではなく、文字コード順となるためです。
主キーは必ずソートキーに含まれます。(*1)
主キーがソート項目として指定されていなければ、最も最後のソート条件になります。(order by 句の末尾に付与されます。)
値が "NULL" のソートは、データベースによって扱いが異なります。
参照先モデルが単一キーの場合は "ID値" でソートされます。参照先モデルが複合キーの場合、およびチェックボックス項目はソートできません。
参照連動項目が自モデル保存となっている必要があります。
例
ソートキーは記憶されます
ソートキーを初期化する
定義方法
複数のソートキーを指定した場合の動作
初期設定についての補足
仕様・制約
データベースに保存しない項目はソートキーに指定できません
ユーザが操作したソート設定は記憶される
運用後にソート対象項目を削除、または名前を変更すると実行時エラーになります
ソートキーを初期状態に戻す
一般的なルール
注意
主キーの扱い
主キーがソート項目として指定されていれば、その設定に従います。
NULL 値のソート
モデル参照項目のソート
モデル参照(参照連動)項目のソート
外部キー関係における子モデル部の表示