-
FileMaker 釋出 iOS App SDK!
不久前,也就是今年的 1月12日,FileMaker 釋出了 iOS App SDK,對開發者來說是一個非常令人興奮的消息。 以往,採用 FileMaker 開發的 App,或者說是系統也好,要在 iOS 的裝置上(iPhone / iPad)運行,都需藉由 FileMaker Go 來達成。(或許有人會說還有 WebDirect,但整體功能相對受限,我們這邊略過不談。) 也就是說,以往的步驟會是這樣:在 iPhone / iPad 上先安裝好 FileMaker Go 這個 App,接著要想辦法把電腦上的資料庫檔案傳到 iPhone / iPad,再打開 FileMaker Go,選好目標資料庫,開始使用 App,實際上有一定的流程需要遵循。 現在,FileMaker iOS App SDK 被釋出以後,開發者將可以使用 FileMaker 直接開發出 iOS 的原生 App,簡單說就是會有一個屬於 App 自己的 icon,這真的是非常有趣阿! ” This is going to be a game changer. I […]
-
[FileMaker] Set Script Triggers
當我們寫好一段 Script 程式碼之後,就要馬上來套用執行。 這時候我們可以選擇怎樣執行這段 Script 程式碼,我們可以利用設定 Button 按鈕的方式來執行,也就是說,當我們按下按鈕之後,會有一連串後續的動作相對發生。(之前的文章有提到過:[FileMaker] 設計Button,簡單切換Layout) 另外的情況,就是像此文開頭的圖片顯示的:OnObjectModify 這邊是指,當我們選擇在資料「被修改」的時候,發生一連串後續的動作,而這一連串的動作,是藉由撰寫的程式碼所達成的。當資料被修改的時候,程式碼就會執行而表現出最後的結果。 其他 Script Trigger 方式還有: OnObjectEnter OnObjectKeystroke OnObjectValidate OnObjectSave OnObjectExit OnObjectAVPlayerChange FileMaker 在上面各種情況下都可以去執行程式碼。 開發者可以根據資料庫整體設計,來選擇在什麼情況下執行程式碼最符合使用者需求。 * 如何設定 Script Triggers 程式碼執行方式: 請參考上圖,Field 欄位點選右鍵,選 Set Script Triggers…
-
[FileMaker] 利用 CreatedBy 和 CreatedOn 記錄資料的「人」跟「時間」資訊
資料庫在多人使用的情況下,想要知道是誰(Who)以及是誰(When)建立了某筆記錄,利用CreatedBy 和 CreatedOn,就是很好的兩個欄位 Field,用來記錄重要的「人」跟「時間」這兩個資訊。 FileMaker 的 Auto-Enter 是很方便好用的功能。 CreatedBy 欄位我們可以設定自動填入「帳號」Account Name CreatedOn 欄位我們可以設定自動填入「時間」Timestamp * Timestamp 會幫忙記錄「日期」+「時間」Date and Time 有了 CreatedBy 和 CreatedOn 之後,可能會有人再次去修改(更新)某筆資料,這時候就會需要額外的兩個欄位:ModifiedBy 和 ModifiedOn,記錄資料最近一次被修改的「人」跟「時間」。 這兩個欄位可以讓管理者知道某筆資料「最後(時間)」是被「誰」所修改的。 ModifiedBy 和 ModifiedOn 兩個欄位的建立如下: 最終我們會建立出四個欄位:CreatedBy, CreatedOn, ModifiedBy, ModifiedOn 這些欄位都會自動記錄「人」跟「時間」等兩個資訊,個人認為這個功能對於管理者來說非常重要,尤其是在多人共同使用的資料庫系統上面。
-
[FileMaker] 主鍵 Primary key 與 外部鍵 Foreign key
Primary key,主鍵。 「主鍵是用來辨識記錄的欄位,具有唯一性,且不允許重複。」* Foreign key,翻譯成外部鍵 or 連外鍵。 「連外鍵是用來連結其他資料表之用,如果甲資料表中的某個欄位必須對照到乙資料表中的主鍵,才會使得該欄位的值變得有意義,則我們稱該欄位為甲資料表的連外鍵。」* 「在關聯式資料庫中,資料表之間的關係是藉由連外鍵來建立的。」* Primary key 與 Foreign key 似乎是初學資料庫時很不容易搞清楚的一個觀念,自己也是花很久時間,還不一定有完全搞懂,這邊試著把對這兩個名詞的理解筆記下來。 * 文字擷取自參考資料: 關聯式資料庫的基本知識 (PDF)
-
[FileMaker] 設置 Serial number 的好處
應該要養成一個習慣,每次在建立一個新的 Table 的時候,就要直接建立一個 Id Field 欄位,我們希望每一筆資料都會有一個自己的 Id。 在做這個步驟的時候,不要忘記在 Id 欄位 額外設置 Serial number,可以參考附圖。 這是 FileMaker 的 Auto-Enter 功能,Id 欄位 的 Serial number 勾選後,下次每輸入一筆新的資料時,都會以「每次加1」的增加幅度自動填入一個 Id 號碼。(正常是加1,可另外自行調整增加幅度) 這樣做有什麼好處呢? Table 中的每一筆資料應該都是獨立的。其他 Field 欄位都可能會有重複資料的可能,但我們需要一個欄位,唯一值能夠代表每筆資料,Id Field 的 Serial number 設置就可以提供每一筆資料這樣的獨立性。 當表單中的資料有了這樣的獨立性之後,我們就可以利用這個欄位特性來跟其他表單做關連,這就是關聯式資料庫的設計原則,我們通常稱為 Primary key「主鍵」。 參考資料: 關聯式資料庫 – 國立聯合大學 (PDF) 關聯式資料庫的基本知識 (PDF)
-
軟體專案合作開發的一點經驗
這個影片,是我十月份上敏捷專案管理課的時候,講師在課堂上播放給同學看的,我覺得很有意思,也想分享一下。 整個影片最常聽到的一句話就是:”ask the product manager”,不管同事反應什麼(即便你要改的東西只是一個字按鈕),工程師的回答都是,我不知道,去問 PM。這邊不去談論對錯,畢竟自己本來就不是軟體開發領域出身,但我有「相關」的經驗,或許可以來聊聊。 不知道大家有沒有自己開發軟體的經驗,或是跟廠商「合作」開發一個軟體專案,又或是直接把整個專案「外包」給其他公司的經驗呢? 我自己並不是開發者(當時),唯一算沾得上邊的經驗,曾經在之前的公司與一家廠商「合作」開發一個小專案,專案本身並不是太複雜,簡單說起來就是要完成二張表單,可以讓公司外部人員透過網路把客戶資料給整合到一個小系統中。 為了爭取時間,跟廠商討論的結果,我們沒有直接重頭開始打造一整個軟體,而是直接運用廠商現有的 OA 線上系統去「盡量」地「修改」成計畫中的樣子。 事實上,這個專案計畫的樣子,也並不是那麼的清楚(現在想起來很土法煉鋼),只有一個大概的輪廓。最清楚的人應該是我跟主管,另外就是合作廠商的技術經理了。我們走的是且暫戰且走的方式,也難為了這位技術經理願意幫忙,調整我們接近 90% 的需求! 專案雛形在一個多月左右完成,但要到真正可以用好像是三個月以後。 現在回憶起來,我覺得最花時間的部份,並不是「開發」軟體本身,而是這個軟體專案被開發出來之後(還有之前,這部分之後可以另外來談),遇到的種種「問題」的修正。(另外還有教育訓練的難題,之後另外談) 這些問題,不管是自己測試發現的,還是經由同事測試發現的,一來一往的修改,其實都耗費了相當多時間跟精力,我真的很感謝當初一起合作的技術經理,可以清楚地溝通需求,願意一起配合完成這個專案,事實上這完全是一個賠錢的專案,大家願意合作,都是看到了各自公司的未來發展,加上合作愉快,最終才能順利的把專案給完成。 這邊要再次鄭重感謝這位技術經理,在整個合作的過程中,我真的學到非常、非常多的東西,相信這對我接下來要做的工作會有非常大的幫助。 *OA -Office Automation 辦公自動化。 http://wiki.mbalib.com/zh-tw/%E5%8A%9E%E5%85%AC%E8%87%AA%E5%8A%A8%E5%8C%96
-
[FileMaker] 如何隱藏 app 上方工具列?
如果我們把做好的 app 放到 iPad/iPhone 上面使用,我們可能會發現一個小問題,整個版面的「上方」配置空間跟我們原來所設計的並非一模一樣。 原因是 app 上方多了一行「工具列」。 若是能隱藏掉這行工具列,app 版型就會跟我們在電腦上面設計的一樣了。 大部分的情況下,這行工具列應該是不需要的。 今天來分享一下怎麼把這行「多餘」的工具列消掉。 工具列算是 app 設計時就內建好的功能,iPhone/iPad 上面是無法直接消除的,所以我們一樣要回到電腦上面來操作。 首先,打開檔案。 點選上方 File 選擇 File Options,進入選單畫面 勾選最下方的 “Hide all toolbars” ,OK 完成,把 app 傳到 iPhone 上看看。 登~完美的呈現原來所設計的樣子,不會被工具列干擾了。
-
Vertical Market
http://www.investopedia.com/terms/v/verticalmarket.asp 今天看到一個以前沒看過的詞 Vertical Market 網路上給的定義 “A group of companies that serve each other’s specialized needs and that do not serve a broader market. A vertical market is tightly focused on meeting the needs of one specific industry.” 其實發現就是面對一個特殊市場的生意,所做的事情幾乎會圍繞著某一個產業來進行。也有ㄧ說法是「利基市場」,在一個獨立的市場裡,提供針對性的商品或服務。 相對的,有垂直就有水平, Horizontal Market 就比較容易想像了。一個產品或服務被製作或開發出來後,面對不只一個產業,市場範圍相對廣泛許多。 這兩種市場沒有所謂好壞,會想要提到這個詞,是因為今天在看資料的時候,有一個開發者提到 FileMaker 非常適合 Vertical Market。不管是要做 Vertical Market 生意的公司,或是 Vertical Market 內的公司內部,都很適合利用 FileMaker 開發解決方案。 蠻有趣的,繼續追蹤,再分享之後的觀察。
-
[FileMaker] Conditional Formatting 的妙用
“Conditional Formatting” 是什麼?看圖比較清楚。 假設我們想要「相同欄位」根據「不同資料」顯示而有更多變化的時候,我們可以利用設定 “Conditional Formatting” 的方式來實現。 比如,根據「黨別」的資料,來決定「欄位背景」顯示的「顏色」。 Very important! 大家注意! 新好公民心中沒有所謂「顏色」,這邊純粹是為了做示範喔。 要怎麼做呢? 首先進入編輯模式,「黨別」欄位按右鍵,選取 “Conditional Formatting” 會跳出一個新視窗:Conditional Formatting for “黨別”,在這邊做設定。 Add 開始新增條件。 “Value is” “equal to” “民進黨”,當欄位值等於「民進黨」時。 “Fill Color” 欄位背景顯示為 “綠色“。 其他黨別,國民黨及親民黨,也依法炮製即可。 最後,「黨別」欄位就會根據不同黨別而顯示不同的「顏色」。 很簡單的就完成了 Conditional Formatting 的設定! 這個功能應該還有很多可以應用的空間。 大家也可以多多分享新的用法給 FMkid 喔 : )
-
[FileMaker] Calculation result 計算結果的「形式」一定要選對
Calculation result 是指什麼?在上圖左下角可以看的很清楚。 Calculation result is “xx” xx 可以是 Text, Number, Date, Time, Timestamp, Container 等各種欄位「形式」。如果今天計算出來的結果是數字 Number,但你在設計的時候忘記改正,變成文字 Text。如此一來,當下或許不會出現問題,但日後取用這個欄位的時候,就可能會遭遇「值」無法被正確顯示的狀況。 舉個例子。 像今天有需要在另一個 Invoice Layout 呈現聯絡人 Contacts 表單的資料。 於是設計了一個下拉式選單 (Drop-down list),將其中的 value「值」換成聯絡人表單的 Contact 欄位,想說這樣就可以完美地呈現一組下拉式選單聯絡人,方便選擇。(這裡面的操作步驟其實有點多,非今天主題就先暫時跳過。) 結果欄位很不給面子的給了一個「?」 詢問高人的結果,其實我的問題在很遙遠的 Contacts 就發生了。 為什麼說遙遠呢?因為我在操作 Invoice layout 時,幾乎沒時間也不會回頭去關心 Contacts 表單的狀況,而且當時也沒什麼狀況。但這就造成了問題! Calculation 計算是「名+姓」,照理說 Calculation result 計算結果應該是文字形式 Text 才對,但我當時忘記改到,還是維持原狀數字形式 Number。 當時問題沒有發生,但現在要顯示在另一個 Layout 的時候就馬上出現問題了。 好知道問題後,我們就改回 Text 即可。 […]