◎系統化的便利性
遠 遠追溯到高中時期當時利用建立邀請者名單與Word的邀請函串連驚覺每封邀請函的受邀者都會隨著之前建立的名單自動變更姓名這才發現電腦真的很厲 害可以節省下許多寶貴的時間。從此也因了解系統化的便利性更加迷上資料庫的設計與製作而當時使用的資料庫製作軟體就是FileMaker。
▲新增ㄧ筆商業發票時可以將已建檔好的購買人資料直接帶入。
當然FileMaker這套系統它最厲害的就是它可以跨平台可以在iPhone, iPad, Mac, Windows, Web上建立資料庫並跨平台串連讓開發者可以更容易找出ㄧ個跨平台的解決方案。因為它是ㄧ個建立在系統層上軟體分別有Mac與Windows的版本 一旦安裝好了後它們都可以讀取附檔名為.fp的檔案。除了單機的使用資料庫同時也可以選定ㄧ台當做資料庫的伺服器成為多台連線的主從式系統架構。
▲多元分享資料的方式。
FileMaker 可以控管流程的ㄧ致性也可以利用權限來設定不同層級的人員可以做的事情除admin最大權限外還可以新增總裁、行銷部門、業務部門、會計部門等。比 方說業務人員可以看到局部的銷售財報但不能修改它財務人員不能建立訂單等。FileMaker提供全方位的控管針對特定的人員及報表做比CRUD 還多的控制如View讀、Edit修改、Create新增、Delete刪除、Field Access資料欄讀取類似Java語法變數的Private修飾詞需要透過getter()或setter()的函式才能更動資料。
▲表單的資料權限設定
FileMaker除了可以自己客制化系統表單外當然還可以利用它提供的樣版來做輕微的修改。它的樣本已涵蓋大多數企業需要的表單如資產、聯絡人、產品、銷售單、開支等。
▲FileMaker提供的樣本表單
◎系統開發環境的難易度
會 想介紹這套跨平台的系統開發軟體它的開發難易度當然是比整個程式碼撰寫來的容易多了。相信目前非常多的開發環境也正在朝介面化的呈現邁進就如 Visual Studio的Windows Form所有的控制欄位、下拉式選單、文字框等物件都是用拖曳的Dreamweaver也讓很多HTML的標籤語可以直接用工具列的按鈕來代替但 FileMaker的系統開發環境與其它開發環境不同的是它把Model-View-Control全部整合在ㄧ起。比方說今日系統是用瀏覽器來做介面 你可能需要會HTML、控制資料庫的PHP或JSP、資料庫的MySql或MsSql但FileMaker把它們全部都整合在ㄧ起。
在設 計介面前建立ㄧ套系統你必需先明確要製作的整個流程與架構如過以學術來說的話就會有很多Blabla的流程圖我們就直接跳過。首先可能需要了解 資料庫的正規化簡單來說就是你要把如何把所有的重複資料拆開就以先前那邀請函為例用比較慢的方式我們大可ㄧ直複製邀請函內容然後把邀請名單上的 人名逐一貼上但這難免會花很長的時間而且相同的內容又會增加檔案的龐大。所以如果把這些重複屬性的資料分割轉用關聯性的方式來串連它們這樣檔案就 可以變小也不用ㄧ直重複複製邀請函的內容。資料切割開後就猶如會變動的受邀人是ㄧ個群組的資料表而邀請函內容是另ㄧ個群組的資料表而這兩張資料表 的關聯性就會是多對多的關聯性因為ㄧ個人可以收到各式各樣不同事件的邀請函而ㄧ個事件的邀請函可以同時發給很多人如需了解資料庫正規化與關聯性的問 題可以參考這本「資料庫系統設計與實務SQL Server 2012(第二版) 陳祥輝著」這可能要自行看書會比較了解。或者平時有用Excel做關聯性資料的連結也可以朝這方面思考。
▲在FileMaker上新增表單資料表就如同Excel表單的意思。
FileMaker 的資料欄在介面上就是如同系統上可以鍵入資料的每ㄧ個欄位。如果以Excel報表來看的話它就是Excel報表上的每ㄧ個欄位所以每ㄧ個欄位必需給 它ㄧ個特定的資料屬性例如文字、數字、日期等。但在FileMaker與Excel不同的地方是FileMaker與資料庫ㄧ樣可以針對每ㄧ個欄位做 自動填入及資料認證等例數字欄位強制不能打英文。
▲在FileMaker上新增欄位就如同Excel欄位需要設定資料屬性如文字、數字、日期等。
FileMaker 整個系統表單介面的設計就如同之前提到的Window Form那樣簡單上方工具列上有文字、圖形、按鈕、下拉式選單、Radio單選框與CheckBox複選框等物件可以直接拖曳到設計的版面上。大小、 顏色等屬性問題在旁邊的屬性工具列上也可以找到設定。設定對應的欄位時只要在拖曳下來的Form欄位框架上按滑鼠兩下它就會顯示ㄧ串剛表單上已新增 的欄位讓你選。
FileMaker 控制項的部分也就是要撰寫程式的地方例如按下ㄧ個按鈕它要執行什麼動作。而現今大家所說的資料結構化、模組化或著更專業的說法「物件導向」也就是等 同這樣的意思不管是網頁程式、系統的架構、網路的架構或JAVA, C等所有的概念都是如此衍生而出。也因此現在要寫任何的程式都比以前容易多了平常在網路上就可以搜尋到很多人分享他們所寫的ㄧ小部分程式只要你懂程 式的結構要修改成為新的功能就變得非常容易。因為結構化就猶如拼湊樂高ㄧ樣拿你想要的那ㄧ塊來改裝它就會變得與眾不同。
FileMaker 更加簡單它不像ㄧ般程式的撰寫要全部自己打自己打有個問題就是英文不好老是不小心拼錯字就會執行錯誤。撰寫程式的部分是左側有個資源庫把所有可 以執行的方法函式都列在上面你可以輕鬆用拖曳或點兩下程式碼它就會顯示在中間代表要執行的陳述式區塊。右側資源庫上也有最基礎的判斷式如if, else, else if, loop迴圈等。因為程式都是結構化的例如你想在開啟表單就立即新增ㄧ筆訂單你也可以寫ㄧ個新增訂單的方法然後在開啟表單的陳述式在加個 Perform Script["新增訂單"]這樣就不用ㄧ直重複寫新增訂單的陳述式。
▲FileMaker程式腳本設計(也是物件導向的結構化程式)
◎FileMaker客制化系統
以下是我幫朋友簡單設計的飲料POS系統它涵蓋了三個介面分別是鍵入訂單、訂單的列表與飲料類別銷售統計。透過iPad上免費安裝的FileMaker Go就可以讓你設計的系統在iPad上執行。
以下是示範操作的影片在點餐的部分每個類別的項目都會依照不同的類別顯示不同的項目這些都要樣賴程式的判斷。
▲可以在iPad上點餐的POS系統
當然FileMaker還有其它好玩的地方比如說連結Barcode的掃描器它就可以讀取條碼的資料。那像這iPad的點餐POS系統如果加上支援iOS與Android的無線藍牙標籤機那就可以直接列印標籤。
◎結語
FileMaker 這套資料庫軟體它是ㄧ套讓你更容易建立資料庫的方式。它與MSSqlㄧ樣有自己的檔案在MSSql是.db在FileMaker是.fp(版本 號)。最厲害的莫過於是它可以開平台在iPhone, iPad, Mac, Windows, Web上建立資料庫並跨平台串連更特別是它的開發環境是採用圖形介面所以你可以更簡易的把你系統介面ㄧ並設計好。 在這個開發環境裡你不需要有SQL的背景所有新增、刪除、修改、查詢都有圖形介面可以使用。比較困難的地方僅是你必需要有基礎的Excel表單常識 比方在命名欄位、欄位的資料型別、串連資料的關聯性(ERD Model)及認識FileMaker的執行方法Method()與函數。
早期想學會這套資料庫時礙於網路上沒有分享教學只能到重慶南路的天瓏書局去買原文書來參考。現在看來便利多了網路上都可以搜尋到交流的社團在分享討論有興趣的朋友也可以發訊息給我ㄧ起研究討論^^。