在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
这样就可以实现程序与报表的逻辑分离。如果用报表设计器。每次更改报表格式都需要编译程序。客户甚至可以自己更改报表格式。