vb連接水晶報表

 

首先做的:

1.在工程中添加CRViewer9控件.作爲瀏覽報表的控件     對應CRViewer9.dll文件
2.在"引用..."中添加Crystal Reports 9 ActiveX Designer Run Time Library    對應CRAXDRT9.dll文件
3.在窗口中添加Crviewer9控件,Name爲:CRViewer91

先看靜態連接:

Private Sub Form_Load()

    Private objcrapp As New CRAXDRT.Application
    Private objcrreport As New CRAXDRT.Report

   '讀取水晶報表文件

    Set objcrreport = objcrapp.OpenReport("水晶報表文件路徑", 1)

   '設置報表源

    CRViewer91.ReportSource = objcrreport
    CRViewer91.ViewReport

End Sub

動態連接:

1.要知道水晶報表的推模式,在水晶報表中,數據庫專家->選擇"僅字段定義"(如果沒看到此項,說明水晶報表沒有安裝完全)->新建文件->增加字段(字段名和類型要與數據庫中一致)->保存.ttx文件.這其實就是提供一個框架,數據是通過vb給它的.

2.建立一個模塊.連接數據庫用的.

'模塊------------------------------

Public rs As New ADODB.Recordset
Public objcrapp As New CRAXDRT.Application
Public objcrreport As New CRAXDRT.Report


Public Sub open_db(strsql)

Dim conn As New ADODB.Connection

'連接sql數據庫-------------

conn.Provider = "sqloledb"
conn.Properties("data source").Value = "127.0.0.1"   '本機
conn.Properties("initial catalog").Value = "gs_get"   '數據庫名
conn.Properties("integrated security").Value = "SSPI"   '登陸類型:集成
conn.Open
With rs
.ActiveConnection = conn
.CursorLocation = adUseClient
.Open strsql
End With
End Sub

Public Sub close_db()
Set rs = Nothing
End Sub
'-------------------------------------------

3.接着就是from了

Private Sub Form_Load()
Dim i As Integer

Dim props As CRAXDRT.ConnectionProperties
Dim prop As CRAXDRT.ConnectionProperty

Dim strsql As String

'查詢語句

strsql = "select * from MANL_TBL "

open_db (strsql)


Set objcrreport = objcrapp.OpenReport(App.Path & " report1.rpt", 1)

''''''''''加載ttx,可不用
'Set props = objcrreport.Database.Tables(1).ConnectionProperties
'For Each prop In props
'If InStr(prop.Name, "field definition file") > 0 Then
'     prop.Value = App.Path & " pro.ttx"
'     Exit For
'End If
'Next
'Set props = Nothing
'------------------------

objcrreport.DiscardSavedData
objcrreport.EnableParameterPrompting = False
For i = 1 To 2
objcrreport.ParameterFields(i).ClearCurrentValueAndRange
Next

'給報表中的變量賦值,不是字段

objcrreport.ParameterFields(1).AddCurrentValue ("Global Soft")
objcrreport.ParameterFields(2).AddCurrentValue ("wdtking")

'設置報表數據源
objcrreport.Database.SetDataSource rs

'設置報表的外觀
objcrreport.LeftMargin = 10
objcrreport.RightMargin = 10
CRViewer91.EnableExportButton = True
CRViewer91.EnableSelectExpertButton = False
CRViewer91.DisplayGroupTree = False
CRViewer91.EnableAnimationCtrl = False
CRViewer91.EnableCloseButton = False
CRViewer91.EnableGroupTree = False
CRViewer91.EnableHelpButton = False
CRViewer91.EnableRefreshButton = False
CRViewer91.EnableNavigationControls = False
CRViewer91.EnablePopupMenu = False
CRViewer91.EnableSearchControl = False
CRViewer91.EnableSearchExpertButton = False
CRViewer91.EnableSelectExpertButton = False
CRViewer91.DisplayTabs = False

'------------------------------------

CRViewer91.ReportSource = objcrreport
CRViewer91.ViewReport
End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章