我在我的vb项目中遇到了一个问题,因为主题明确指出我在一个报表查看器中以一种形式指定了许多报表时遇到了问题。 很难创建多种表单并在每种表单中添加报表查看器。
我有100多个reports.rdlc,并希望通过在组合框或不同标准中选择多个选项在一个报告查看器中显示它。
答案 0 :(得分:3)
如果您希望每次更改组合框中的报告时都显示相同的表单窗口,请在每次生成.rdlc报告时创建该表单的新实例。
单击此按钮时,将创建两个报告。将从YourFirstReport()
方法生成一份报告,从YourSecondReport()
生成另一份报告。两者都使用rv
的新实例从同一表单中使用相同的ReportViewer1控件。
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
。绿色圆圈显示我弹出的报告。这两份报告都采用相同的形式。
答案 1 :(得分:0)
您可以创建一个ReportViewer并在运行时设置其属性:
然后你可以 .RefreshReport()。
答案 2 :(得分:0)
正如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报告路径更改为其他报告名称。