在vb中動態加載水晶報表rpt文件的方法
2024-07-21 02:27:39
供稿:網友
這個問題在很多論壇里邊都有問到。但是一直沒找到滿意的答案。下邊寫出一個解決辦法
dim sql as string
dim rstliushui as new adodb.recordset
dim rpt as new craxddrt.report
dim printapp as new craxddrt.application
if option2.value = true then
sql = "select * from n_ihbill where datediff(d,日期,'" & format(dtpicker1.value, "yyyy-mm-dd") & "')=0 and 住院號=" & cbopatient.itemdata(cbopatient.listindex)
else
sql = "select * from n_ihbill where datediff(d,日期,'" & format(dtpicker1.value, "yyyy-mm-dd") & "')=0"
end if
debug.print sql
rstliushui.open sql, adoconn, adopenforwardonly, adlockreadonly
if rstliushui.eof and rstliushui.bof then
msgbox "沒有可用數據!", vbinformation
exit sub
end if
set rpt = printapp.openreport("cryliushui.rpt")
rpt.database.setdatasource rstliushui
call viewreport(rpt, "", "打印流水")
rstliushui.close
set rstliushui = nothing
這樣就可以實現程序與報表的邏輯分離。如果用報表設計器。每次更改報表格式都需要編譯程序。客戶甚至可以自己更改報表格式。