Aggregateの結果をソートする
多くの場合、レコードは、読みやすくしたり、情報をすばやく見つけたりするため、一定の順序に従って画面上に表示されます。
OutSystemsでは、Aggregateによって、返されたレコードをソートすることが可能です。ソートは、固定または動的のいずれかで、実行中に変更できます。
固定ソートでAggregateの結果をソートするには、以下の手順を実行します。
- Aggregateで、
をクリックし、ソート対象のアトリビュートのメニューを開きます。
- 昇順の場合は[A-Z]、降順の場合は[Z-A]を選択します。
動的ソートでAggregateの結果をソートするには、以下の手順を実行します。
- Aggregateで、[Sorting]パネルに移動し、[Add Dynamic Sort]をクリックします。
- 入力はText型のExpressionです。値は、Expression自体に実装されている条件またはその他のロジックの結果であることもあります。列を参照するには、[Scope]ツリーから、すでに定義したText型の変数を選択します。
Expressionを変数の値として定義する場合、以下を指定できます。
- 計算またはグループ化されたアトリビュートの場合、昇順は
AttributeName
、降順はAttributeName DESC
というパターンを使用 - エンティティアトリビュートの場合、昇順または降順について、それぞれ
Entity.Attribute
またはEntity.Attribute DESC
というパターンを使用
例
レビューの検索や場所の評価ができるGoOutというモバイルアプリケーションには、場所の詳細とすべてのレビューをリスト表示する画面があります。ユーザーが、日付の新しい順や評価の高い順に場所のレビューをソートできるようにします。
-
[PlaceDetail]画面を開きます。
-
「
SortAttribute
」という名前のText
型のローカル変数を追加します。 -
GetPlaceReviews Aggregateを開きます。
-
[Sorting]パネルで、[Add Dynamic Sort]をクリックし、ソートのExpressionをSortAttribute変数として定義します。
-
Button Groupウィジェットをツールボックスからレビューリストの先頭にドラッグし、SortAttribute変数をButton Groupにバインドします。
-
Button Group Itemの1つを削除し、残りのButton Group Itemの名前を「
Sort by Latest
」および「Sort by Rate
」に変更します。 -
[Sort by Latest]Button Group Itemを選択し、Valueプロパティを
Review.Date DESC
というExpressionに設定します。これにより、Aggregateの結果が、Dateアトリビュートの降順にソートされます。 -
[Sort by Rate]Button Group Itemを選択し、Valueプロパティを
Review.Rate DESC
というExpressionに設定します。これにより、Aggregateの結果が、Rateアトリビュートの降順にソートされます。 -
Button Groupウィジェットを選択し、「
SortCriteriaOnChange
」という名前の新しいアクションにOn Changeイベントハンドラを設定します。 -
SortCriteriaOnChangeアクションを開き、GetPlaceReviews AggregateをリフレッシュするRefresh Dataを追加します。これにより、SortAttribute変数で定義されるソート基準を使用してAggregateがデータをリフレッシュすることができるようになります。
-
パブリッシュしてテストします。