我正在尝试使用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
。我一直在谷歌周围徘徊一段时间,但似乎没有其他人有这种问题。
答案 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)
始终有效!