有很多方法可以做到這一點。這是使其正常工作的一種快速方法。
比方說,你有兩個表是這樣的:
Contacts Events
-------- --------
ContactID EventID
FirstName EventDate
LastName EventDetails
在它們之間創建一個新的鏈接表也存儲要額外RSVP信息。
RSVP
--------
fk_ContactID
fk_EventID
PaymentInfo
創建表單表
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字段。
將兩個PORTALS添加到佈局,一個用於Contacts表,一個用於Events。
默認情況下,您應該看到每個這些門戶中的所有記錄。
編寫一個腳本或使用腳本觸發器,只要其中一個搜索字段是Exited/Modified,就會刷新佈局。這應刷新門戶並向您顯示您感興趣的相關記錄。
向門戶中的每一行添加一個按鈕,並調用將該全局變量設置爲該門戶行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
Phew。
你應該回來,準備搜索聯繫人,事件和「提交」表單來創建更多的RSVP。
FileMaker很有趣,呃?
哇!我曾希望能夠以更簡單的方式做到這一點 - 我考慮使用FileMaker進行此項目的唯一原因是避免自己編寫代碼,而是可以依靠一些已經穩定並且缺陷清理的軟件。如果有這麼多'真正的編程'必須完成,我不妨使用我熟悉的技術。 C#和MSSQL,這裏我們去...... =)但無論如何,非常感謝您的時間和精力!你現在已經獲得獎勵! =) – 2009-07-04 22:46:24