利用 Oracle htp 套件在預存程序中直接產生 HTML 標籤並輸出至瀏覽器,配合 Apache mod_plsql 即可實現資料庫端報表產生。本文提供完整套件程式碼,示範如何動態建立表格、標題、分頁並支援匯出 Excel。
修改 Apache dads.conf 設定資料庫連線資訊(使用者、密碼、連線字串、驗證模式),重啟 Apache 服務。
cux_html_report 套件包含:html_header、html_body、html_tail(頁首/身/尾)table_h、table_t、tr_、td_(表格元素)report_header、report_subtitle、report_tail(報表區塊)main 主程序串接上述元件,查詢 all_objects 示範資料輸出。編譯無誤後,瀏覽器存取 https://host:port/dad/cux_html_report.main 即可看到報表。若在 main 中加入 owa_util.mime_header('application/vnd.ms-excel'),可直接輸出 Excel 檔案。
使用 htp.p 輸出 HTML 字串,ref cursor 處理動態查詢結果,substr/instr 解析分號分隔的欄位內容。完整原始碼已包含在內文中,可依需求修改擴充。