Rya*_*yan 2 vb.net asp.net reporting-services
我的代码在 Web 表单页面上设置 ServerReport 对象,然后将报告从 SSRS 呈现为 pdf。参数和报告名称通过 URL 传递。
Private Sub Page_Load(sender As Object, e As EventArgs)
Dim reportname As String
'Dim parameter(0) As ReportParameter
reportname = Request("reportname").ToString
Dim v As New ReportViewer
v.ProcessingMode = ProcessingMode.Remote
Dim serverreport As New ServerReport
serverreport = v.ServerReport
serverreport.ReportServerUrl = New Uri("http://xxxxxx:80/ReportServer")
serverreport.ReportPath = "/Reports/Aramid/Sheeter/" & reportname
Select Case reportname
Case Is = "NomexBlockCard" 'Or "NomexBlockLabel" Or "NomexInternalLabel"
Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(New ReportParameter("paramBlock", Request("paramBlock").ToString, False))
serverreport.SetParameters(paramList)
Case Is = "NomexRoutingData"
Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(New ReportParameter("paramWO", Request("paramWO").ToString, False))
serverreport.SetParameters(paramList)
End Select
serverreport.ReportServerCredentials = New ReportViewerCredentials(user name here, password here, "CORE")
Save(serverreport, "C:\WebReports\" & reportname & ".pdf")
'now print
Response.Redirect("reports.ashx?fileName=" & reportname)
End Sub
Public Sub Save(ByVal sr As ServerReport, ByVal savePath As String)
Try
Dim warnings As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim deviceInfo As String
Dim bytes As Byte()
deviceInfo = "True" '<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>"
bytes = sr.Render("PDF", Nothing, mimeType, _
encoding, extension, streamids, warnings)
Using Stream As New FileStream(savePath, FileMode.Create)
Stream.Write(Bytes, 0, Bytes.Length)
Stream.Close()
End Using
Catch ex As Exception
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
报告呈现并保存为 pdf,但参数值似乎并未在报告中使用。
我已经一遍又一遍地确认 paramBlock 中有一个值。
我不知道我做错了什么。
我是不是漏掉了一个步骤或者什么?
瑞安
当您的报告正在呈现和保存时,我假设凭据已正确设置。
您可以在保存报表之前使用ServerReport.GetParameters函数来检查参数(及其值/属性)的实际内容。
另外,请确保您设置了报告所需的每个参数(即使是隐藏的或内部的参数),并且每个参数值都在参数允许的值范围内(如果设置了限制)。
如果问题不在于传递参数,您可能需要查看报表本身以及它如何处理其参数。
归档时间: |
|
查看次数: |
1513 次 |
最近记录: |