我现在装的是水晶报表9,可是在VB添加部件时找不到象以前水晶报表8.5所示的那个Rpt控件,请问高手如何能在窗口上添加上水晶报表9的RPT控件。

解决方案 »

  1.   

    到我的日志下个代码看看,看看工程里引用了哪些组件,使用了哪些控件
    http://blog.csdn.net/babyt/archive/2004/09/12/101771.aspx还有些文章你可以参考 :)
      

  2.   

    显示方式一: 情况为报表直接在工程设计器中制作 (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
      

  3.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195585
      

  4.   

    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