我有这样的报表,VB6.0+水晶报表,报表提供给用户一个参数,只要用户输入该参数相对应的值,就返回数据库查询的记录.水晶报表的数据源是储存过程,在储存过程里面就有一个参数.
我现在想实现的是,设计一个VB界面,提供用户一个选择,不用用户自己输入该参数的值,而是在下拉列表里读取了数据库的数据.只要用户选择了某个值,水晶报表就显示改值返回的记录.
我现在想实现的是,设计一个VB界面,提供用户一个选择,不用用户自己输入该参数的值,而是在下拉列表里读取了数据库的数据.只要用户选择了某个值,水晶报表就显示改值返回的记录.
'customer,datetime 是报表上的text
With FrmSysMain.Rptmain
.ReportFileName = gsReportPath + "xsd.rpt"
.Formulas(0) = "customer='" & Trim(ofrm.txt(1)) & "(" & Trim(ofrm.txt(0))
.Formulas(1) = "datetime='" & ofrm.msDatetime & "'"
.action=1
end with
Dim Report As New CrystalReport1Private Sub Form_Load()
Set rsGDBE2 = New ADODB.Recordset
rsGDBE2.Open "select * from qnhead where QN_NO='" & Form1.DataCombo1.Text & "'", cnGDBE, adOpenKeyset, adLockPessimistic
If Not rsGDBE2.EOF Then
Report.Database.SetDataSource rsGDBE2
End IfScreen.MousePointer = vbHourglass
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
End Sub
----------------------//
这是我在VB窗体FORM2里面的加载代码,但是老是报错,"实时错误:'9',下标越界"
在程序的登陆窗体里面也是用到rsGDBE,我用完之后就把它set rsGDBE=nothing了,还是出现程序死掉的现象
dim report as new crystalreport1private sub form_load()
set report=nothing
report.database.setdatasource rs
crviewer1.reportsource=report
crviewer1.viewreport1
end sub其中rs为你所取得的数据源.