在vb中动态加载水晶报表rpt文件的方法

王朝vb·作者佚名  2006-01-09
宽屏版  字体: |||超大  

这个问题在很多论坛里边都有问到。但是一直没找到满意的答案。下边写出一个解决办法

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有