主程式
SQLReport.exe 為系統主程式, 所有的報表產生作業皆利用此程式產生, 透過簡單的參數傳入即可, 請參考詳細介紹。
此份使用手冊係便於討論時有所參考, 如有 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} 變數
替換型區塊(可多筆Record) 可多個 檔案格式 : [DB][資料來源名稱][&參數] 用途說明.SQL
範例 [DB][SQLReportDB][&ROWS] SQLReport Sample.SQL
檔案內容 此SQL產出的資料將替換(逐筆取代) Excel 檔中的 &{ROWS} 變數
[DB][DS] 全域變數代換通則 任何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'));
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] yourmail@gmail.com
收件者群組檔 可多個 檔案格式 : [MAILGROUP] 收件群組說明
範例 [MAILGROUP] 收信者群組
檔案內容
資料來源收件者群組 可多個 檔案格式 : [DB][資料來源名稱][MAILGROUP] 收件群組說明
範例[DB][SQLReportDB][MAILGROUP] GET MAIL DATA.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 目錄 > 以日期為單位記錄