我想动态更改crystalreport的文本对象值。我使用了这段代码
PrintBillReceipt.SetParameterValue("?test", TextBox1.Text)
并返回错误"对非共享成员的引用需要对象引用。"指向" PrintBillReceipt.SetParameterValue"
导入CrystalDecisions.CrystalReports.Engine和CrystalDecisions.Shared
答案 0 :(得分:0)
要动态更改文本对象的值,请按以下步骤操作:
例如,如果对象位于Section2(页眉)中且对象名称为Text1,则使用下面的代码从位于表单上的TextBox中为其赋值。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Report1 As New CrystalReport1
Dim TextObject1 As CrystalDecisions.CrystalReports.Engine.TextObject =
Report1.Section2.ReportObjects("Text1")
TextObject1.Text = TextBox1.Text
CrystalReportViewer1.ReportSource = Report1
End Sub
修改强>
如果对象是参数而不是文本字段,那么您应该从"?test"中删除问号。
PrintBillReceipt.SetParameterValue("test", TextBox1.Text)
答案 1 :(得分:0)
将报告对象转换为文本对象,然后设置文本。
这是一个例子:
Dim txtObj = TryCast(rpt.ReportDefinition.ReportObjects.Item("Text1"), TextObject)
txtObj.Text = TextBox1.Text