FileMaker 是以 Record 記錄爲基礎的資料庫,這個是什麼意思呢?
也就是 FileMaker 預設一次只會「顯示」當前這筆資料,這邊需要花一點時間解釋。
關於這部分,我們可以看工具列左邊框框裡面的數字「1」,還有後面的 Found Set「778 / 2468」,這三個數字很重要,意思就是告訴 FileMaker 使用者,現在正位於哪一筆記錄底下。
- 「2468」 代表所有記錄的總和
- 「778」 代表所找到的記錄(搜尋城市欄位:「台北市」所得到的結果)
- 「1」 代表所找到的 778 筆記錄裡面的第 1 筆記錄
這點如果我們從列表 List View 去看會更清楚,淡藍色標記起來的就是我們當前所在的第一筆記錄,轉換 Form view 跟 List View 並不會改變所在記錄的記錄本身,只是記錄所呈現的形式改變而已。
在 Form View Layout 上面,如果我們不做「其他處理」的話,我們只能看到當前這一筆記錄 Record 的欄位,而不會看到其他的記錄,這點很合理,那如果我們還是想要看到其他筆記錄,我們有兩個作法:
- 跳到 List View 去看(缺點是可能要來回不同的 Layout 觀看)
- 建立關係,利用 Portal 顯示其他 TO (Table Occurrence) 的記錄
我們今天要介紹的就是第二點,建立關係,利用 Portal 來顯示其他 TO 的記錄。操作方法介紹如下。
步驟 1:新增 Global Field 欄位
Manage Database > 點選 Fields 欄位選項
新增 CITY_TAIPEI 欄位(Global Field)
PS. 命名方式: CITY_TAIPEI 欄位若全部大寫英文字代表 Global Field ,方便判斷
步驟 2:複製一個<TO> Table Occurrence
Manage Database > 點選 Relationships 編輯關係
點選「街頭藝人」Table Occurrence,接著點選左下方第三個「++」綠色按鈕,複製「街頭藝人」Table Occurrence,重新命名為「台北市 » 街頭藝人」
PS. 「街頭藝人」與「台北市 » 街頭藝人」這兩個 Table Occurrence 都是來自於同一個 Table「街頭藝人」
步驟 3:建立關係
開始建立關係
將「街頭藝人」的 Global Field 欄位 CITY_TAIPEI 連接「台北市 » 街頭藝人」的 cityName 欄位
街頭藝人::CITY_TAIPEI [ = ] 台北市 » 街頭藝人::cityName
「台北市 » 街頭藝人」僅會顯示城市為「台北市」的街頭藝人
步驟 4:新增 Portal
回到原 Layout
Command + L 進入 Layout Mode
新增 Portal 之前必須先建立關係,步驟 3 已經建立好關係,我們可以開始新增 Portal
Portal 的 Records 記錄來源選擇「台北市 » 街頭藝人」這個 Table Occurrence
Field 選擇 performerName 跟 performTheme(姓名、表演項目)
步驟 5:回到 Browse Mode
左邊部分:顯示當前的記錄
右邊部分:新增的 Portal 顯示所有台北市的記錄
而切換在不同的記錄間,右邊依然可以看到所有台北市的記錄
順利完成。
對「[FileMaker] 街頭藝人系列(七):利用 Self Relationship 自關聯 Table Occurrence,顯示台北市的藝人」的想法