Skip to main content

 

開発に関するよくある質問

 

 

OutSystems

SQLクエリでのList Sort Columnウィジェット

SQLクエリによって取得したTable RecordsをList Sort Columnリッチウィジェットを使用して動的にソートするにはどのようにすればよいですか。

回答

SQLクエリでList Sort Columnウィジェットを使用するには、以下の手順を実行します。

  1. SQLクエリにクエリパラメータを追加し、NameSORTに、Data TypeTextに、Expand InlineプロパティをYesに定義します。

    Expand InlineプロパティをYesに設定すると、実行時にデータベースに送信するSQLコードの一部としてクエリパラメータを使用できるようになります。

  2. SQLスニペットORDER BY @SORTSQLクエリに追加します。

  3. SQLクエリのSORTパラメータをEncodeSql(List_SortColumn_GetOrderBy(LocationTable.Id,DefaultOrder:"{<エンティティ>}.[<アトリビュート>]"))に定義します。ここの場合、DefaultOrder:"{<エンティティ>}.[<アトリビュート>]"は、デフォルトで、SQLクエリが(エンティティ<エンティティ>の)アトリビュート<アトリビュート>の昇順でソートされるように定義しています。

    SORTクエリパラメータ

    ベストプラクティスで説明されているように、EncodeSql()ビルトイン関数を使用して不要なSQLインジェクションを制限します。
    List_SortColumn_GetOrderBy()関数はソートの基準列を返します。

  4. Aggregateを使用する場合と同じように、Table RecordsウィジェットにList Sort Columnリッチウィジェットを実装します。

    • SQLクエリのソートで使用する各列にList Sort Columnをドラッグします。
    • 各List Sort ColumnのColumnプロパティとOnNotify > Destinationプロパティを設定します。
    • Refresh Dataノード(取得するData SourceとしてSQLクエリを使用)とAjax Refreshノード(更新するWidget or Web BlockとしてTable Recordsウィジェットを使用)を追加します。