Friday, March 16, 2012

Microsoft Office 廣告

走火入魔了,哈 ~



Friday, March 09, 2012

[VFP] Automation 應用 - 判斷 Excel 版本

TRY
  loExcel = CREATEOBJECT("Excel.Application")
  IF VARTYPE(loExcel) = "O"

     lcExcelVersion = ALLTRIM(loExcel.APPLICATION.NAME)
     lnExcelVersion = VAL(loExcel.APPLICATION.VERSION)
  
     DO CASE
     CASE lnExcelVersion = 14
          lcExcelVersion = lcExcelVersion + " 2010"
     CASE lnExcelVersion = 12
          lcExcelVersion = lcExcelVersion + " 2007"
     CASE lnExcelVersion = 11
          lcExcelVersion = lcExcelVersion + " 2003"
     CASE lnExcelVersion = 10
          lcExcelVersion = lcExcelVersion + " XP"
     CASE lnExcelVersion = 09
          lcExcelVersion = lcExcelVersion + " 2000"
     CASE lnExcelVersion = 08
          lcExcelVersion = lcExcelVersion + " 97"
     OTHERWISE
          lcExcelVersion = lcExcelVersion + " " + ALLTRIM(STR(lnExcelVersion))
     ENDCASE
  
     lnExcelVersion = loExcel.APPLICATION.International(1)
     DO CASE
     CASE lnExcelVersion = 1
          lcExcelVersion = lcExcelVersion + " 英文版"
     CASE lnExcelVersion = 886
          lcExcelVersion = lcExcelVersion + " 繁體中文版"
     CASE lnExcelVersion = 86
          lcExcelVersion = lcExcelVersion + " 簡體中文版"
     OTHERWISE
          lcExcelVersion = lcExcelVersion + " 非英繁簡版(其國碼=" + ALLTRIM(STR(lnExcelVersion)) + ")"
     ENDCASE
    
     loExcel.QUIT
  ENDIF
CATCH
  -- 不產生任何錯誤訊息
  lcExcelVersion = "沒有安裝 Excel 軟體"
ENDTRY 
MESSAGEBOX(lcExcelVersion) -- 顯示偵測 Excel 結果

Wednesday, March 07, 2012

生平第一場車禍

生平第一次發生車禍,雖然以前 mail 內看過很多發生時要怎麼處理的流程,但真的發生,現場腦袋是一片空白。
 
  • 2011-12-01 事發當天
在高雄市神農路和美山路交叉口發生擦撞,發生原因為肇事者從外側車道轉進內側車道時,距離沒有抓好,擦到我右前輪上側的葉子板,車子稍為往左,第一時間肇事者並沒有馬上停車,有點觀望意味,可能想說是小擦撞,我不會追上去吧,還好馬上就遇上紅燈,讓我可以把他攔下。
  • 我:先生抱歉,你擦撞到我的車。(不知道我在客氣三小 Orz)
  • 肇:你要叫警察來嗎?
  • 我:對阿,這樣才可以申請保險。 (當下根本不知道對方有沒有保險,反正停下來就對啦)
之後就把車子移到路肩等待,大約10分鐘後,附近警局的員警到現場,因為是在行進中擦撞,車子也移開,根本沒有現場可以測量;問話過程中,肇事者不知道是太緊張還是裝傻,竟然跟員警說,他是從內側車道轉到外側車道擦撞到,當場傻眼,我還故意裝白癡問員警怎麼分內外車道,經過員警一番解釋後,很確定是外側轉進內側進而擦撞到,內側轉外側是要怎麼擦撞到我右前輪上側葉子板,被打敗 ~~ Orz ~~
  • 從前面拍過來。
Polo 外觀損毀圖 - 1
  • 從後側拍過來,這角度比較清楚
Polo 外觀損毀圖 - 2

Friday, March 02, 2012

[Challenge] 動態欄位轉置

Beyond Relational TSQL Challenge 42

這個挑戰是關於把資料從 ROW 轉成 Column 的商業邏輯,這個應用程式管理員工工作時數,應用程式必須產生每一個員工工作時數資訊,讓其他應用程式來跑。工作時數被分類為一般工作時數、加班時數、假日時數等。
  • 資料來源
EmployeeID PayType PayHours
---------- ------- --------
10001      R       01:30
10001      R       05:15
10001      O       01:00
10001      H       01:30
10002      R       08:00
10002      I       01:00
10002      I       01:30
第一個欄位儲存員工工號。第二個欄位儲存付款類別。R 代表 一般工作時數、H 代表 假日等意義。每一個員工付款類別必須累加。產生的結果,每一個員工必須只有一個 ROW 資料。
  • 產生結果
Employee Code1 Pay1 Code2 Pay2 Code3 Pay3 Code4 Pay4
-------- ----- ---- ----- ---- ----- ---- ----- ----
10001    R     6.75 O     1.00 H     1.50       0.00
10002    R     8.00 I     2.50       0.00       0.00
  • 規則
    1. 有 R、O、I 和 H 四種付款類別。
    2. 每一種類別在每一個 ROW 中,必須產生 codeN 和 payN 欄位;codeN 欄位資料必須為付款類別、payN 欄位資料必須為時數。
    3. 來源資料表中的資料格式為 HH:MM,MM 這個部分只會是 00、15、30 和 45。
    4. 產生結果必須是數值形態, 15 分鐘必須用 0.25、30 分鐘必須用 0.5 來呈現,請以此類推。
    5. 每一個付款類別有其權重,權順序為 R、O、I、H,R 為最高、H 為最低。
    6. 最後結果必須根據其權重且付款類別必須和時數放在一起。
    7. 產生的結果必須根據員工編號來排序。
    8. 產生的結果假如是 0 , 必須為 0.00。

Friday, February 24, 2012

2011 資訊專家貢獻獎

在小舖不起眼的地方,發現公佈資訊貢獻獎得主,沒想到有我,好奇評比的方法,沒想到沒有任何說明。
2011 年度貢獻獎 - 3
  • 得獎證據,評比方法大概是用年累計EP吧
2011 年度貢獻獎
原本贈品說明內有電子貼紙、保溫杯和神秘小禮物(USB工具),但是我怎麼找都找不到電子貼紙,原以為要 mail 過去申請,電子貼紙才會出現,沒想到收到的是保溫杯和 USB 工具,最後截圖紀念一下就好 ~~
  • 2011 年度貢獻獎的截圖
2011 年度貢獻獎 - 2