使用手冊

此份使用手冊係便於討論時有所參考, 如有 javascript 基礎, 可直接撰寫 .js 來整合。





SQLReport.exe 為系統主程式, 所有的報表產生作業皆利用此程式產生, 透過簡單的參數傳入即可, 請參考詳細介紹。





-p 專案目錄

範例 SQLReport.exe -p C:\銷售日報表作業

執行此專案報表作業, 並依專案設置進行報表產製作業, 並寄出。

如未指定時, 將逐一走訪專案目錄下所有的專案資料夾:



-v 報表參數

範例 SQLReport.exe -p C:\銷售日報表作業 -v vendorid=711;reportdate=20230818

執行此專案報表作業時, 傳遞 vendorid 及 reportdate 二參數供輸入參數使用, 可作為 SQL的條件或任何替換參數作業。

(配合 batch 檔的撰寫來完成參數準備作業, 但我們建議由 SQL/JavaScript 方式來生成參數較為彈性)





SQL資料來源(DataSource)

注意事項 1 在產製報表前, 請先設定好你的資料來源(自行新增), 並完成「測試連線」成功。

注意事項 2 系統一律使用ODBC連接資料庫, 各家ODBC實作與實際資料庫有些許不同, 故注意語法的可用性。



變數型(單筆Record) 可多個 檔案格式 : [DB][資料來源名稱] 用途說明.SQL

說明 變數除了自動替換Excel中的 ${變數} 使用外, 同時成為「全域」變數供後續使用。(包含可用文件, 如 MAIL 及 SQL)

範例 [DB][SQLReportDB] CURRENT_TIMESTAMP.SQL

檔案內容 將自動替換回傳的變數名稱, 此例為 ${CURRENT_TS} 及 ${REPORT_DATE},



插入型區塊(可多筆Record) 可多個 檔案格式 : [DB][資料來源名稱][#參數] 用途說明.SQL

範例 [DB][SQLReportDB][#ROWS] SQLReport Sample.SQL

檔案內容 此SQL產出的資料將替換(逐筆插入) Excel 檔中的 #{ROWS} 變數

區塊變數 可使用{變數.欄位}取值代入後續SQL處理(以字串及逗號分隔提供)


替換型區塊(可多筆Record) 可多個 檔案格式 : [DB][資料來源名稱][&參數] 用途說明.SQL

範例 [DB][SQLReportDB][&ROWS] SQLReport Sample.SQL

檔案內容 此SQL產出的資料將替換(逐筆取代) Excel 檔中的 &{ROWS} 變數

區塊變數 可使用{變數.欄位}取值代入後續SQL處理(以字串及逗號分隔提供)


[DB][DS] 全域變數代換通則 任何SQL執行結果皆會被儲存供後續使用

說明 SQL 語句可以取得已完成SQL結果當成它的輸入值

使用方式 二個通用方式 {變數} , {變數.欄位} , 以利資料串接作業

注意 區塊變數僅限用於 SQL 使用。



[JS] 支援 JavaScript 串接程式 檔案格式 : [JS] 用途說明.js

範例 [JS]console.js

檔案內容 目前 javascript 支援版本(ECMAScript 2016)

// config 及 console 功能測試
console.info('取得全域變數 CURRENTDATE:' + config.get('CURRENTDATE') + '' CURRENTTIME:'' + config.get('CURRENTTIME'));
config.set('mykey', 'myvalue');
console.log('取得自行設定值(mykey) : ' + config.get('mykey'));

更多函式庫 請參閱 [javascript 函式庫] 專頁說明。


JS/SQL 執行順序 「名稱」排序即為執行順序

說明 我們依照檔案順序進行執行, 故一般可用編號來命名進行, 即可簡易定義腳本執行順序。

範例




EXCEL報表樣版檔 可多個 檔案格式 : 用途說明.xlsx (只認附檔名為.xlsx, 允許大小為0的空文件以忽略套表作業)。

範例 SQLReport Sample.xlsx

檔案內容 此excel檔相關變數將被替換(包含&{ROW}, #{ROWS}, ${CURRENT_TS}})

PDF 支援 PDF 轉換, 只要在 xlsx 檔案前面加上 [PDF] 識別字, 同時支援PDF加密功能, 請設定 PDFPASSWORD 變數即可。




郵件樣版檔 檔案格式 : [MAIL] 主旨 : 郵件說明 (可使用{變數}代入SQL結果或外部參數)

範例 [MAIL] SQLReport Sample - {REPORT_DATE}

檔案內容

請修改「Mail Settings」後, 並確認你的寄件伺服器是否正常, 記得執行「測試寄件信箱」確認。

收件者檔 可多個 檔案格式 : [MAILTO] 信箱

範例 [MAILTO] yourmail@gmail.com



收件者群組檔 可多個 檔案格式 : [MAILGROUP] 收件群組說明

範例 [MAILGROUP] 收信者群組

檔案內容



資料來源收件者群組 可多個 檔案格式 : [DB][資料來源名稱][MAILGROUP] 收件群組說明

範例[DB][SQLReportDB][MAILGROUP] GET MAIL DATA.SQL

檔案內容



根據資料來源記錄執行多次報表產制 檔案格式 : [DB][資料來源名稱][FOREACH] 報表記錄說明.SQL

範例[DB][SQLReportDB][FOREACH] ALL PRODUCT .SQL

檔案內容



CURRENTSHORTDATE 取得當前日期 (格式 : yyyyMMdd)

CURRENTDATE 取得當前日期 (格式 : yyyy-MM-dd)

CURRENTTIME 取得當前時間 (格式 : HHmmss)

TAIPEIDATE 取得當前台北時間(民國年) (格式 : YYYMMDD)

PROJECT_HOME 取得專案目錄路徑

EXE_PATH 取得執行目錄路徑

EXE_NAME 取得執行檔檔名

USER_HOME 取得使用者 HOME

__self_name 取得目前的 js 腳本名稱(限 js 使用 {} 取值)





開始位置 請設定為 SQLReport 安裝目錄

執行程式 請瀏覽至 安裝目錄 > SQLReport.exe

新增引數(專案參數) -p 專案目錄路徑 -v 參數1=值1;參數2=值2

執行時間 請依需求自行設定





儲放位置1 請瀏覽 安裝目錄 > logs 目錄 > 以日期為單位記錄

儲放位置2 請瀏覽 專案目錄 > logs 目錄 > 以日期為單位記錄


注意 日誌僅會儲存六個月, 超過六個月的日誌會自動刪除, 請自行備份。