我正在使用Asp.net MVC 4。
我有个片段:
var data = // fill my data.
var rds = new ReportDataSource("MyDataset", data);
var viewer = new ReportViewer();
viewer.LocalReport.Refresh();
viewer.LocalReport.DataSources.Clear();
viewer.LocalReport.DataSources.Add(rds);
viewer.LocalReport.ReportPath = @"Reports/Report1.rdlc";
string mimeType, encoding, extension;
string[] streamids;
Warning[] warnings;
var buffer = viewer.ServerReport.Render("PDF", "C:", out mimeType, out encoding, out extension, out streamids, out warnings);但是方法Render抛出一个异常:
Microsoft.Reporting.WebForms.MissingReportSourceException:尚未指定报表定义的来源。
使用这些链接我尝试过:
尝试1:
viewer.LocalReport.ReportPath = @"../Reports/Report1.rdlc";尝试2:
viewer.LocalReport.ReportPath = @"../../Reports/Report1.rdlc";尝试3:
viewer.LocalReport.ReportPath = @"~/Reports/Report1.rdlc";尝试4:
viewer.LocalReport.ReportPath = Server.MapPath(@"~/Reports/Report1.rdlc");尝试5:
var fileName = Server.MapPath(@"~/Reports/Report1.rdlc");
using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
viewer.LocalReport.LoadReportDefinition(fs);
}然而,所有这些尝试都会引发相同的异常。
有人有什么想法吗?我几个小时试着让它正常工作。
发布于 2015-02-03 04:34:58
请确保您在使用
reportViewer1.LocalReport.ReportPath = @"path/reportName.rdlc"报表位于调试或发布的bin文件夹以外的场景
或者你可以用
reportViewer1.LocalReport.ReportPath = @"reportName.rdlc"当它在application.StartupPath
发布于 2014-05-05 16:26:38
试试这个:
var data = // fill my data.
var rds = new ReportDataSource("MyDataset", data);
var viewer = new ReportViewer();
viewer.LocalReport.Refresh();
viewer.LocalReport.DataSources.Clear();
viewer.LocalReport.DataSources.Add(rds);
string fileName= "Reports/Report1.rdlc";
FileStream S = new FileStream(Server.MapPath(fileName), FileMode.Open);
viewer.LocalReport.LoadReportDefinition(S);
S.Close();
string mimeType, encoding, extension;
string[] streamids;
Warning[] warnings;
var buffer = viewer.ServerReport.Render("PDF", "C:", out mimeType, out encoding, out extension, out streamids, out warnings);https://stackoverflow.com/questions/23477148
复制相似问题