[FileMaker] 利用 Set Error Capture 擷取錯誤訊息
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 的技巧,確保所有程式都是在可控制的範圍內被執行。)

接下來就可以測試程式了,試著再次重新搜尋「奶茶」,但是這一次要點選剛剛建立的「搜尋按鈕」(注意不是預設的按鈕喔)
搜尋結果:「沒有這筆紀錄,請重新輸入搜尋條件」
彈出改良過的小視窗,這次介面指引比較清楚了。
