[英]TextBox value from a form and display it to Crystal Reports using VB.NET
我在Crystal Report中创建了一个名为IID
的参数。 但是,当报表加载时,没有任何内容可显示。
这是我的代码:
Dim cryRpt As New rptPrntIss
cryRpt.Load("C:\Users\IEEC\Desktop\Sys\InventorySys\InventorySys\rptPrntIss.rpt")
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.Refresh()
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = frmInvntStocks.txtIID.Text
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item("IID")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.Refresh()
您将报表对象分配给查看器并在两个位置刷新。 仅在最后一次将报表对象( cryRpt
)分配给查看器( CrystalReportViewer1
),并在最后一次删除刷新。 刷新可能会将您对报表对象的所有修改(即任何过滤器,参数等)删除。按如下所示修改代码:
cryRpt.Load("C:\Users\IEEC\Desktop\Sys\InventorySys\InventorySys\rptPrntIss.rpt")
'REMOVE REPORTSOURCE AND REFRESH STATEMENTS HERE
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
和
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
CrystalReportViewer1.ReportSource = cryRpt
'REMOVE REFRESH HERE
报表部件在报表上创建一个新参数'TestParameter',然后放置所需的位置。
现在, VB.Net部件单击“项目”菜单,转到“项目属性”,然后单击“设置”,然后设置此格式
Private Sub btnShowReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowReport.Click Dim MyReport As CrystalDecisions.CrystalReports.Engine.ReportDocument = New DailyShadeCosting MyReport.SetParameterValue("TestParameter", TextBox6.Text) ShowReport(MyReport, filterstring, CrystalReportViewer1) End Sub Public Sub ShowReport(ByVal MyReport As CrystalDecisions.CrystalReports.Engine.ReportDocument, ByVal filterstring As String, ByVal CrystalReportViewer As CrystalDecisions.Windows.Forms.CrystalReportViewer) Dim myLogonInfo As New CrystalDecisions.Shared.TableLogOnInfo Dim myTable As Table For Each myTable In MyReport.Database.Tables myLogonInfo = myTable.LogOnInfo myLogonInfo.ConnectionInfo.ServerName = My.Settings.RptserverPath.ToString myLogonInfo.ConnectionInfo.DatabaseName = My.Settings.Database.ToString myLogonInfo.ConnectionInfo.UserID = My.Settings.DBUser.ToString myLogonInfo.ConnectionInfo.Password = My.Settings.DBPass.ToString myTable.ApplyLogOnInfo(myLogonInfo) Next myTable CrystalReportViewer.ReportSource = MyReport CrystalReportViewer.SelectionFormula = filterstring CrystalReportViewer.Refresh() End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.