2009-06-22 98 views
1

我被要求查看FileMaker來創建一個非常簡單的數據庫應用程序。該應用程序將處理聯繫信息,組織託管的事件的一些信息,以及我目前正在掙扎的信息 - 鏈接聯繫人和事件的RSVP信息,以及存儲關於付款的一些數據。在FileMaker中創建「複雜表單」 - 甚至有可能嗎?

我想要使用的是某種形式的用戶可以搜索聯繫人(任何組合的名/姓)和事件(任何組合名/日期),從兩個相應的列表(其中顯示所有其他信息以區分結果),添加一些額外信息並點擊提交。

到目前爲止,我得到的最接近的形式是用戶可以手動輸入ContactId和EventId,這意味着他/她首先必須轉到另一個視圖,搜索記錄並複製/粘貼身份證號碼。

  • 是否真的沒有辦法使用FileMaker更接近我的視野?

  • 更好的選擇是使用C#和MsSQL來構建一個新的自定義應用程序嗎?

  • 如果是這樣,我該如何將此賣給我的承包商?因爲在這種情況下,這是我的第一個商業應用程序,顯然有一個「安全係數」說明了已建立的產品。然後我們甚至沒有提到成本可能會增加,因爲從頭開發一個新的應用程序需要更長的時間。

注意:我以前沒有使用FileMaker的經驗。我試圖閱讀文檔,但是我一直無法找到任何使我更接近我的特定需求的教程。我在MsSQL方面有相當的經驗,所以我一般都知道這個和那些關於數據庫管理的知識 - 而不是在FileMaker中。

回答

4

有很多方法可以做到這一點。這是使其正常工作的一種快速方法。

比方說,你有兩個表是這樣的:

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很有趣,呃?

+0

哇!我曾希望能夠以更簡單的方式做到這一點 - 我考慮使用FileMaker進行此項目的唯一原因是避免自己編寫代碼,而是可以依靠一些已經穩定並且缺陷清理的軟件。如果有這麼多'真正的編程'必須完成,我不妨使用我熟悉的技術。 C#和MSSQL,這裏我們去...... =)但無論如何,非常感謝您的時間和精力!你現在已經獲得獎勵! =) – 2009-07-04 22:46:24

相關問題