0

我使用 VSS reportviewer 创建了一个报告。此报告有一个参数 - 用户名。

这个想法是,当用户单击Print图标打印报告时,根据他/她的登录用户名,仅显示属于他/她的记录以供打印。

我用硬编码值测试了 .rdlc,它工作正常。

我正在尝试将此报告与我的 .net 应用程序集成,但遇到以下错误:

Value cannot be null. Parameter name: reportParameters

此错误在此行:

ReportViewer1.LocalReport.SetParameters(params)

相关数据如下。

    Protected Sub btnUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUser.Click
        which.Value = "U"
        Call Run_Report("")
    End Sub

Sub Run_Report(ByVal sel As String)
    ReportViewer1.Reset()
    ReportViewer1.LocalReport.DataSources.Clear()
    Dim params(0) As ReportParameter

    Select Case which.Value
        Case "U"
            ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("MyReporttSet", ObjectDataSource1.ID))
            ReportViewer1.LocalReport.ReportPath = "MyReport.rdlc"
            ReportViewer1.LocalReport.Refresh()
            ReportViewer1.LocalReport.SetParameters(params)
    End Select
End Sub

有想法该怎么解决这个吗?

提前非常感谢。

4

2 回答 2

1

问题是在行

Dim params(0) As ReportParameter

您正在创建一个 reportParameter 对象,但没有对其进行初始化。看看它是否有构造函数然后你可以调用

Dim params(0) As New ReportParameter()

那么 params 将不会是什么

于 2013-09-16T19:47:08.223 回答
0
If Not String.IsNullOrEmpty(ddlcust.SelectedValue) Then
    param(0) = New SqlParameter("@custnam", ddlcust.SelectedValue)
Else
    param(0) = New SqlParameter("@custnam", DBNull.Value)
End If
于 2013-09-17T03:22:47.690 回答