简体   繁体   English

来自窗体的TextBox值,并使用VB.NET将其显示到Crystal Reports

[英]TextBox value from a form and display it to Crystal Reports using VB.NET

I created a parameter in Crystal Report named IID . 我在Crystal Report中创建了一个名为IID的参数。 But when the report loads it has nothing to display with. 但是,当报表加载时,没有任何内容可显示。

This is my code : 这是我的代码:

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()

You are assigning the report object to viewer and refreshing at two places. 您将报表对象分配给查看器并在两个位置刷新。 Assign the report object ( cryRpt ) to viewer ( CrystalReportViewer1 ) only in the last and remove refresh in the last too. 仅在最后一次将报表对象( cryRpt )分配给查看器( CrystalReportViewer1 ),并在最后一次删除刷新。 Refresh is likely to drop all your modifications to the report object ie any filters, parameters etc. Modify your code as below: 刷新可能会将您对报表对象的所有修改(即任何过滤器,参数等)删除。按如下所示修改代码:

cryRpt.Load("C:\Users\IEEC\Desktop\Sys\InventorySys\InventorySys\rptPrntIss.rpt")
'REMOVE REPORTSOURCE AND REFRESH STATEMENTS HERE
Dim crParameterFieldDefinitions As ParameterFieldDefinitions

and

crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
CrystalReportViewer1.ReportSource = cryRpt
'REMOVE REFRESH HERE

Report Part Create A New Parameter 'TestParameter' on your report then put Your desire location. 报表部件报表上创建一个新参数'TestParameter',然后放置所需的位置。

VB.Net Part now Click on Project Menu and go Your Project Propertise and click Setting then setup this format 现在, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM