VB6表單放置WebBrowser控件,動態生成HTML字符串(或加載模板文件替換佔位符),調用Navigate2 "about:blank"後寫入Document.Write。
{CUSTOMER_NAME}、{ORDER_LIST}。Private Sub GenerateReport()
Dim html As String
Dim rs As ADODB.Recordset
' ... 查詢數據 ...
html = LoadTemplate("report_template.htm") ' 讀取模板文件
html = Replace(html, "{CUSTOMER_NAME}", rs!CustomerName)
html = Replace(html, "{ORDER_DATE}", Format(rs!OrderDate, "yyyy-mm-dd"))
' 生成明細表格行
Dim rows As String
Do While Not rsDetail.EOF
rows = rows & "" & rsDetail!Product & " " & rsDetail!Qty & " "
rsDetail.MoveNext
Loop
html = Replace(html, "{ORDER_LIST}", rows)
WebBrowser1.Navigate "about:blank"
Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
WebBrowser1.Document.Write html
WebBrowser1.Document.Close
End Sub
WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER直接打印。@media print)。StringBuilder類或分塊寫入。StrConv(html, vbFromUnicode)或確保Document.Charset = "UTF-8"。