我有一份报告,需要多次运行并另存为PDF。我目前正在以编程方式将报告生成为PDF,但是希望保存报告而无需用户每次都手动选择保存选项。
我用来将单个报告呈现为PDF的代码是:
Dim warnings As Microsoft.Reporting.WebForms.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()
Dim lr As New Microsoft.Reporting.WebForms.LocalReport
deviceInfo = "<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>"
bytes = ReportViewer1.LocalReport.Render("PDF", deviceInfo, mimeType, encoding, extension, streamids, warnings)
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.BinaryWrite(bytes)
Response.Flush()
Response.Close()
我当时想我可以循环运行并每次保存PDF。
最佳答案
您在这里有什么问题?是它不起作用吗?
这是我们在2005年所做的一个示例。我们定义了一个名为rptViewer1的控件,根据您的需要,该控件是否可见。 strFormat应该包含“ PDF”和strNomFicher的完整路径。
顺便说一句,变量名和函数是法文,但是仍然可以使用:)
公共子CreerFichierRapport(ByVal strNomFichier作为字符串,ByVal strFormat作为字符串)
Dim bytes()作为字节
Dim strDeviceInfo As String =“”
Dim strMimeType As String =“”
Dim strEncoding As String =“”
Dim strExtension As String =“”
Dim strStreams()作为字符串
昏暗警告()作为警告
昏暗的oFileStream作为FileStream
_stream =新列表(流)
尝试
字节= rptViewer1.LocalReport.Render(strFormat,strDeviceInfo,strMimeType,strEncoding,strExtension,strStreams,警告)
oFileStream =新的FileStream(strNomFichier,FileMode.Create)
oFileStream.Write(bytes,0,bytes.Length)
_stream.Add(oFileStream)
最后
如果不是IsNothing(oFileStream)然后
oFileStream.Close()
oFileStream.Dispose()
万一
结束尝试
结束子