将多个参数传递给报表查看器时出错

时间:2014-08-03 09:07:39

标签: vb.net reportviewer

我正在尝试使用VB.net及其报告查看器来学习VS 2013。我想知道如何将字符串传递给参数。并希望转向其他方法/程序。无论如何,我对这个特定的代码块有问题:

With Me.ReportViewer1.LocalReport
    .ReportPath = "C:\Users\Kim\Documents\Visual Studio 2013\Projects\Tests\Tests\Report1.rdlc"
    .DisplayName = "Test Report"
    .DataSources.Clear()
End With
Me.ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.Normal)
Dim rpT As New ReportParameter("rpTitle", "Huehuehue")
Dim rpD As New ReportParameter("rpDate", "This day")

Dim HeaderParams As ReportParameter() = {rpT, rpD}
For Each param As ReportParameter In HeaderParams
    ReportViewer1.LocalReport.SetParameters(param)
Next

如果我发表评论Dim rpD As New ReportParameter("rpDate", "This day")并更改此行Dim HeaderParams As ReportParameter() = {rpT}rpT部分将在报告表单中正确显示。如果我排除rpT,结果会相对相同。如果我同时使用这两个,我会在报告中获得Some parameters or credentials have not been specified。我一直在谷歌周围徘徊一段时间,但似乎没有其他人有这种问题。

2 个答案:

答案 0 :(得分:0)

解决了它。显然你必须在New ReportParameter()中将其声明为SetParameters。我不知道如何在那里使用数组。但是,我仍然需要列出所有参数,因此这是多余的。如果有人可以改善这一点,那就太好了。

    ReportViewer1.LocalReport.SetParameters(New ReportParameter() {rpT, rpD})

答案 1 :(得分:0)

这是我发送参数值的方式:

1)创建ReportParameter

类型的通用列表

2)使用参数名称和值和可见性

将新参数添加到列表中

3)设置LocalReport的参数

    Dim paramList As New Generic.List(Of ReportParameter)
    paramList.Add(New ReportParameter("ReportTitle", stgReportTitle, True))
    paramList.Add(New ReportParameter("ReportFooter", stgReportFooter, True))
    Me.vwrReport.LocalReport.SetParameters(paramList)

始终有效!