ビジネス オブジェクトに基づくレポートを作成しました。これはうまくいきます。私は今、レポートをPDFに直接レンダリングするボタンを追加しようとしています(winformsアプリケーションで)。私は何をする必要があるかを知っています - コードで を作成しReportViewer
、 を設定しDataSource
、レポートを指定し (これは埋め込みリソースです)、レポートをバイト配列にレンダリングしてSystem.IO.File.WriteAllBytes
から、バイト配列をディスクにフラッシュします。私がハングアップしていることの 1 つは、オブジェクトのインスタンスを適切に指定するにはどうすればよいかということです。「レポートの処理中にエラーが発生しました」というエラーが表示され続けます。「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に非常に慣れていないので、私が立ち往生しているものは非常に単純であると確信していますが、それを理解することはできません!