如何将值从表单传递给crystal报表作为参数? [英] how to pass value from form to the crystal report as parameter?

查看:55
本文介绍了如何将值从表单传递给crystal报表作为参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾尝试过以下代码,但它无法正常工作。

代码中我应该知道什么?



form1上有crystalreportviewer1的代码。

CrystalReportViewer1.Refresh()

Dim paramfields As ParameterFields = Me.CrystalReportViewer1.ParameterFieldInfo

Dim param As New ParameterField

param.Name =result

Dim param_value As New ParameterDiscreteValue

param_value.Value = LoginForm.UsernameTextBox .Text

param.CurrentValues.Add(param_value)

paramfields.Add(param)

CrystalReportViewer1.Refresh()

解决方案

看起来非常接近......我就是这样做的(VS2010)。



  Dim  crDoc  As  CrystalDecisions.CrystalReports.Engine.ReportClass 
昏暗 pvParamValue 作为 CrystalDecisions。共享 .ParameterValues
Dim pdvParamDiscreteValue As New CrystalDecisions。共享 .ParameterDiscreteValue

crDoc = new CRYSTALREPORTNAME

pdvParamDiscreteValue.Value = FIELDNAME.tostring
pvParamValue.Add(pdvParamDiscreteValue)
crDoc.DataDefinition.ParameterFields( @ P_PARAMETERNAME)。ApplyCurrentValues(pvParamValue)


试试这个.......... 。







Private Sub btn_save_print_Click(ByVal sender As System.Object,ByVal e As System.EventArgs )处理btn_save_print.Click



Dim obj As New Letter_print





obj.Code = txt_code.text

obj.doc_nm = txt_doc_name.Text

obj.address = txt_address.Text



obj.ShowDialog(Me)



结束子



公共类_Print

Public CodeAs String =

公共doc_nm As String =

公共地址As String =





Private Sub Letter_Print_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)处理MyBase.Load

Dim k作为新的Letter_report



k.SetParameterValue(code1,code



k.SetParameterValue(doc_nm1,doc_nm)

k.SetParameterValue(address1,地址)





CrystalReportViewer1.ReportSource = k



End Sub

End Class

 CrystalReportViewer1.Refresh()
Dim rpt As ReportDocument
rpt.FileName = c:\Users\sandy\BCA\CBT\result2.rpt
Dim paramDV As ParameterDiscreteValue()
paramDV.Value = LoginForm.UsernameTextBox.Text
rpt.Refresh ()
Dim paramfields As ParameterFields = Me .CrystalReportViewer1.ParameterFieldInfo
Dim param As ParameterField
Dim 参数 As ParameterFields
param.Name = < span class =code-string> result
Dim param_value As ParameterDiscreteValue
param_value.Value = LoginForm.UsernameTextBox.Text
param.CurrentValues.Clear()
param.CurrentValues.Add( param_value)
params.Add(param)
CrystalReportViewer1.ParameterFieldInfo = params
rpt.Refresh()
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.ReuseParameterValuesOnRefresh =


I had tried the following code but its not working.
what should i have to chnges in the code?

code on the form1 that have crystalreportviewer1.
CrystalReportViewer1.Refresh()
Dim paramfields As ParameterFields = Me.CrystalReportViewer1.ParameterFieldInfo
Dim param As New ParameterField
param.Name = "result"
Dim param_value As New ParameterDiscreteValue
param_value.Value = LoginForm.UsernameTextBox.Text
param.CurrentValues.Add(param_value)
paramfields.Add(param)
CrystalReportViewer1.Refresh()

解决方案

Looks pretty close... This is how I do it (VS2010).

Dim crDoc As CrystalDecisions.CrystalReports.Engine.ReportClass
Dim pvParamValue As New CrystalDecisions.Shared.ParameterValues
Dim pdvParamDiscreteValue As New CrystalDecisions.Shared.ParameterDiscreteValue

crDoc = new CRYSTALREPORTNAME

pdvParamDiscreteValue.Value = FIELDNAME.tostring
pvParamValue.Add(pdvParamDiscreteValue)
crDoc.DataDefinition.ParameterFields("@P_PARAMETERNAME").ApplyCurrentValues(pvParamValue)


Try this...........



Private Sub btn_save_print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_save_print.Click

Dim obj As New Letter_print


obj.Code=txt_code.text
obj.doc_nm = txt_doc_name.Text
obj.address = txt_address.Text

obj.ShowDialog(Me)

End Sub

Public Class _Print
Public CodeAs String = ""
Public doc_nm As String = ""
Public address As String = ""


Private Sub Letter_Print_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim k As New Letter_report

k.SetParameterValue("code1,code

k.SetParameterValue("doc_nm1", doc_nm)
k.SetParameterValue("address1", address)


CrystalReportViewer1.ReportSource = k

End Sub
End Class


CrystalReportViewer1.Refresh()
     Dim rpt As New ReportDocument
     rpt.FileName = "c:\Users\sandy\BCA\CBT\result2.rpt"
     Dim paramDV As New ParameterDiscreteValue()
     paramDV.Value = LoginForm.UsernameTextBox.Text
     rpt.Refresh()
     Dim paramfields As ParameterFields = Me.CrystalReportViewer1.ParameterFieldInfo
     Dim param As New ParameterField
     Dim params As New ParameterFields
     param.Name = "result"
     Dim param_value As New ParameterDiscreteValue
     param_value.Value = LoginForm.UsernameTextBox.Text
     param.CurrentValues.Clear()
     param.CurrentValues.Add(param_value)
     params.Add(param)
     CrystalReportViewer1.ParameterFieldInfo = params
     rpt.Refresh()
     CrystalReportViewer1.ReportSource = rpt
     CrystalReportViewer1.ReuseParameterValuesOnRefresh = True


这篇关于如何将值从表单传递给crystal报表作为参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆