如何将多个reports.rdlc设置为一个报表查看器(在编码中)

时间:2013-05-27 07:01:34

标签: vb.net

我在我的vb项目中遇到了一个问题,因为主题明确指出我在一个报表查看器中以一种形式指定了许多报表时遇到了问题。 很难创建多种表单并在每种表单中添加报表查看器。

我有100多个reports.rdlc,并希望通过在组合框或不同标准中选择多个选项在一个报告查看器中显示它。

3 个答案:

答案 0 :(得分:3)

如果您希望每次更改组合框中的报告时都显示相同的表单窗口,请在每次生成.rdlc报告时创建该表单的新实例。


按钮1单击

单击此按钮时,将创建两个报告。将从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

rv.YourFirstReport()

Public Sub YourFirstReport()
    ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.YourFirstReportName"
    '...
    'And so on..
End Sub

rv.YourSecondReport()

Public Sub YourSecondReport()
    ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.YourSecondReportName"
    '...
    'And so on..
End Sub

以我的例子为例,红色方块有一个按钮,每次点击它都会产生frmReportViewer。绿色圆圈显示我弹出的报告。这两份报告都采用相同的形式。 Multiple reports in 1 form

答案 1 :(得分:0)

您可以创建一个ReportViewer并在运行时设置其属性:

  • rldc文件的路径: .LocalReport.ReportPath
  • 报告数据源: .LocalReport.DataSources
  • 报告参数: .LocalReport.SetParameters
  • 其他属性:例如 .LocalReport.EnableExternalImages

然后你可以 .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报告路径更改为其他报告名称。