Skip to main content

 

Created for OutSystems 10. Not working on your version? Tell us about it!

 

 

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ウィジェットを使用)を追加します。