Set Error Capture 是一個重要的功能,尤其當我們自己寫到 Find 查找 Script 的時候,通常會搭配 Set Error Capture,這樣可以把防止萬一 FileMaker 沒找到記錄,而彈出一個預設視窗。
這個部分用文字比較難描述,簡單用一個例子來說明。
這個飲料店產品檔案中有 13 筆飲料的記錄。
今天想要搜尋 or 只列出「紅茶」的記錄,可以使用 Find 功能,點選工具列中間的「放大鏡」圖示。
進入 Find Mode,欲搜尋的欄位(產品欄位)輸入「紅茶」,按 Enter(或是點選 Perform Find 圖示都可以完成搜尋)
得到兩筆搜尋到的紅茶記錄:「阿薩姆紅茶」、「冰淇淋紅茶」
接下來假設要搜尋「奶茶」
重複同樣的步驟,進入 Find 搜尋模式後輸入「奶茶」兩個字,Enetr
因為資料庫裡面沒有任何「奶茶」的紀錄,在找不到任何記錄的情況下,FileMaker 彈出了一個提示視窗,作用在提示使用者沒有找到記錄,使用者可以選擇「Cancel 取消」或是「Modify Find 修改查詢條件」
這個彈出的小視窗,對於熟悉 FileMaker 的使用者或是開發者,沒有任何問題;但是對於不熟悉 FileMaker 的人來說,沒有找到資料的情況下,這個突然出現的小視窗可能會讓使用者不知道該怎麼辦才好。
如何修改預設的彈出視窗,優化使用者體驗
預設的小視窗會彈出是因為 FileMaker 找到 0 筆資料,對於 FileMaker 而言這是一個錯誤訊息,所以彈出小視窗提示錯誤訊息,要把小視窗拿掉必須搭配 Script 的使用,加入 Set Error Capture 的這行程式碼,事先擷取錯誤訊息,就不會出現這個小視窗了。
自己製作一顆「搜尋」按鈕 +「搜尋」程式
步驟一:加入按鈕
步驟二:加入搜尋程式 (Script) “Find"
Set Error Capture [ On ] Enter Find Mode [ Pause: On ] If [ Get (LastError) = 0 ] Show Custom Dialog [......] Set Field [ Product::name ; "" ] Perform script [ "Find" ] End If
Script 的寫法有一個部分需要特別注意,倒數第二行 Perform Script [ “Find" ] ,確保使用者若是按下「好」重新搜尋輸入條件,會再次進入我們寫好的 Script,而非原本的預設模式。(若是進入原本的搜尋模式,萬一又沒找到記錄,就會出現預設的小視窗,而功虧一簣,所以利用重新執行「同一條」Script 的技巧,確保所有程式都是在可控制的範圍內被執行。)
接下來就可以測試程式了,試著再次重新搜尋「奶茶」,但是這一次要點選剛剛建立的「搜尋按鈕」(注意不是預設的按鈕喔)
搜尋結果:「沒有這筆紀錄,請重新輸入搜尋條件」
彈出改良過的小視窗,這次介面指引比較清楚了。