将 rdlc 转换为 pdf 后 ReportViewer 不显示
ReportViewer not displaying after converting rdlc to pdf
我有一个 rdlc 报告,我刚从 vs 2010 迁移到 vs 2012,我正在使用一种方法将 rdlc 文件转换为 pdf 文件并通过电子邮件发送报告。
电子邮件已成功发送,但报告出现此错误:"Referencia a objeto no establecida como instancia de un objeto"。
我猜是我将 rdlc 文件转换为 pdf 时出现问题,然后无法读取报告。
这是我将rdlc转pdf的方法
private string ExportReportToPDF(string reportName)
{
try
{
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes = ReportViewer1.LocalReport.Render(
"PDF", null, out mimeType, out encoding, out filenameExtension,
out streamids, out warnings);
string filename = Path.Combine(Path.GetTempPath(), reportName)+".pdf";
using (var fs = new FileStream(filename, FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
return filename;
}
catch (Exception err)
{
// Throws error
}
}
之后,我将文件添加到邮件中并发送。
有什么建议吗?
我不知道为什么,但有些东西导致 reportviewer 在获取要转换为 pdf 的字节后无法正确呈现。
在尝试了不同的解决方法后,我发现我只需要再次刷新我的报告查看器,所以在调用 ExportToPDF 方法并发送邮件后,我添加了以下行:
ReportViewer1.LocalReport.Refresh();
我有一个 rdlc 报告,我刚从 vs 2010 迁移到 vs 2012,我正在使用一种方法将 rdlc 文件转换为 pdf 文件并通过电子邮件发送报告。
电子邮件已成功发送,但报告出现此错误:"Referencia a objeto no establecida como instancia de un objeto"。
我猜是我将 rdlc 文件转换为 pdf 时出现问题,然后无法读取报告。
这是我将rdlc转pdf的方法
private string ExportReportToPDF(string reportName)
{
try
{
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes = ReportViewer1.LocalReport.Render(
"PDF", null, out mimeType, out encoding, out filenameExtension,
out streamids, out warnings);
string filename = Path.Combine(Path.GetTempPath(), reportName)+".pdf";
using (var fs = new FileStream(filename, FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
return filename;
}
catch (Exception err)
{
// Throws error
}
}
之后,我将文件添加到邮件中并发送。
有什么建议吗?
我不知道为什么,但有些东西导致 reportviewer 在获取要转换为 pdf 的字节后无法正确呈现。
在尝试了不同的解决方法后,我发现我只需要再次刷新我的报告查看器,所以在调用 ExportToPDF 方法并发送邮件后,我添加了以下行:
ReportViewer1.LocalReport.Refresh();