FileMaker 除了內建自有的 Function 函數(以下都用 Function 稱呼)之外,還可以導入外部 Function(比如別人設計好的 Function),或是甚至你可以自己把常用的步驟製作成 Function,這些預設以外的 Function,就是所謂的 Custom Function 自訂函數。
Custom Function 何處尋?
假設我們今天想要達成一個功能:把「阿拉伯數字」轉換成「中文大寫數字」,我們就可以使用 Custom Function 來達到這樣的目標。一開始我們還不熟悉怎麼去寫這樣的一個 Function。
有句話說得很好:「不需要重複打造輪子!」尤其身為一個資料庫或程式開發者,應該要懂的借力使力。
那我們應該去哪裡尋找這個「輪子」- Custom Function 呢?
一般會去幾個地方尋找 Custom Function 的資源:
- briandunning.com
- fmfunctions.com
- Matt Petrowsky 的 Github
第一、第二個網站是由眾人貢獻的 Custom Function,加起來應該有上千個,第三個 Github 是由 FileMaker 資深開發者 Matt 所獨自貢獻的 Custom Function 資源。以上全部都是免費的資源,感謝這些開發者無償的付出!
我們要找的數字轉換 Custom Function 位於 briandunning.com,Function 名稱叫做 NumToCText,如同 Function 功能敘述:把羅馬數字轉換成中文。
將 Custom Function 導入 FileMaker
網頁最下方就是 Function 的所有程式碼,點選 “Select All" 將框框內的文字全部複製起來。
打開 FileMaker 點選 File > Manage > Custom Functions
點選 New
將複製的一大串文字貼到最下方 New Function( ) = 空白處
將名稱 Name 跟參數 Parameter 補上:NumToCText ( number )
注意參數 Parameter 需要按綠色的「+」號才算是輸入完成喔!
OK, OK
Custom Function 完成導入,可以開始使用。
應用 Custom Function
新建一個 NumToCText 檔案與 Table 表單
新增兩個 Field 欄位,number 欄位用來輸入欲轉換的羅馬數字,欄位則轉換成想對應的中文大寫數字。
設定 cText 欄位,點選 Auto-Enter 部分的 Calculated value 設定計算值
輸入 Custom Function
NumToCText ( number )
OK,記得「取消勾選」 “Do not replace existing value of field (if any)"
註:取消這個選項,讓欄位遇到更動就自動重新計算
OK 設定完成!
輸入數字做嘗試,除了羅馬數字會轉換成中文大寫數字,小數點也自動換成中文字。