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

     这个问题在很多论坛里边都有问到。但是一直没找到满意的答案。下边写出一个解决办法
    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
这样就可以实现程序与报表的逻辑分离。如果用报表设计器。每次更改报表格式都需要编译程序。客户甚至可以自己更改报表格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值