2

我想在 vb.net 的水晶报表中有一个字段,我想在这个文本字段中显示 vb.net 表单中文本框的值。

我创建了名为“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

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

4

3 回答 3

3

在添加值之前尝试清除它

With cryrpt
   .ParameterFields("prog_user").CurrentValues.Clear()
   .ParameterFields("prog_user").CurrentValues.Add(Textbox1.text)
End With
于 2013-08-28T03:22:48.967 回答
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()
于 2013-03-04T20:36:27.693 回答
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()
于 2013-04-13T04:22:14.857 回答