我在我的 vb 项目中遇到了一个问题,因为从主题来看,很明显我在以一种形式在一个报表查看器中指定多个报表时遇到了问题。很难创建多个表单并在每个表单中添加报表查看器。
我有超过 100 个reports.rdlc,并希望通过在组合框中选择多个选项或不同的标准来在一个报表查看器中显示它。
我在我的 vb 项目中遇到了一个问题,因为从主题来看,很明显我在以一种形式在一个报表查看器中指定多个报表时遇到了问题。很难创建多个表单并在每个表单中添加报表查看器。
我有超过 100 个reports.rdlc,并希望通过在组合框中选择多个选项或不同的标准来在一个报表查看器中显示它。
如果您希望每次更改组合框中的报告时都显示相同的表单窗口,只需在每次生成 .rdlc 报告时创建该表单的新实例。
单击此按钮时,它将创建两个报告。一份报告将由该方法生成,YourFirstReport()
另一份由YourSecondReport()
. 两者都使用同一表单中的相同 ReportViewer1 控件,并使用rv
.
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Create instance "rv" of your report viewer form
Dim rv As New frmReportViewer
rv.YourFirstReport()
rv = New frmReportViewer
rv.YourSecondReport()
End Sub
Public Sub YourFirstReport()
ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.YourFirstReportName"
'...
'And so on..
End Sub
Public Sub YourSecondReport()
ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.YourSecondReportName"
'...
'And so on..
End Sub
以我的例子为例,红色方块有一个按钮,frmReportViewer
每次点击它都会生成我的。绿色圆圈显示我弹出的报告。这两个报告都使用相同的表格。
正如tezzo所说,
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.ReportPath = "Report2.rdlc"
ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", CType(d1, DataTable)))
ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WebForms.ReportParameter("ReportCriteria", criteria))
ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WebForms.ReportParameter("FileDate", fileDateString))
ReportViewer1.Visible = True
ReportViewer1.DataBind()
将 localreport 报告路径更改为不同的报告名称是您真正需要的。
您可以创建一个 ReportViewer 并在运行时设置他的属性:
然后你可以.RefreshReport()。