我创建了一个基于业务对象的报告 - 这很好用。我现在正在尝试添加一个将报告直接呈现为 PDF 的按钮(在 winforms 应用程序中)。我知道我需要做什么 - 在代码中我正在创建一个ReportViewer
,设置DataSource
,指定报告(它是一个嵌入式资源),然后将报告呈现为一个字节数组,然后再用于将字节数组System.IO.File.WriteAllBytes
刷新到磁盘。我挂断的一件事是如何正确指定对象的实例?我不断收到“报告处理期间发生错误”错误。在IntelliTrace
我可以看到抛出异常“没有为数据源'IssRep'提供数据源实例”(IssRep
是报告中的数据集名称。这是代码:
Dim warning As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimetype As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim viewer As New ReportViewer
Dim bs As New BindingSource
bs.DataSource = issuedet
Dim rds As New ReportDataSource
rds.Value = bs
viewer.LocalReport.DataSources.Add(rds)
viewer.ProcessingMode = ProcessingMode.Local
viewer.LocalReport.ReportEmbeddedResource = "FRSFE.SR.rdlc"
Dim pdfbytes As Byte()
Try
pdfbytes = viewer.LocalReport.Render("PDF", Nothing, mimetype, encoding, extension, streamids, warning)
File.WriteAllBytes("C:\Shared\FRS\SR.PDF", pdfbytes)
Catch ex As Exception
MsgBox(ex.Message)
End Try
我很确定我坚持的任何事情都很简单,因为我对 .NET 非常生疏,但我就是想不通!