2017 年的文章
-
拆解 • 表格設計 Less is more
上面兩張圖 Before(調整前)跟 After(調整露)差距很大,這邊文章是要回應之前的一篇文章: 表格設計 Less is more 裡面的一個 Gif 檔小影片 這個很棒的 Gif 檔小影片非常的清楚有結構! 教讀者如何移除不必要的表格結構,把複雜、不易觀看的表格調整成好看的圖表。 但是由於小影片的速度太快,於是我把 Gif 檔拆成一張一張的圖片去看,學習專家怎樣製作「簡單易懂」的圖表技巧。(利用這個 Gif 轉 Jpg 服務網站) 我想這些技巧如果學會了,除了幫助 FileMaker 的畫面安排之外,對於一般的表格設計排版,也會有很大的幫助。 大道至簡,讓我們開始移除吧 第 1 步 – 移除表格彩色部分,留下黑白灰 第 2 步 – 移除表格直條、橫條格線 第 3 步 – 移除表格顏色填滿(包括 Header 跟 Body 部分) 第 4 步 – 移除表格外框 第 5 步 – 移除標題加粗 第 […]
-
[FileMaker] 利用 Ruler 的 Tabs 符號填滿功能,讓排版更整齊、更易觀看
之前的文章有介紹到:列出所有的 Get Functions,一次顯現出所有系統相關資訊。 於是我們得到像這樣的結果: 左邊黑色字體的部分是「名稱」,右邊灰色字體是相對應的「系統資訊」 但是有個缺點 – 縮排不一致,整個排版不太方便觀看 FileMaker 有沒有方法解決排版問題呢? 有的。答案是利用 Ruler 的符號填滿功能 先進入 Layout Mode,點兩下畫面上的文字方塊 View > Rulers,打開尺規功能 在 Header 上方出現「工具尺規」(最左邊有個灰色的移動三角游標) 全選所有文字方塊內的內容 Command + A 直接點擊「工程尺規」的數字「4 – 5」之間,出現一個藍色箭頭,這時候「名稱」跟「系統資訊」之間 Tab 空格的長度是由這個藍色箭頭所決定 拉動藍色箭頭,繼續調整直到「名稱」跟「系統資訊」的空格足夠 把藍色箭頭停留在數字「5 – 6」之間,視覺上面感覺比較舒服 回到 Browse 畫面 Command + B 整體感覺已經不錯,但是因為行數較多,視線在「左右移動」及「上下移動」的時候,有可能還是會不舒服,也可能看錯行 還能再改善嗎? 答案是可以。 利用 Fill Character 符號填滿的功能可以達成這個目標 回到 Layout Mode,先點擊文字框兩下(工具尺規才會出現),記得全選文字 接著點擊「藍色箭頭」兩下,出現 Tabs 的設定 在左下方的 […]
-
[FileMaker] 測試沒有想像中困難
今天沒有想要寫技術的文章,倒是想分享一點學習的心得,最近在 FileMaker Magazine Youtube 頻道的 影片 下方看到一個有趣的留言提問,以及 Youtube 影片分享主 Matt 對於這個問題的回答,我覺得非常有趣,順手記錄下來,也分享給各位朋友。 看看網友的問題 Daniel Taylor 網友的問題是這樣的,簡單翻譯一下: 「Matt 你好,只是一個很快的問題。我設定了 Auto-Enter Field 序號欄位,如果將第一筆序號設定成 INV_0001,每次新增一筆紀錄則序號自動 +1,當序號來到 INV_9999 的時候,請問下一筆資料會變成 INV_10000 嗎?」 Matt 的回覆:「非常可能是喔。你不妨就真的試試看,把第一筆記錄的序號設定為 INV_9999,預設新增記錄則序號 +1,看看結果會如何?我猜你的想法是正確的。」 那我們也跟著試試看,新增一個 Auto-Enter 的 ID 欄位,條件設定成跟網友自己的問題一樣,第一筆序號直接設定成 INV_9999,下一筆序號自動 +1 第一筆 ID 序號是 INV_9999 Command + N 快速鍵新增一筆紀錄,ID 序號果然變成 INV_10000 Daniel Taylor 網友想必也這樣操作過,真的成功證明了自己的假設,於是他又回覆了留言: Daniel Taylor 回覆:「哈!沒想到我能這麼簡單就測試出自己的假設,感謝你!」 最好的學習方式 – 自己教會自己 從這個例子我們可以發現一個關鍵:測試一點也不難。 […]
-
[FileMaker] Get Functions 的學習
FileMaker 有一組很重要的 Get Function 函數 利用 Get Functions,我們可以得到很多系統當前狀態的資訊,比如: Get (AccountName) 可以得到目前系統的使用者帳號名稱 Get (CurrentDate) 可以得到今天的日期 Get (Device) 可以得到使用的裝置為何 Get (FoundCount) 可以得到找到的數量 ……等等許多的資料 但我們不管是用 Data Viewer 或是新建一個 Calculation Field,只能一次看一個函數,有沒有什麼方法可以一次顯示「所有」Get 函數所抓取的資料,來幫助我們觀察與學習呢? 答案當然是有的。 搭配一些外部程式跟設定,我們可以達成這個目標:一次顯示多個 Get Functions 的資料 {{AccountName}} = Get (AccountName) 在往下進行設定之前,我們還需要先建立一個觀念,也就是 {{AccountName}} = Get (AccountName) 兩個東西基本是一樣的,唯一的差別在於,Get (AccountName) 需要用 Field 來顯示,而 {{AccountName}} 則只需要放置到一般文字框即可顯現。 進入 Layout Mode,Insert > Other Symbol… […]
-
[FileMaker] Custom Function 導入與應用,以 NumToCText 函數為例
範例檔案下載 FileMaker 除了內建自有的 Function 函數(以下都用 Function 稱呼)之外,還可以導入外部 Function(比如別人設計好的 Function),或是甚至你可以自己把常用的步驟製作成 Function,這些預設以外的 Function,就是所謂的 Custom Function 自訂函數。 Custom Function 何處尋? 假設我們今天想要達成一個功能:把「阿拉伯數字」轉換成「中文大寫數字」,我們就可以使用 Custom Function 來達到這樣的目標。一開始我們還不熟悉怎麼去寫這樣的一個 Function。 有句話說得很好:「不需要重複打造輪子!」尤其身為一個資料庫或程式開發者,應該要懂的借力使力。 那我們應該去哪裡尋找這個「輪子」- Custom Function 呢? 一般會去幾個地方尋找 Custom Function 的資源: briandunning.com fmfunctions.com Matt Petrowsky 的 Github 第一、第二個網站是由眾人貢獻的 Custom Function,加起來應該有上千個,第三個 Github 是由 FileMaker 資深開發者 Matt 所獨自貢獻的 Custom Function 資源。以上全部都是免費的資源,感謝這些開發者無償的付出! 我們要找的數字轉換 Custom Function 位於 briandunning.com,Function 名稱叫做 NumToCText,如同 Function 功能敘述:把羅馬數字轉換成中文。 將 […]
-
[Vim] 學習資源
好用的編輯器 – Vim 的文本資源,隨著學習 Vim 的過程慢慢收集中。
-
[FileMaker] Debug 的一個過程記錄
FileMaker 不像其他的程式語言,其他的程式語言在出現錯誤的時候基本都會主動伴隨著「錯誤提示」,寫程式的人可以根據這些錯誤提示作為線索,進而找出問題並將錯誤更正過來,錯誤提示可以說是開發程式最重要的一個環節。 FileMaker 不知道爲什麼,很少情況會主動出現「錯誤提示」,在沒有錯誤提示的情況下,開發者不容易直接去把問題給找出來,想要修正某個錯誤,就必須根據自己的經驗,東試一下西試一下,可能需要花費好一段時間才能把問題找出來。 最近遇到的一個例子 以我自己正在維護的一個牧場系統為例,用 Portal 搭配 ExecuteSQL 函數把需要的工作列出來,以提醒牧場工作人員近期工作事項。 下方圖中共有兩個 Portal,分別代表不同的區域,上方的 Portal 可以正常顯示工作,而下方的 Portal 是空白的,表示下方的 Portal 可能有兩個情況: 所有工作已全數完成,沒有工作需要被顯示出來。 出現問題,導致這部分的工作列表沒有被顯示。(簡單說就是有 Bug) 我去看了一下資料,比對之下發現第二個 Portal 的確是有工作需要被顯示出來的,所以應該是第 二個情況:出現問題,導致這部分的工作列表沒有被顯示。 這個時候就要真的需要開始 Debug,檢查看看 FileMaker 哪邊有問題。 檢查的項目 Relashionship 關係圖是否有問題?關係連線兩方的 Field 是否有弄錯? Relashionship 關係的選項是否有不需要的設定,或是設定錯誤? 是某沒有選到正確的 Portal? Portal 裡面的 Field 欄位、Merge Field 欄位是否有對應到同樣的 Portal 名稱? Portal 的選項是否有不需要的設定,或是設定錯誤? Field 欄位的設定或寫法是否有錯誤? 檢查複雜的欄位寫法 由於這個欄位是 Calculation Field 計算欄位,中間又用上較為特殊的函示跟表示方法,計算過程的確有比較複雜,發生錯誤的機率也比較高,確定前面幾個大的檢查方向沒有問題之後,就開始專心處理 Calculation […]
-
[FileMaker] Data Viewer 介紹+取代方案(當你還沒有買 FileMaker Advanced 的時候)
FileMaker Advanced 有一些進階功能,是一般版的 FileMaker 所沒有的,其中一個功能就是 Data Viewer 萬用的餐巾紙 曾看到有人用一句話來形容 Data Viewer -「那張用來寫計算式的餐巾紙。」我看到的說法是用英文呈現的,目前我無法還原英文原句,但我想應該跟這個意思相去不遠。 我覺得以「那張用來寫計算式的餐巾紙」來形容 Data Viewer 真的是再精妙不過了,當我們跟朋友或是自己在咖啡廳的時候,常常有那麼一瞬間,靈感忽然產生,這時候通常沒時間再去拿筆記本或打開電腦,「只好」順手攤開桌上那張餐巾紙,開始構思想法、或是計算廠商給的報價加總、甚至寫下舞台劇劇本初稿…等等。 Data Viewer 類似的場景,在 FileMaker 開發的時候,也可能遇到,有時候開發到一半,可能會想說:「這個函數,配合某個算式,是不是能達成自己想要的目標呢?」 這時候就是打開 Data Viewer 的好時機,在 Expression 的地方輸入計算式,Data Viewer 會自動幫我們算出「結果」,或是如果有寫的不對的地方,還可以在電腦上「塗塗改改」,等到這些半成品算式真的 OK 之後,再將整個計算式成品複製,貼到需要的 Field 或 Script 等等地方,完成當初所設定的目標。 在 Watch 的底下綠色「+」按一下,就能開始編輯計算式。假設我們想要得到今天的日期,可以在 Expression 輸入: Get(CurrentDate) 下方的 Result 會自動出現結果:2017/12/25,就是今天的日期。這樣的好處是我們不用為了某個測試而另外新增一個 Field 欄位去做這個計算。 在開發的任何時候,只要有需要,都可以到 Data Viewer 簡單做計算,把要的算式暫時保留,不要的算式刪去即可,非常方便,非常輕鬆無負擔,是不是就很像「萬用的餐巾紙」帶給我們的好處,不要小看小小的一張餐巾紙,偉大的靈感可能因此而誕生喔! 沒有 FileMaker Advanced 怎麼辦? 最好的情況下,開發 […]
-
[Vim] 初次見面,你好
學了 FileMaker 一陣子,有時候還會需要其他程式工具的輔助,暫時脫離 FileMaker,用不同的工具將問題做更好的處理,當然最後來是會丟回 FileMaker 做後續的應用,每一個軟體有他的擅長之處,今天要介紹的就是我最近學到的編輯器工具 – Vim Vim 是 Unix 家族下功能強大的一個文字編輯器,由 Vi 演化而來,在 Vim 底下甚至可以不用透過滑鼠就可以操作文字編輯,只是各種指令對於初學者來說比較不容易適應,有一段不容易越過的初學學習曲線,但據說只要學會了以後,就會得到很大的好處。好的,那我們就來學習一下。(vi 與 vim 的指令整理) 範例介紹 最近有機會學習到 Vim 這個工具,是因為看了 FileMaker Magazine 的這個影片 – Custom Function Database – Part 1 這個影片主要是想將 FileMaker 的各式 Custom Function 整理到自己設計的 Database 中做記錄、管理及應用,FileMaker Function 的一個大宗來源是 briandunning.com 網站,這個網站收集了幾百個以上的 Custom Function,Matt Petrowsky 以這個網站為例,示範如何擷取各個 Custom Function 的 ID 的方法。 這邊的 ID,指的是每一個函數在網站中對應的 ID,可以藉由這個 ID […]
-
[FileMaker] 如何自動去掉惱人的文字格式?(利用 TextFormatRemove 函數)
範例檔案下載 複製貼上文字的困擾 不知道你是否也有這個經驗,在瀏覽器或其他應用程式複製一段文字,貼到 FileMaker 的同時,也把這段文字的字型、字樣、字體大小、顏色,都一起貼過來了,FileMaker 會主動儲存這些資訊,這時候如果使用的人不知道如何調整更改的時候,就會讓資料庫顯得雜亂,看起來不淸爽。 範例 我們可以看到下圖右邊是特斯拉的網站,我們複製這段文字:「最佳續航力。主動安全防護。」貼到左邊的文字欄位,可以明顯地看到網站上的字型、字體大小、顏色都被保留下來了。 註1:如果沒有相對應的字體,FileMaker 會自動抓取做顯示 註2:因為網站字體顏色為白色,把左邊文字欄位改為預設灰底,方便觀看 我們想要的其實是一般的字型就好,不然會顯得突兀。 TextFormatRemove 函數的應用 這時候,利用 函數可以解決這個問題。 快速鍵:Command + Shift + D 進入 Manage Database,點兩下 text 進入欄位選項 Auto-Enter 部分,點選 Calculated value 選項後方的 Specify…,進入計算區 在計算區輸入函數: TextFormatRemove ( Self ) 點選 OK,回到 Auto-Enter 部分 最後記得將 “Do not replace existing value of field (if any)” 取消打勾 (強迫每一次更改都重新計算) 快速鍵:Command + B 回到 […]