計算されたアトリビュートをAggregateに作成する
データベースから取得したデータが不十分で、返された値に基づいて各レコードにさらに情報を追加する必要がある場合があります。OutSystemsではそのような場合にも対応できます。他のアトリビュートの値に基づき、Aggregateから返されたレコードに新しいアトリビュートを追加できます。
- Aggregateで、[New Attribute]をクリックし、そのAggregateに新しいアトリビュートを追加して名前を付けます。
- アトリビュートのメニューを開き、[Edit formula...]を選択します。**
- 値を計算するExpressionを定義します。
例
興味のある場所を調べることができるGoOutWebというWebアプリに、場所をリスト表示する画面があります。
この画面で、エンドユーザーがコンボボックスから使用可能なカテゴリを選択し、リスト表示された場所をフィルタリングする、という要件に対応します。選択されたカテゴリごとの場所の数を、コンボボックスの各エントリにカテゴリ名と一緒に表示します。
このデータを計算してコンボボックスの各エントリに追加するには、以下の手順を実行します。
-
これはWebアプリであるため、画面のPreparationにAggregateを追加します。
-
それに
Place
エンティティを追加します。 -
Aggregateで、以下の手順を実行します。
-
Category.Id
ごとにグループ化します。 -
Place.Id
を使用して、各カテゴリごとの場所の数を数えます。 -
Category.Label
でグループ化して各カテゴリのラベルを取得します。 -
最後にグループ化した列メニューを開き、新しいアトリビュートを追加します。それに「
Combo Box Label
」という名前を付けます。 -
作成された列に次のExpressionを代入します。
If ( Label <> "", Label + " (" + Count + ")" , "Not categorized" + " (" + Count + ")" )
変数
Labelと変数
Count`は以前にグループ化された列です。
-
-
画面に移動してコンボボックスを追加します。その値を、新しいAggregateの返却リストとします。