ユーザーの選択に基づき DB データをロードする

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  チュートリアル > シンプルなデータベース >

ユーザーの選択に基づき DB データをロードする

車種の DB レコードはロードされ、エンドユーザーにより選択された自動車製造業者に従い(コンボボックス内で)テーブル内に表示されます。 セットアップの方法に関しては、前のセクションを参照してください。このセクションでは、記録を表示するためにテーブルの作成、 $DB1 ツリーにロードするレコードの選択方法、おいよび表示方法についての説明が行われます。

 

レコードの表示のためのテーブル

DB 内では、各レコード (または 行) は異なる車種に対応しています。各テーブル行が DB 行に対応するデザインへ繰り返し行を使用したテーブルを追加することがこれらのレコードを表示するために最適なアプローチです。 テーブルには3つの列(自動車の製造業者、モデル、自動車の馬力)が存在し、また、ヘッダー行も存在します (下のスクリーンショット参照)。ユーザーがコンボボックス内の選択を変更すると、新しい自動車製造業者の車種がロードされ、表示されます。

MTDDBSimulation01

上記のプロパティを持つテーブルを挿入するには、下のスクリーンショット内で表示されるとおりの仕様を持つ、テーブルコントロールを追加します。

Click to expand/collapse

テーブル内で以下を行います:

 

DB 行へのテーブルの主要繰り返し行。要素 $DB1/DB/RowSet/Row をテーブルの繰り返し行 アイコンへドラッグして行います。$DB1 ツリー内の 各 (レコード) 行に対して、テーブル内に対応する行が存在するように指定します。
ラベル コントロールを、3つそれぞれのヘッダーセルにドラッグアンドドロップして、3つの列ヘッダーに適切なテキストを与えます(下のスクリーンショット参照)。
3つの列のコンテンツに関しては、それぞれ、ページソースペイン から 要素の次の属性ノードをドロップし、以下のラベルコントロールを作成します: ManufacturerModelHorsepower (下のスクリーンショット参照)。

 

完了すると、デザイン内のテーブルは以下のようになります:

MTDDBTableDesign01

 

ロードして表示するために DB レコードを選択する

作成されたテーブルは、 DB からロードされた全ての記録を表示します。$DB1 ツリーが現在定義されているように、 DB 内の全ての記録がロードされます。全ての自動車の製造業者の車種が表示されます。しかしながら、このチュートリアルの目的は、コンボボックス内でユーザーが選択する自動車製造者の車種のみロードし、表示することです。

 

選択された自動車製造業者の車種のみをロードするには、 $DB1 ツリー上で SELECT ステートメントを作成します。 以下を行います:

 

1.$DB1 ツリーレジェンドの右の DB アイコンをクリックします (下のスクリーンショット内のカーソルを参照してください)。

MTDDBPageSourcesDBIcon

2.表示されるデータベースオブジェクトの挿入ダイアログ内で、SELECT ステートメントを追加/編集するをクリックします。

MTDDBSelectCarsTable

3.SQL SELECT ステートメント ダイアログに、以下の SELECT ステートメントを入力します: SELECT [Manufacturer], [Model], [Horsepower] FROM Cars WHERE Manufacturer = :Manufacturer。このステートメントは、Manufacturer パラメーターにより与えられた値に Manufacturer フィールドが一致する箇所のこれらのレコードの ManufacturerModel、 および Horsepower フィールドのみを、選択し、ロードします。 SELECT ステートメントにはパラメーター  (:Manufacturer) が含まれており、 パラメーターの定義のための行がダイアログの下のペインに自動的に追加されます (スクリーンショットを参照).

mtddbselectstatement_zoom70

4.:Manufacturer パラメーター値の定義として、次の XPath 式を入力します: $PERSISTENT/Root/@Manufacturer。これにより、 SQL SELECT ステートメントがユーザーにより選択される $PERSISTENT/Root/@Manufacturer ノード内の現在の値に Manufacturer フィールドが一致する DB レコードを選択するように設定します。

 

$DB1 ページソース上で定義されている SELECT ステートメントが DB からデータを選択し、 $DB1 ツリーにロードすることは重要であることに注意してください。作動のからくりは以下のとおりです:

 

コンボボックス内の値をユーザーが変更すると、編集の完了時 イベントの再ロードアクション は、 $DB1 ツリーを再ロードします (コンボボックスの定義を参照してください)。
$DB1 ツリーは、 SELECT ステートメントを前提にしてロードされます。
この SELECT ステートメントは、新規のユーザーの選択を保管する $PERSISTENT/Root/@Manufacturer 属性の値としてを持つパラメーターを使用しています。 パラメーターにより、ユーザーが選択する自動車製造業者と同じ値を持つ Manufacturer フィールド値を持つこれらの DB 行のみが選択されるようになります。
$DB1 ツリーにロードされるすべての DB 行は、テーブルに表示されます。しかし、ユーザーによる選択に対応する行のみ$DB1 ツリーにロードされ、テーブルはユーザーによる選択に対応する車種のみを表示します (下のスクリーンショット参照)。

MTDDBSimulation02

 


(C) 2019 Altova GmbH