1

我创建了一个基于业务对象的报告 - 这很好用。我现在正在尝试添加一个将报告直接呈现为 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 非常生疏,但我就是想不通!

4

1 回答 1

1

rds.Name = "IssRep"添加到viewer.LocalReport.DataSources.

于 2013-10-08T13:20:02.743 回答