如何在vb.net中的文本框中传递crystalreport中textfield中的值

时间:2013-03-01 08:23:07

标签: vb.net parameters crystal-reports

我希望在vb.net的水晶报告中有一个字段,我希望在此文本字段中显示vb.net格式的textbox值。

我创建了名为“prog_user”的参数,并将其值设置为textbox.text,但它不显示任何内容。

继承我的代码我把它放在vb.net的report_viewer_shown事件中

Dim crpath, filepath As String



        Private Sub rpt_viewer_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown               

                       cryrpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
                        crpath = "D:\LEGAL\NLRC_new_022213\NLRC"
                        filepath = crpath & "\Legal Records.rpt"
                        cryrpt.Load(filepath)

                        cryrpt.RecordSelectionFormula = "{Command.CaseNo} = " & case_no
                        crviewer.ReportSource = cryrpt

                        Legal_Records1.SetParameterValue("prog_user", textbox1.text)
                        crviewer.Refresh()

end sub

如果这可能是什么问题?我的水晶报告中的其他数据显示数据库中的正确值。

3 个答案:

答案 0 :(得分:3)

在添加值

之前尝试清除它
With cryrpt
   .ParameterFields("prog_user").CurrentValues.Clear()
   .ParameterFields("prog_user").CurrentValues.Add(Textbox1.text)
End With

答案 1 :(得分:0)

尝试这样的事情

 cryrpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
 crpath = "D:\LEGAL\NLRC_new_022213\NLRC"
 filepath = crpath & "\Legal Records.rpt"
 cryrpt.Load(filepath)

 cryrpt.RecordSelectionFormula = "{Command.CaseNo} = " & case_no
 cryrpt.ParameterFields("prog_user").CurrentValues.Clear()
 cryrpt.ParameterFields("prog_user").CurrentValues.Add(textbox1.text)

 crviewer.ReportSource = cryrpt
 crviewer.Refresh()

答案 2 :(得分:0)

这将使用文本框信息。与CR:

    Dim report As New CrystalReport1
    Dim objText As CrystalDecisions.CrystalReports.Engine.TextObject = report.ReportDefinition.Sections(1).ReportObjects("Text1")
    objText.Text = Me.TextBox1.Text
    FrmPrint.CrystalReportViewer1.ReportSource = report
    FrmPrint.Show()