you may add a parameter in you .rpt file, then transfer the parameter from .cs file to .rpt file.

解决方案 »

  1.   

    呜呜呜,我也正在被这个所困住,关注ing
      

  2.   

    水晶报表里面有专门传递参数的。
    你可以用.DataDefinition.ParameterFields来向一个ReportClass传递参数。
      

  3.   

    这是VB代码,当然在你的报表设计中,得先有一个fldComName的字段定义
    Dim fldObj As FormulaFieldDefinition
    fldObj = rptDoc.DataDefinition.FormulaFields("fldComName")
    fldObj.text = "'" & 字串值 & "'" ‘注意,如果是传递一个常量字串,前后要加引号
      

  4.   

    注:p_st_month 是报表中定义的参数,Textmonth是页面的文本框。Hashtable t = new Hashtable();
    t.Add("p_st_month", Textmonth.Text);
    BuildReportParameters(CrystalReportViewer1, t);这样参数就可以传入报表了
      

  5.   

    借楼主地面问dotAge(老朽) 兄一句:你的代码是写在.rpt中还是.vb中?请问,我能向.rpt中的一个文本text中传参数值吗?如何传,能给一个例子吗?谢谢
      

  6.   

    在.vb中。可以向文本框传值,以下示例为获得该文本对象:Private Function GetTextObject _ 
    (ByVal reportObjectName As String) As TextObject
       Dim text As TextObject   ' 按名称获取 ReportObject,将其转换为 TextObject,
       ' 并返回此对象。
       If TypeOf _
       (Report.ReportDefinition.ReportObjects. _ 
       Item(reportObjectName)) Is TextObject Then
          text = _ 
          Report.ReportDefinition.ReportObjects. _ 
          Item(reportObjectName)
          GetTextObject = text
       Else : GetTextObject = Nothing
       End If
    End Function赋值的话对textObject的text属性进行操作即可:GetTextObject("TextBoxName").text = "My string"但注意:
    CRYSTAL REPORTS FOR VSNET有一个BUG,就是向textObject传字串时,会被截断成该文本框设计时容纳字串的长度,如果你在设计的时候没有打入足够的空格,那就有可能字串显示不全,即使你选中了“自动增长CanGrow"选项也没有用。比如说,你设计时打了两个空格,那你赋值12345时,只会显示12,如果一个空格都不打,就什么也不显示,所以在此BUG未FIX之前,我只用公式字段,因为在设计时拼命打空格实在太烦。http://support.crystaldecisions.com/library/kbase/articles/c2010644.asp