ここでは、内線番号表の部署を別のテーブルで管理することにしよう。このテーブルの名前を「部署名表」とする。そして、「内線番号表」テーブルと「部署名表」テーブルに関連を持たせる。
関連を持たせるというのは、一方のテーブルから他方のテーブルのフィールドを参照するということ。上の「内線番号表」テーブルでは、これまで「テキスト」を格納していた「部署」フィールドが整数を格納する「部署ID」フィールドとなっている。そして、この部署IDが「部署名表」テーブルのIDを参照するわけだ。このようにすることで、テーブルに含まれるデータの管理が容易になる。内線番号表程度ではたいしたことではないが、多くのデータを扱うときには考慮すべきだ。
以下が実際に作成した「内線番号表」テーブルと「部署名表」テーブルだ。「内線番号表」テーブルの「部署ID」フィールドが「Insider.NET編集部」などのテキストではなく、「部署名表」テーブルの該当するレコードのIDと合致していることに注意されたい。
この2つのテーブルを関連付けるには幾つかの方法がある。1つはナビゲーションウィンドウを使うものだ。この場合は、ナビゲーションウィンドウで関連付けるフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを設定]を選択する。
ここでは[内線番号表]テーブルの「部署ID」フィールドを右クリックしてコンテキストメニューから[テーブルの関連付けを設定]を選択している。すると[参照するフィールドの設定]ダイアログが表示されるので、[対象テーブル]ドロップダウンから[部署名表]を、[対象フィールド]には[ID]を選択する。最後に[OK]ボタンをクリックすれば、関連付けが完了する。[この関連付けをマスター詳細の形式として設定する]チェックボックスをオンにすると、関連付けの対象テーブル(マスターテーブル)に関連付けを持つテーブル(詳細テーブル)の情報が保持されるようになる。これを使うと、マスター詳細形式のリストビューの作成が容易になる。
関連付けを行うと、ナビゲーションウィンドウの「部署」フィールドには右向きの三角形が表示される。これを展開すると、「部署名表」テーブルのフィールドが表示され、関連付けが行われたことが分かる。
このようにして関連付けたフィールドは、その後、ページでセルやリストビューにドラッグ&ドロップできる。フィールドに関連付けを設定した場合、ページでは「->」を使ってそのことが示される。
関連付けたフィールドのドラッグ&ドロップ
ここではサンプルとしてリストビューを配置し、その行テンプレートに[部署ID]−[部署]フィールドをドラッグ&ドロップしている。
関連付けを解除するには、そのフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを解除]を選択すればよい。
関連付けを行うもう1つの方法は、右ペインの[データ連結]タブを使うことだ。以下に例を示す。
ここでもリストビューに設定した部署カラムに表示するフィールドの設定を行っている。このとき、[データ連結]タブでは[データソース]に[内線番号表]を、[連結フィールド名]に[部署ID]を選択しているが、データソースである「内線番号表」テーブルの[部署ID]フィールドに格納されるのは整数だ。これをそのまま実行すると、以下のような画面になる。
そこで、このフィールドと「部署名表」テーブルの「ID」との連結を行う。これには[データ連結]タブで[このフィールドに対して関連付けを設定]チェックボックスをオンにする。すると、関連付けを行うテーブルとそのフィールド、表示するフィールドを設定する項目が表示されるので、これを設定すればよい。
この方法で関連付けを行った場合も、ナビゲーションウィンドウでは先ほどと同様に、「部署」フィールドの隣に右向きの三角形が表示され、関連付けが行われたことが分かるようになっている。フィールドに関連付けを設定した場合、ページでは「->」を使ってそのことが示されるのも先ほどと同様だ。
上記いずれかの方法で関連付けを行うと、その実行画面は次のようになる。
リボンの[作成]タブにある[ページからテーブルを生成]ボタンを使うと、このような関係を持った2つのテーブルも作成できるが、これについてはForguncy 3のドキュメント「ページから詳細テーブルを作成する」を参考にしてほしい。
次ページでは、今見た親子関係を持つテーブルをマスター詳細形式で表示する方法を見てみよう。
Copyright© Digital Advantage Corp. All Rights Reserved.