0

你能看看我的编码,让我知道我错过了什么或做错了吗?

我有一个从 ReportViewer 控件调用的 SSRS 报告,并且该控件的 ProcessingMode 是 Remote。该报告的数据集中还有 1 个参数。

在代码中,我放置了一个 MsgBox 以确保代码正在查找参数并返回参数名称。我试图将 10 的值粘贴到 playerID 10 的参数中。该播放器的数据确实存在。

我相信我需要添加更多代码才能完成这项工作,但我不确定还要添加什么。

当代码执行时,会显示报告,但报告中不显示任何数据。

这是编码:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim paramList As Generic.List(Of ReportParameter) = New Generic.List(Of ReportParameter)()

    With Me.ReportViewer1
        .ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote

        With .ServerReport
            Dim pinfo As ReportParameterInfoCollection = .GetParameters()

            For Each p As ReportParameterInfo In pinfo
                MsgBox(p.Name)
                paramList.Add(New ReportParameter(p.Name, 10))
            Next

            If paramList.Count > 0 Then
                .SetParameters(paramList)
            End If
        End With

        .ShowParameterPrompts = False
    End With
End Sub
4

1 回答 1

1

找到了一个解决方案,虽然花了一段时间才找到它。

这些代码行将使它工作:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim rpParameters = New Microsoft.Reporting.WinForms.ReportParameter

    rpParameters.Name = "PlayerID"
    rpParameters.Values.Add(10)

    Me.ReportViewer1.ShowParameterPrompts = False
    Me.ReportViewer1.ServerReport.SetParameters(rpParameters)
    Me.ReportViewer1.RefreshReport()
End Sub
于 2012-04-12T10:44:55.897 回答