FM的自訂函數寫法
FM的函式寫法,與一般程式的寫法很不同,要體會與摸索一段時間,才會了解它的寫法,畢竟這是外國的程式語言,又是國人在校所沒教的,像是為了呈現合乎國人的大寫金額,不得不寫函式來轉換。
同樣的結果,寫法的邏輯過程會因人而不同,或長或短,當然如果能更精簡流程,自然效益更高。
相信同我初學FM時,一定會遇到寫函式的關卡,如何就FM所提供的函式指令運算達成自己所要的結果,常常會在這個地方困頓良久而跨不過去。
為了讓學習FM的初學者,能減少學習時程,早日精進FM的寫法與運用,個人將放上一兩個函式供參,希望有助學習。
請善 Let函式 來達成自訂函式的運算結果。
扼要之:
Let(
[
運算過程…….前面每一個式子完成,都要以;分開,最後一個式子不可以加;
]
;呈現運算結果
)
分述之:
Let(
[
自訂變數1=初值1;
自訂變數2=初值2;
……..
設定取得計算結果變數=透過運算來取得結果
]
;設定取得計算結果變數
)
實例之:將數字每三位數加入逗號,適用到12位數
函數名稱:
TranNumCMF(數字)
函式運算內容:
Let (
[
數字長度=Length ( 數字 );
商數=數字長度 / 3;
取回逗號數字=Case (商數 ≤ 1 ; 數字;
商數 >1 and 商數 ≤ 2 ; Middle ( 數字 ; 1 ; 數字長度-3 ) & "," & Right ( 數字 ; 3 ) ;
商數 >2 and 商數 ≤ 3 ; Middle ( 數字 ; 1 ; 數字長度-6 ) & "," & Middle ( 數字 ; 數字長度-5 ; 3 ) & "," & Right ( 數字 ; 3 ) ;
商數 >3 and 商數 ≤ 4 ; Middle ( 數字 ; 1 ; 數字長度-9 ) & "," & Middle ( 數字 ; 數字長度-8 ; 3 ) & "," & Middle ( 數字 ; 數字長度-5 ; 3 ) & "," & Right ( 數字 ; 3 ) ;
商數 >3 and 商數 ≤ 4 ; Middle ( 數字 ; 1 ; 數字長度-12 ) & "," & Middle ( 數字 ; 數字長度-11 ; 3 )& "," & Middle ( 數字 ; 數字長度-8 ; 3 ) & "," & Middle ( 數字 ; 數字長度-5 ; 3 ) & "," & Right ( 數字 ; 3 )
)
]
; 取回逗號數字 )
