それを行う方法はたくさんあります。これは、それを機能させるための簡単な方法です。
次のような2つのテーブルがあるとします。
Contacts Events
-------- --------
ContactID EventID
FirstName EventDate
LastName EventDetails
それらの間に新しいリンクテーブルを作成します。このテーブルには、必要な追加のRSVP情報も格納されます。
RSVP
--------
fk_ContactID
fk_EventID
PaymentInfo
FORMテーブルを作成します
FORM
--------
ContactSearch
cContactMatch = Calculation, If(isEmpty(ContactSearch) ; "ALL" ; ContactSearch)
EventSearch
cEventMatch = Calculation, If(isEmpty(EventSearch) ; "ALL" ; EventSearch)
次のフィールドを連絡先テーブルとイベントテーブルに追加します。
Contacts
--------
cMatchField = Calculation, Stored, (FirstName + NEWLINE + LastName + NEWLINE + ALL + NEWLINE + Firstname LastName)
Events
--------
cMatchField = Calculation, Stored, (EventDate + NEWLINE + EventDetails + NEWLINE + ALL)
これは、連絡先のcMatchFieldが次のようになることを意味します。
John
Smith
John Smith
ALL
関係図で、次のようにテーブルを接続します。
FORM
--------
cContactMatch = CONTACTS/cMatchText
cEventMatch = EVENTS/cMatchText
FORMテーブルに基づいてFORMというレイアウトを作成します。
ContactSearchフィールドとEventSearchフィールドをレイアウトに追加します。PaymentInfoフィールドを追加します。
2つのポータルをレイアウトに追加します。1つは連絡先テーブル用、もう1つはイベント用です。
デフォルトでは、これらの各ポータルにすべてのレコードが表示されます。
スクリプトを作成するか、スクリプトトリガーを使用して、これらの検索フィールドの1つが終了/変更されるたびにレイアウトを更新します。これにより、ポータルが更新され、関心のある関連レコードが表示されます。
ポータルの各行にボタンを追加し、そのポータル行IDにグローバル変数を設定するスクリプトを呼び出します。
例えば:
Script: Set Selected Contact ID
Set Variable ($$ContactID ; Contacts::ContactID)
Script Set Selected Event ID
Set Variable ($$EventID ; Events::EventID)
レイアウトと新しいスクリプトに別のボタンを追加します。
Script: Create RSVP
# Check that a contact and event have been selected
If(isEmpty($$ContactID) or isEmpty($$EventID)
Exit Script
End If
# Get the payment info that has been entered
Set Variable ($PaymentInfo ; FORM::PaymentInfo)
# Create the RSVP Link record
Go To Layout(RSVP)
Create New Record
Set Field(fk_ContactID ; $$ContactID)
Set Field(fk_EventID ; $$EventID)
Set Field(PaymentInfo ; $PaymentInfo)
Commit Records
Go to Layout (Original Layout)
# Clear the search fields
Set Field(PaymentInfo; "")
Set Field(ContactSearch; "")
Set Field(EventSearch; "")
Set Variable($$ContactID; "")
Set Variable($$EventID; "")
Commit Records
Refresh Screen
ふぅ。
そして、連絡先、イベントを検索し、フォームを「送信」してさらにRSVPを作成する準備ができているはずです。
FileMakerは楽しいですよね?