我使用下面的代码将RDLC文件从一个应用程序调用到另一个应用程序。下面的代码驻留在一个应用程序中。 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文件生成期间,上面的代码失败了。如何解决上述问题?
答案 0 :(得分:0)
我相信您忘记添加DataSource
,因此您的报告中无法显示任何内容。
RptVwr.LocalReport.DataSources.Add(myDataSource)
更新:我认为问题可能是因为第二个项目在DataSet中使用了不同的类。确保您使用的是正确的类和属性。
也许您可以通过添加一个简单的数据源进行测试来测试它。例如,像这样的行:
RptVwr.LocalReport.Add(New ReportDataSource("MyClass", New List(Of [MyClass])() From { _
New [MyClass]() With { _
Key .MyProp = "MyProp" _
} _
}))