这是VB代码,当然在你的报表设计中,得先有一个fldComName的字段定义 Dim fldObj As FormulaFieldDefinition fldObj = rptDoc.DataDefinition.FormulaFields("fldComName") fldObj.text = "'" & 字串值 & "'" ‘注意,如果是传递一个常量字串,前后要加引号
注:p_st_month 是报表中定义的参数,Textmonth是页面的文本框。Hashtable t = new Hashtable(); t.Add("p_st_month", Textmonth.Text); BuildReportParameters(CrystalReportViewer1, t);这样参数就可以传入报表了
在.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
你可以用.DataDefinition.ParameterFields来向一个ReportClass传递参数。
Dim fldObj As FormulaFieldDefinition
fldObj = rptDoc.DataDefinition.FormulaFields("fldComName")
fldObj.text = "'" & 字串值 & "'" ‘注意,如果是传递一个常量字串,前后要加引号
t.Add("p_st_month", Textmonth.Text);
BuildReportParameters(CrystalReportViewer1, t);这样参数就可以传入报表了
(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