FileMaker讓你可以更容易的設計iPad上的APP

遠遠追溯到高中時期,當時利用建立邀請者名單與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上的ERD關聯表。

FileMaker 整個系統表單介面的設計,就如同之前提到的Window Form那樣簡單,上方工具列上有文字、圖形、按鈕、下拉式選單、Radio單選框與CheckBox複選框等物件,可以直接拖曳到設計的版面上。大小、 顏色等屬性問題,在旁邊的屬性工具列上也可以找到設定。設定對應的欄位時,只要在拖曳下來的Form欄位框架上按滑鼠兩下,它就會顯示ㄧ串剛表單上已新增 的欄位讓你選。


▲FileMaker版面設計

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的無線藍牙標籤機,那就可以直接列印標籤。

▲EPSON智慧型藍芽手寫標籤機 LW-600P

◎結語

FileMaker 這套資料庫軟體,它是ㄧ套讓你更容易建立資料庫的方式。它與MSSqlㄧ樣有自己的檔案,在MSSql是.db,在FileMaker是.fp(版本 號)。最厲害的莫過於是它可以開平台,在iPhone, iPad, Mac, Windows, Web上建立資料庫並跨平台串連,更特別是它的開發環境是採用圖形介面,所以你可以更簡易的把你系統介面ㄧ並設計好。 在這個開發環境裡,你不需要有SQL的背景,所有新增、刪除、修改、查詢都有圖形介面可以使用。比較困難的地方僅是你必需要有基礎的Excel表單常識, 比方在命名欄位、欄位的資料型別、串連資料的關聯性(ERD Model)及認識FileMaker的執行方法Method()與函數。

早期想學會這套資料庫時,礙於網路上沒有分享教學,只能到重慶南路的天瓏書局去買原文書來參考。現在看來便利多了,網路上都可以搜尋到交流的社團在分享討論,有興趣的朋友也可以發訊息給我ㄧ起研究討論^^。

如果喜歡我們的文章,請即分享到︰