我有一份报告,需要多次运行并另存为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()
万一
结束尝试
结束子

07-27 13:34