想问你一个问题,水晶报表9调用外部的*.RPT文件时,如何传递参数给RPT文件,在4.6中我知道如何做,但在9.0中不知道。

解决方案 »

  1.   

    相同,要看具体情况,例如crystal
    (1)、ttx类型,传递rs
    (2)、存储过程类型,传递参数同8.5,原先怎么传就怎么传
      

  2.   

    to xuewuya(血乌鸦) :
    我想知道的就是这个,如何添加,如何调用,谢谢
      

  3.   

    先引用
    crystal report viewer control 9
    crystal reports 9 activex designer run time library   Dim CryApp As New CRAXDRT.Application
       Dim Report As CRAXDRT.ReportReport.ParameterFields.GetItemByName("@test1").AddCurrentValue (Form2.Text1.Text)
        Dim conn As New ADODB.Connection
        Dim adoRS As New ADODB.Recordset    strCnn = "Provider=sqloledb;Data Source=localhost;Initial Catalog=permit;User Id=sa;Password=;"
        conn.Open strCnn
        adoRS.Open "select  * from newjypermit", conn, adOpenDynamic, adLockBatchOptimistic
       Report.Database.SetDataSource adoRS    Screen.MousePointer = vbHourglass
        
        Form3.CRViewer.ReportSource = Report
      
        Form3.CRViewer.ViewReport
        Screen.MousePointer = vbDefault
       Form3.Show
      

  4.   

    同意楼上,不过如果程序的数据源和原来的RPT数据源不一样的话,在预览时点一下刷新按钮才可以的。
      

  5.   

    如果还不是太明白的话你可以看一下水晶报表自带的例子,他本身有ADO设置数据源的例子。
      

  6.   

    Report.ParameterFields.GetItemByName("@test1").AddCurrentValue (Form2.Text1.Text)这句话不是很明白,@test1是什么,运行时出现“object variable or with block variable not set”错误提示
      

  7.   

    @test1是水晶报表的参数,如动态改变报表标题