2008年7月4日 星期五

詐砲的自訂公式

假如客戶要求你,某一個計算公式可以讓他自由設定,你想要怎麼做?
例如:加班費計算
有些人想要 ROUND(時薪 * 加班費比例) * 時數
有些人想要 FLOOR(時薪 * 加班費比例) * 時數
有些人想要 ROUND(時薪 * 加班費比例 * 時數)
有些人想要 FLOOR(時薪 * 加班費比例 * 時數)

於是就有程式人員這樣寫啦
switch(計算方式)
{
case "1" :
 加班費 = ROUND(時薪 * 加班費比例) * 時數;
 break;
case "2" :
 加班費 = FLOOR(時薪 * 加班費比例) * 時數;
 break;
case "3" :
 加班費 = ROUND(時薪 * 加班費比例 * 時數);
 break;
case "4" :
 加班費 = FLOOR(時薪 * 加班費比例 * 時數);
 break;
}
第五種狀況出現時怎麼辦?改程式?寫程式一定要這樣歹命嗎?
來!我有一個詐砲方法給大家參考
就是請資料庫伺服器幫你算!
以 SQL Server 為例子

SELECT ROUND(@時薪 * @加班費比例, 0) * @時數

只要把 @時薪、@加班費比例、@時數 三個參數丟進去,就有計算結果啦
所以呢,「ROUND(@時薪 * @加班費比例, 0) * @時數」這一串文字就可以變成「加班費計算公式」的設定
反正加班費再怎麼算,都脫離不了時薪、加班費比例、時數三個參數

我覺得這個方法相當不錯,提供您參考喔~~