2012-04-26 80 views
0

這是關於我的項目(設計臨牀試驗表格)的後續問題。我的第一個問題在這裏:Filemaker Pro: Create multiple entries of a table with Tab ControlFilemaker Pro:根據標籤將值分配給字段

爲了簡化,我創建了一個測試FMP文件。這是數據庫和佈局的設計。
Database structure
Layout of the example

對於每位患者,我創建在患者表中的記錄 - Patient_ID是標識符。我將要提供一些一般信息(這裏我只用了這個名字)。 在標有「Tableau_Data」的另一個表上,我將存儲一些數據--Data_ID是標識符。 「表患者」和「Tableau_Data」與Patient_ID鏈接

數據將始終由相同的字段組成(在我的示例中:「Turlututu」) - 實際上超過50個參數。收集數據5天(所以我有5個選項卡)。感謝Sam Barnum的幫助,通過使用門戶,我可以在每個Tab中獲得不同的「Tableau_Data」記錄。想要在每個「Tableau_Data」記錄中存儲它來自的標籤(字段「Jour」)。所以我想有一種方法來設置取決於標籤的「Jour」的自動值:腳本可能鏈接到門戶網站或該領域。但如何?

理想情況下,我想隱藏「Jour」字段。

默認情況下,我可以創建一個下拉列表並讓用戶設置此變量的值。我寧願那樣。不符合人體工程學原理,在捕獲數據期間可能導致錯誤。

Sam Barnum暗示說,也許我可以預先生成Tableau_Data鏈接的5條記錄到我的Patient_ID。因此,我會知道記錄1,6,11,16 ...是Jour = 1,記錄2,7,12,...是Jour = 2等等。但我甚至不知道該怎麼做。

回答

1

您的腳本和自動輸入計算器可以自動「知道」用戶所在的選項卡。這是通過使用佈局對象名稱和函數Get(ActiveLayoutObjectName)來完成的。

在FileMaker中,每個佈局或佈局對象組可以有一個「名稱」。該名稱的唯一性由FileMaker強制執行,因此您不可能擁有2個同名的對象。在「位置」選項卡上通過檢查器設置佈局對象名稱。它在頂部。

在你的情況下,你可以給每個標籤一個名稱。這是通過雙擊佈局模式中的選項卡來完成的。當它被選中時,它周圍有一個黑色邊框。然後按上面所述使用Inspector分配一個名稱。

一旦您的每個選項卡都有唯一的名稱。您可以使用Get(ActiveLayoutObjectName)來確定用戶當前處於活動狀態的選項卡。

根據你的情況,你可以用腳本來做到這一點。或者,只需讓數據庫中的字段自動輸入calc設置爲「Get(ActiveLayoutObjectName)」就可能更容易。這樣數據庫將記錄創建記錄時用戶所在的Tab。我相信你期望的結果。

+0

如果你真的想堅持Tab的想法,你可以結合託德的答案和我的「你也可以考慮:」部分,自動計算基於所選Tab的JourCurrent值,但你最終不得不維護再次複製你的所有領域的5份副本。 – pft221 2012-04-28 14:42:31

+0

好吧,它似乎應該工作。但由於某種原因,「Jour」字段被設置爲我之前字段的名稱。例如,我已經命名了五個「turlututu」字段,「T_J1」,「T_J2」,...和「T_J5」。 Jour字段在選項卡1上設置爲「T_J1」,依此類推。我決定添加另一個字段「test」(Tableau_Data表中的變量「test」)。事實上,如果我先選擇「測試」字段,則「Jour」字段將被設置爲「測試」而不是「T_J1」。 – 2012-05-02 12:30:31

+0

我不知道是否可能導致我使用每個選項卡的門戶網站,以便爲每個選項卡創建「Tableau_data」表的不同記錄。 – 2012-05-02 12:32:05

0

如果您只有少量的Jour值(5,正如您似乎指出的那樣),爲每個Jour值設置新的關係可能是最容易的 - 每個標籤值一個。

對於您的Patient_ID表,您將爲每個Jour值添加一個新字段。每個字段將是一個計算字段,其計算值是Jour的特定值。例如,Patient_ID表將具有以下值:

Patient_ID::Patient_ID 
Patient_ID::Nom 
Patient_ID::Jour1 (Calculation value set to 1) 
Patient_ID::Jour2 (Calculation value set to 2) 
    ... 
Patient_ID::Jour5 (Calculation value set to 5) 

然後您將設置5間新的關係,同時連接兩個Patient_ID每個怨婦場,一個,到Tableau_Data領域的新表紀錄(標記,在這個例子中,作爲Tableau_Data_Jour#:)

Jour1 
Patient_ID::Patient_ID = Tableau_Data_Jour1::Patient_ID 
Patient_ID::Jour1 = Tableau_Data_Jour1::Jour 

一路過關斬將:

Jour5 
Patient_ID::Patient_ID = Tableau_Data_Jour5::Patient_ID 
Patient_ID::Jour5 = Tableau_Data_Jour5::Jour 

對於每一個你將要到t新關係關於「允許通過這種關係在該表中創建記錄」的甕。

然後,您將更改每個選項卡上的字段,以便Jour 1選項卡使用Tableau_Data_Jour1表中的字段,並且Jour 5選項卡使用Tableau_Data_Jour5表中的字段。

您也可以考慮:

以上應該可以正常工作,但它的醜陋,你創造了很多的工作。如果標籤不是一個嚴格的要求,我建議做以下代替:

  1. 在患者表上創建一個新的「JourCurrent」數字字段。
  2. 創建一個類似的新記錄上Tableau_Data_Jour臺以上,再次讓創作的關係:

    Patient_ID :: Patient_ID = Tableau_Data_Jour :: Patient_ID

    Patient_ID :: JourCurrent = Tableau_Data_Jour ::怨婦

  3. 請與佈局怨婦

    的所有值
  4. 放置JourCurrent領域的新值列表,並將其設置爲從值列表取值爲彈出菜單。
  5. 讓用戶從彈出菜單中選擇適合今天輸入的Jour,而不是使用選項卡。

這對你的優點是你只需要維護每個相關字段(Tableau_Data_Jour字段)一次,並且你可以添加一個新字段而不是每個標籤一次。

+0

我以爲關於「也許還會考慮」。但我不得不很快放棄它。首先是因爲製表符是一項要求。我仍然可以使用彈出式菜單來選擇「Jour」。但用戶不想輸入。我給出的例子是一個非常簡單的例子。實際上,我有近15個選項卡,目前,每個Patient_ID有650個字段。 – 2012-05-02 12:25:38