一般我們在薪資資料時,為了避免輸入的欄位的資料混亂不統一,我們通常會搭配「值清單」與下拉菜單來讓使用者方便填入資料。例如說我們會先建立一個學生姓名的列表,在新增考試成績時,姓名欄位我們就會用值清單搭配下拉列表來讓使用者方便輸入在學生列表中出過了的名字。但假設學生有500多位時,那下拉列表可就要捲動到天荒地老了,這就不符合實際操作了,那有沒有更方便的方式呢?

   

不知道大家有沒有看過一些餐廳的點菜系統?一家餐廳如果說有七、八十道菜時,每輸入一道菜就要重新從下拉列表中去捲動,那也太不符合時效了。餐廳的系統通常是要先點選菜品分類,然後就會在畫面上出現為數眾多的菜品的按鈕,這些按鈕都還是整整齊齊排列在畫面上的,打單的人就只要點選按鈕就可以把要點的菜加入到菜單中了,這樣點菜起來就很快了,最後再到已點的菜中去編輯數量完成點菜程序。在File Maker中有辦法實踐這樣互動方式嗎?

   

首先我們來說一下資料庫需要的架構。

我們先需要一個菜品與其分類的表,取名叫做「菜品」。內包括兩個關鍵的欄位「菜品」、「分類」。為了最後要算出客人的訂單金額,所以也許你還需要「單價」這樣的欄位。然後將每道菜與其分類、單價事先輸入資料。

再來我們需要一個申請點菜的表,取名叫做「訂單」。內容包括「訂單編號」、「分類」兩個主要的欄位,其他可以根據需求添加「點菜時間」、「桌次」、「總消費金額」等等需要的欄位。注意「訂單編號」要設置為自動產生的序號型態,並且具唯一性。

第三我們需要一個已點的菜品的明細的表,取名叫做「已點的菜品」。內容包括「訂單編號」這個關鍵的欄位。其餘還可以增加「數量」、「備註」等等需要的欄位。

接下來我們要將三個表進行連結,首先將「菜品」表的「分類」欄位連結到「訂單」表的「分類」欄位。屆時,我們將藉由改變「訂單」表中的「分類」欄位資訊,讓只需要出現的菜品出現。

再來我們將「訂單」表的「訂單編號」欄位連結到「已點的菜品」表的「訂單編號」欄位。如此一來,被點的菜品才會找到他所屬的訂單,找到他的家。

   

設置好資料庫的架構後,那麼開始我們的介面設計吧!我們先將上述的操作拆解為兩個步驟,第一是點選分類,來讓相應分類的菜品出現。第二是點選菜品按鈕讓菜品加入到菜單中。

首先是點選分類。要實踐菜品能夠整整齊齊的排列在畫面上,要怎麼做呢? 每個版面都有會有一個所屬的表,當你想要在畫面中呈現其他表的資料時,方法只有一個,就是使用「入口」。記住這樣的概念,就可以理解很多藉由「入口」設計出來的功能了,原來都是「入口」,只是我們原來還可以將「入口」設計的很不項入口而已。

好的,我們先建立一個新版面吧,並且這個版面屬於「訂單」表。

在版面中,我們要呈現出4排,每排6個,共24個菜品按鈕,因此我們需要4個「入口」工具,由左至右依序排列出4條入口工具。點開每個入口工具的「入口設置」,巧妙的是原來入口工具是可以設置我打算從第幾筆資料開始呈現,哇,這樣我們就可以實踐出來了。將最左邊的「入口設置」彈出視窗中下方的「格式」的「起始列」設置為1,「列數」設置為6,這表示我們將限制這個入口工具會呈現第1筆到第6筆的記錄。第二個入口工具,同樣打開「入口設置」彈出視窗中下方的「格式」的「起始列」設置為7,「列數」設置為12,這表示我們將限制這個入口工具會呈現第7筆開始到第12筆的記錄。第三、第四條入口工具依此類推設置。別忘記要設置我們的入口工具是要呈現哪個表的資料喔,每個入口工具的「入口設置」裡面設置為「菜品」喔。將要顯示的欄位只完成後,就完成菜品按鈕的矩陣囉。

有了這樣的矩陣空間,我們在上方做幾個分類按鈕吧。假設我們菜品的分類共有5類,分別為前菜、中餐、西餐、湯品、甜點,那麼我們就來設置5顆按鈕分別對應。將按鈕的動作分別設置為「設置變數」,分別將「訂單」表的「分類」欄位設置為前菜、中餐、西餐、湯品、甜點。

因為「訂單」表與「菜品」表的關聯是「分類」欄位,因此當我們點下某個菜品分類按鈕之後,下方的入口工具裡就只會呈現出該分類的菜品記錄而已,這樣我們就實踐出了第一部分的功能了。

   

接著我們來看看如何實踐點選菜品後,會將菜品輸入到「已點的菜品」表中。

為了要秀出被點了的菜品有哪些,因此我們還需要創建另外一個入口工具來呈現。這個入口工具我們放到右邊,「入口設置」裡面設置為「已點的菜品」表。

將菜品填入到已點菜品中,會同時需要附帶好幾個欄位的紀錄要一起填寫,有好幾個步驟,因此這時候我們就需要透過編寫一段腳本來幫忙了,腳本也就是File Maker的指令碼。透過腳本功能,我們可以在同一時間內執行好幾個步驟,會是很好用的工具。

新建一個指令碼,取名叫做「填入菜品」。指令碼內容如下:

設定變數[$a;值:菜品::菜名]
設定變數[$b;值:訂單::訂單編號]
移至版面
新增記錄/要求
設定欄位[已點的菜品::菜名;a]
設定欄位[已點的菜品::訂單編號;b]
設定欄位[已點的菜品::數量;1]
移至版面[原始版面]

這表示當我們按下菜品按鈕時,系統會新增一筆已點的菜品的記錄,同時會將菜品名稱、訂單編號填入進去,同時還將數量設置為1。

回頭將左邊呈現菜品列表的每個入口工具都設置將其欄位設置一個按鈕動作,將「按鈕設定」設置為「執行指令碼」,執行「填入菜品」這個指令碼。

如此一來就大功告成囉。

   

對了,你還可以在右邊已點菜單的入口工具中,設置兩個按鈕,一個設置為加數量按鈕,一個設置為減數量按鈕。「按鈕設置」執行「設定欄位」的動作,設定已點的菜品的「數量」欄位,「計算的結果」中分別設置為「數量」+1與-1。這樣整個就更有全都用點選操作的架勢囉。

  

arrow
arrow
    全站熱搜

    Shoung 發表在 痞客邦 留言(0) 人氣()