如何将值从表单传递给crystal报表作为参数? [英] how to pass value from form to the crystal report as parameter?
问题描述
我曾尝试过以下代码,但它无法正常工作。
代码中我应该知道什么?
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屋!