显示方式一: 情况为报表直接在工程设计器中制作 (Dsr文件) --------------------- CRViewer91.ReportSource = Report CRViewer91.ViewReport ---------------------- 显示方式二: 情况为报表在水晶报表软件中制作 (rpt文件) Dim capp As New CRAXDDRT.Application Dim carp As New CRAXDRT.Report Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strsql As String Dim i As Integer If cn.State = adStateOpen Then cn.Close SQL SERVER连接方式 With cn .Provider = "sqloledb" .ConnectionString = "data source=dd;initial catalog=dfd;user id=sa;password=aaa" .Open End With Mdb的连接方式 With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source='" + App.Path + "\temp.mdb;Jet OLEDB:Engine Type=5;Locale Identifier=0x0804;Jet OLEDB:Database Password=" .ConnectionString = "Data Source=" + App.Path + "\Test.mdb;Persist Security Info=False" .Open End Withstrsql = "select * from carsort" If rs.State = adStateOpen Then rs.Close With rs .ActiveConnection = cn .CursorLocation = adUseClient .Open strsql, cn, adOpenDynamic, adLockOptimistic End WithSet carp = capp.OpenReport(App.Path + "\CryStalTest.rpt") For i = 1 To carp.Database.Tables.Count If carp.Database.Tables.Item(i).Name = "carsort" Then carp.Database.Tables(i).SetDataSource rs End If Next Screen.MousePointer = vbHourglass 第一种方式 carp.ParameterFields(1).ClearCurrentValueAndRange carp.ParameterFields(1).AddCurrentValue ("myhgyp") carp.ParameterFields(2).ClearCurrentValueAndRange carp.ParameterFields(2).AddCurrentValue (CInt("3")) carp.ParameterFields.GetItemByName("gg").ClearCurrentValueAndRange carp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myh111111111111111111111111111111111111" & Chr(13) & Chr(10) & "-22222222222222222222222222222222222222222222222222222222222gyp") carp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myhgyp") carp.ParameterFields.GetItemByName("ff").ClearCurrentValueAndRange carp.ParameterFields.GetItemByName("ff").AddCurrentValue (CInt("673")) CRViewer91.ReportSource = carpCRViewer91.ViewReport Screen.MousePointer = vbDefault CRViewer91.Zoom 100
Dim rptApp As New CRAXDRT.Application '报表应用对象 Dim rpt As New CRAXDRT.Report '报表对象Private Sub Form_Load() Dim rs As New ADODB.Recordset rs.CursorLocation = adUseClient Dim strSQL As String rs.Open strSQL, conn, adOpenKeyset, adLockBatchOptimistic Set rpt = rptApp.OpenReport(App.Path & "报表名.rpt") rpt.Database.SetDataSource rs rpt.DiscardSavedData Screen.MousePointer = vbHourglass CRViewer91.ReportSource = rpt CRViewer91.ViewReport Screen.MousePointer = vbDefault End SubPrivate Sub Form_Resize() CRViewer91.Top = 0 CRViewer91.Left = 0 CRViewer91.Height = ScaleHeight CRViewer91.Width = ScaleWidth End Sub
http://blog.csdn.net/babyt/archive/2004/09/12/101771.aspx还有些文章你可以参考 :)
---------------------
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
----------------------
显示方式二: 情况为报表在水晶报表软件中制作 (rpt文件)
Dim capp As New CRAXDDRT.Application
Dim carp As New CRAXDRT.Report
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
Dim i As Integer
If cn.State = adStateOpen Then cn.Close
SQL SERVER连接方式
With cn
.Provider = "sqloledb"
.ConnectionString = "data source=dd;initial catalog=dfd;user id=sa;password=aaa"
.Open
End With
Mdb的连接方式
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source='" + App.Path + "\temp.mdb;Jet OLEDB:Engine Type=5;Locale Identifier=0x0804;Jet OLEDB:Database Password="
.ConnectionString = "Data Source=" + App.Path + "\Test.mdb;Persist Security Info=False"
.Open
End Withstrsql = "select * from carsort"
If rs.State = adStateOpen Then rs.Close
With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.Open strsql, cn, adOpenDynamic, adLockOptimistic
End WithSet carp = capp.OpenReport(App.Path + "\CryStalTest.rpt")
For i = 1 To carp.Database.Tables.Count
If carp.Database.Tables.Item(i).Name = "carsort" Then
carp.Database.Tables(i).SetDataSource rs
End If
Next
Screen.MousePointer = vbHourglass
第一种方式
carp.ParameterFields(1).ClearCurrentValueAndRange
carp.ParameterFields(1).AddCurrentValue ("myhgyp")
carp.ParameterFields(2).ClearCurrentValueAndRange
carp.ParameterFields(2).AddCurrentValue (CInt("3"))
carp.ParameterFields.GetItemByName("gg").ClearCurrentValueAndRange
carp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myh111111111111111111111111111111111111" & Chr(13) & Chr(10) & "-22222222222222222222222222222222222222222222222222222222222gyp")
carp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myhgyp")
carp.ParameterFields.GetItemByName("ff").ClearCurrentValueAndRange
carp.ParameterFields.GetItemByName("ff").AddCurrentValue (CInt("673"))
CRViewer91.ReportSource = carpCRViewer91.ViewReport
Screen.MousePointer = vbDefault
CRViewer91.Zoom 100
Dim rpt As New CRAXDRT.Report '报表对象Private Sub Form_Load()
Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim strSQL As String
rs.Open strSQL, conn, adOpenKeyset, adLockBatchOptimistic Set rpt = rptApp.OpenReport(App.Path & "报表名.rpt")
rpt.Database.SetDataSource rs
rpt.DiscardSavedData Screen.MousePointer = vbHourglass
CRViewer91.ReportSource = rpt
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub