コンボボックスをカスタマイズしたい

コンボボックスのリストを特定の順番で表示させたり、デフォルト値を設定する方法はありますか?

Answer

コンボボックスのリストは、 Source Record Listの順番が反映されています。
また、コンボボックスのデフォルト値は、指定されたVariableの最初の値が反映されます。
指定された Variableがnullの場合、コンボボックスはリストにある最初のレコードを選択します。

今回のサンプルは、Preparation「GetUsers」のAggregateを使い、「Name」でレコードの取得とソートを行います。のちほど、デフォルト値としてId 99のユーザー「Anne Abbott」を使用します。

55-1.png

 

【コンボボックスリスト表示の順番を設定するには】

通常、コンボボックスは下記を実行します。

  • コンボボックスは、Source Record Listにあるレコードを表示します。サンプルでは、「GetUsers」で取得したレコードがソートされ、表示されています。
  • コンボボックスの各レコードは、レコードのSource Attributeを表示します。サンプルでは、各レコードの「User.Name」が表示されます。
  • ユーザがコンボボックスの行を選択すると、コンボボックスはSource Identifier Attributeを指定値として指定します。サンプルでは、Aggregateの左列にある「User.Id」がローカル変数「UserId」に割り当てられています。

55-6.png

55-2.png


上記の手順を行うことで、下図のようにソートされた名前がコンボボックスのリストに表示されます。

55-3.png

 

【コンボボックスリスト表示のデフォルト値を設定するには】

サンプルでは、Preparationはローカル変数「UserId」を指定されたデフォルト値として使用しています。

  1. デフォルト値にしたいユーザのIdを見つけます。サンプルでは、Id 99のユーザー、「Anne Abbot」をデフォルト値として設定します。
  2. 表示したいVariableを指定します。Source Record ListがAggregateのため、IntegerToIdentifierを使い、IntegerをEntity Identifierに変換します。
    サンプルでは、「IntegerToIdentifier(99)」となります。(OutSystems 9以下では、「IntegerToEntityRefInteger(99)」となります。

55-4.png

上記の手順を行うことで、デフォルト値が設定され、下記のようにAnne Abbottがデフォルトで表示されるようになりました。

55-5.png