如何将不同的报表打开到一个报表查看器控件中?

how to open different reports into one report viewer control?

我下面的代码有什么问题吗?

Private Sub LocalReport(ByVal digito As Integer)

    Dim relatorioCorrente = New Microsoft.Reporting.WinForms.ReportDataSource()

    ReportViewer1.LocalReport.DataSources.Clear()
    If (digito = 1) Then
        ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportViewer.rpt1.rdlc"
        mcv_modbusTableAdapter.Fill(geradorxmlDS.mcv_modbus)
        relatorioCorrente.Name = "geradorxmlDS"
        relatorioCorrente.Value = mcv_malhaBindingSource
        ReportViewer1.LocalReport.DataSources.Add(relatorioCorrente)
    ElseIf (digito = 2) Then
        ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportViewer.rpt2.rdlc"
        mcv_modbusTableAdapter.Fill(geradorxmlDS.mcv_modbus)
        relatorioCorrente.Name = "geradorxmlDS"
        relatorioCorrente.Value = mcv_modbusBindingSource
        ReportViewer1.LocalReport.DataSources.Add(relatorioCorrente)
    ElseIf (digito = 3) Then
        ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportViewer.rpt3.rdlc"
        mcv_registroTableAdapter.Fill(geradorxmlDS.mcv_registro)
        relatorioCorrente.Name = "geradorxmlDS"
        relatorioCorrente.Value = mcv_registroBindingSource
        ReportViewer1.LocalReport.DataSources.Add(relatorioCorrente)
    End If
    ReportViewer1.RefreshReport()

End Sub

这是我看到的错误:

"Could not provide any data source instance to the data source"

你为什么不尝试创建一个实例?

类似于:

If (digito = 1) Then
   Dim relatorioCorrente = New Microsoft.Reporting.WinForms.ReportDataSource()
   Dim MyViewer as ReporViewer1 = New ReportViewer1**
   MyViewer.LocalReport.DataSources.Clear()
   MyViewer.LocalReport.ReportEmbeddedResource = "ReportViewer.rpt1.rdlc"
   mcv_modbusTableAdapter.Fill(geradorxmlDS.mcv_modbus)
   relatorioCorrente.Name = "geradorxmlDS"
   relatorioCorrente.Value = mcv_malhaBindingSource
   MyViewer.LocalReport.DataSources.Add(relatorioCorrente)
   MyViewer.RefreshReport


ElseIf (digito = 2) Then
   same as above...

ElseIf (digito = 3) Then
   same as above
End If
ReportViewer1.RefreshReport()