0

以下のコードを使用して、あるアプリケーションから別のアプリケーションに RDLC ファイルを呼び出しました。以下のコードは、1 つのアプリケーションに存在します。RDLC ファイルは別のアプリケーションに存在します。

 Dim RptVwr As New Microsoft.Reporting.WebForms.ReportViewer()
 Dim ds As DataSet = OBJ.GetInventoryProductDetails(plannerCode)
 Dim RptDtSrc As New Microsoft.Reporting.WebForms.ReportDataSource()
 RptDtSrc.Name = "XXXXXX1"
 RptDtSrc.Value = ds.Tables(0)
 RptVwr.LocalReport.DataSources.Add(RptDtSrc)

 Dim RptDtSrc1 As New Microsoft.Reporting.WebForms.ReportDataSource()
 RptDtSrc1.Name = "XXXXXX2"
 RptDtSrc1.Value = ds.Tables(1)
 RptVwr.LocalReport.DataSources.Add(RptDtSrc1)

 RptVwr.LocalReport.ReportPath = "http://localhost:58154/RDLC/GLA_InspectionList.rdlc"
 RptVwr.LocalReport.EnableHyperlinks = True
 Dim excelcontent As Byte() = RptVwr.LocalReport.Render("Excel", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)

 Dim FS As FileStream
 FS = New FileStream(Save, FileMode.Create)
 FS.Write(excelcontent, 0, excelcontent.Length)
 FS.Close()

しかし、上記のコードは Excel ファイルの生成中に失敗します。上記の問題を修正するにはどうすればよいですか?

4

1 に答える 1

0

a を追加するのを忘れているDataSourceため、レポートに表示するものが何もないと思います。

RptVwr.LocalReport.DataSources.Add(myDataSource)

更新:この問題は、2 番目のプロジェクトが DataSet で異なるクラスを使用していることが原因である可能性があると考えています。正しいクラスとプロパティを使用していることを確認してください。

おそらく、テストする単純なデータソースを追加することでテストできます。たとえば、次のような行に沿ったもの:

RptVwr.LocalReport.Add(New ReportDataSource("MyClass", New List(Of [MyClass])() From { _
    New [MyClass]() With { _
        Key .MyProp = "MyProp" _
    } _
}))
于 2015-09-29T09:13:19.900 に答える