自動發送 email 報表 Part (II)

接下來在設定幾個不同的欄位讓他有不同的面貌

到此為止經過不同的排列組合, 應該可以組合合適的呈現方式出來, 除此之外 Query Reporter可以修正欄位資料的顯示格式, 另外還有個特別的功能, 可以分組來顯示資料, 也可以分組來做小記及加總.
Test NetApp Picture

在這個範例把 Owner 做成一個小分組, 畫面呈現上會把 Owner 這個欄位拉出 Table 之外, 並同時把 Pct_Free, Pct_used 兩個欄位呈現成小數下兩位.
Test NetApp Picture

還可以在 Sum 這個欄位選擇 sum per break & report 讓他在分組最下面, 及報表結束時自動加總.
Test NetApp Picture

最後就可以把這個設定好的表格存檔起來方便未來定期發送的母檔 (Test.rep), Query Reporter 同時也支援 Command Line 指令模式來啟動, 透過以下的指令可以自動把結果輸出成 test.html, 立即結束掉 Query Reporter 程式.

queryreporter.exe userid=username/password@Ora_Conn exec=test.rep html=test.html quit

接下來要找個 Command line 的發信程式來發送產生出來的 test.html, 在網路上找的 blat (http://www.blat.net/194/) 這個小程式, 下載回來後解開放置在同一個路徑下.

先執行 Blat -install “server addr” “sender’s addr” 設定郵件伺服器位置及寄送的帳號.

執行下列指令可以把 test.html 當做附件寄出, 但是由於寄出時 Html 會自動 encode 成 UTF-8 的格式, 在報表上面如果有中文字(big5)的話, 就會變成亂碼, 所以只能用附件的方式寄送, 而 Body.txt 是一段存成 UTF-8 格式的文字說明.

blat body.txt -to user01@test.com,user02@test.com -subject “TEST” -attach test.html

由於產生 test.html 需要一點時間, 前幾次測試時常常在 test.html 還沒有產生出來時就直接啟動 blat 來發送 Mail , 所以在批次檔必須要想個方式讓 blat 等一等, 當然用 Google 一下之後, 發現這個網址 http://malektips.com/dos0017.html 可以利用 Ping 的指令來達到 Wait 的功能.

ping 127.0.0.1 -n 30 -w 1000 其中 30 是 Delay 的秒數, 這樣組合起來就可以變成一個完整的批次檔.

發表迴響