我希望自动以pdf(或任何其他便携式格式)的形式获得SSRS报告。我的意思是当用户按下按钮而不是在报表视图中查看报表时,它应该转换为pdf
如果可能,请给我Vb.Net代码。
欢迎任何帮助!
由于
答案 0 :(得分:1)
请尝试此代码。
Private Sub GenerateReport(ParamList as hashtable)
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim historyID As String = Nothing
Dim deviceInfo As String = Nothing
Dim format As String = "PDF"
Dim results As Byte()
Dim encoding As String = String.Empty
Dim mimeType As String = String.Empty
Dim extension As String = String.Empty
Dim warnings As ReportExecution.Warning() = Nothing
Dim streamIDs As String() = Nothing
Dim filename As String = "C:\MyReport.pdf" ' Change to where you want to save
Dim _reportName As String = "/Sales/MyReport" ' Change to be your report
Dim _historyID As String = Nothing
Dim _forRendering As Boolean = False
Dim _values As ReportingService.ParameterValue() = Nothing
Dim _credentials As ReportingService.DataSourceCredentials() = Nothing
Dim _parameters As ReportingService.ReportParameter() = Nothing
_parameters = rs.GetReportParameters(_reportName, _historyID, _forRendering, _values, _credentials)
Dim ei As ReportExecution.ExecutionInfo = rsExec.LoadReport(_reportName, historyID)
Dim parameters(_parameters.Length - 1) As ReportExecution.ParameterValue
for param as integer = 0 to _parameters.count - 1
parameters(param) = New ReportExecution.ParameterValue
parameters(param).Label = _parameters(param).name
parameters(param).Name = _parameters(param).name
parameters(param).Value = ParamList(param)
next
rsExec.SetExecutionParameters(parameters, "en-us")
results = rsExec.Render(format, deviceInfo, extension, mimeType, encoding, warnings, streamIDs)
Dim stream As New System.IO.FileStream(filename, IO.FileMode.OpenOrCreate)
stream.Write(results, 0, results.Length)
stream.Close()
End Sub