フィールド内のデータを視覚化する方法を改善するために、WorkWithPlus 12 では、新しいタイプのコンボボックスが追加されました。これが DVelop Combo です。
このコントロールを使用すれば、さまざまなカテゴリのコンボボックスを内部にツリービューとして作成できるようになります。また、これらのデータ内を検索することも可能です。

このタイプのコントロールは、項目属性および変数で使用できます。[Control Info] プロパティおよび [Control Type] プロパティを変更するだけです。

次に、データがロードされる場所からソースを設定する必要があります。オプションは次のとおりです: [Attributes]、[Data Provider]、[User code]:
[Attributes]:
以下を指定できます:
- [Item Values]
- [Item Descriptions] (オプション。[Regular] 以外の値を選択した場合、[Title] と一致します)。
- [Item Descriptions 2] ([Style] に応じて、[Subtitle] の値になります) **
- [Item Descriptions 3] ([Style] に応じて、[Image] の値になります) **
- [Sort Descriptions] (True または False)
- [Load Data Dynamically] (True または False)
- [Item Category Values] および [Item Category Descriptions] (別の項目属性によって分類されたレコードを取得する目的で使用)
- [Allow Multiple Selection] (True または False)
[Item Category Value] と [Allow Multiple Selection] のプロパティを設定する場合、定義は次のようになります:

実行時、次のようなコンボボックスが表示されます。

[Data Provider]:
考えられる状況は 2 つあります:
-
次のように、カスタム SDT を使用してデータプロバイダーをロードします:

この場合、[Item Values] および [Item Descriptions] を割り当て、さらに、[Data Provider] プロパティにロードするデータプロバイダーを割り当てる必要があります。この場合にサポートされるのは、1 つのレベルのデータ (複数または 1 つの選択肢) のみとなります。
このようなデータプロバイダーを示します:

次のように変数を定義する必要があります:

変数をインスタンスに追加し、次のプロパティ値を変更します。

実行時には次のように表示されます:

-
DropDownOptions に関連付けられた WorkWithPlus の SDT を使用して、データプロバイダーをロードします。

この SDT を使用してデータをロードする場合は、データプロバイダーに追加される子に応じて、複数のレベルを表示できます。
たとえば、次のデータプロバイダーには 2 つのレベルが表示されます:


実行時には次のように表示されます:

このメカニズムを用いれば、N レベルの設定が可能です。
[Data Source From] の 3 つ目のオプションが [Fixed values] です。ここでは、[Values] プロパティでコンボの値を定義することができます。

[User Code]:
[Data Source From] の最後のオプションが [User code] です。つまり、フォーム上に表示されている変数の値の割り当てが必要になります。

次に、サブルーチンにコードを追加してデータをロードする必要があります (最初に):

実行時には次のように表示されます:

WorkWithPlus 13 では、DVelop Combo に表示されているアイテムの新しいレコードを挿入することができます。
これを実行するには、DVelop Combo としての項目属性が必要です。

まず、[Data displayed popup] テンプレートを使用し、ビジネスコンポーネントのトランザクションを基にして新しい Web パネルを作成します (このケースでは AssuranceCompany トランザクションを基にしています)。トランザクション自体を使用することもできますが、その場合は (幅、フィールドなどが) ポップアップ用にデザインされたトランザクションを使用することをお勧めします。
補足: [Data displayed popup] テンプレートは、WorkWithPlus 13 でデザイン システム ウィザードを実行していた場合にのみ使用できます。WorkWithPlus 13 にデザインをインポートしていない場合はこのテンプレートを使用できません。ただし、他のテンプレートを使用して Web コンポーネントを作成できるため、[Data displayed popup] テンプレートの使用は必須ではありません。

Web パネルの [Support DVelop Combo Insertion] プロパティは [True] に設定する必要があります。これにより、新しいレコードを作成するとすぐに、DVelop Combo を含む項目属性/変数に自動的に割り当てられます。
[DVelop Combo] の項目属性に、作成したパネルを追加します。


実行時には次のように表示されます:

レコードを検索して [新規] オプションを押すと、ポップアップ Web パネルに検索したレコードが自動的に挿入されるように設定するには、以下のリンクで説明されている手順に従ってください。How to: preset some field in 'New' option of DVelop Combo
複数の選択肢用のタグ
DVelop Combo に複数の選択肢がある場合、その選択肢をコンマ区切りのデスクリプションとして表示するか、タグとして表示するかを選択することができます。
ナレッジベースの [WorkWithPlus for Web Settings] -> [Template] ノード -> [Multiple Selection Display Type] プロパティで一度だけ設定を行います。また、「DVelop Combo」を使用した変数と複数の選択肢は、すべて同じ方法で表示されます。
項目属性または変数の動的値を使用して [Dvelop Combo] にフィルタを適用
動的な項目属性または変数に関連付けられた [Dvelop Combo] に表示されるレコードを、簡単な方法でフィルタできます。
例: 会社名を挿入し、国と都市を設定します。都市フィールドには、選択した国の都市のみが表示される必要があります。

これを実現するには、次の手順を実行します。
- コントロールの [Load Data Dynamically] プロパティは [True] に設定する必要があります。
- [Conditions dynamic atts or vars] という新しいプロパティが表示されます。コントロールに関連付けられた条件を持つ項目属性/変数を選択する必要があります。WorkWithPlus によって、条件内に記述する必要のある変数名が表示されます。
- [Conditions (Dynamic controls)] プロパティに、コントロールに関連付けられた条件を追加し、WorkWithPlus によって示された変数を記述します。

上記の例の詳細は次のとおりです。
- CityId は「DVelop Combo」(DVelop Combo) を使用したコントロールです。
- 条件内で使用する必要がある動的な項目属性は [CountryId] なので、条件で使用する変数は「&Cond_CountryId」になります。
- [Conditions (Dynamic controls)] プロパティに追加する条件は次のようになります。
CountryId = &Cond_CountryId;
重要: DVelop Combo の詳細とシナリオについては、次のリンクを参照してください: Improvements in 'DVelop Combo' User Control
**WorkWithPlus for Web 14.以降で実装