我正在尝试使用此方法,但我对将参数传递给它的内容/方式感到困惑。
void SaveReport(Telerik.Reporting.Report report, string fileName)
{
ReportProcessor reportProcessor = new ReportProcessor();
Telerik.Reporting.InstanceReportSource instanceReportSource =
new Telerik.Reporting.InstanceReportSource();
instanceReportSource.ReportDocument = report;
RenderingResult result =
reportProcessor.RenderReport("PDF", instanceReportSource, null);
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
}
}
我试图传递我需要导出的报告的名称,这是以这种方式在库中:
第二次修改
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = "SS";
var report = BOMreports.Report321();
SaveReport(report, fileName );
}
但是我一直收到错误"无法在命名空间上访问方法"在var报告上。 我这样解决了吗?
答案 0 :(得分:1)
您似乎在BOMreports
类和名称空间相同的名称中存在冲突。由于您的命名空间与代码位于同一个程序集中,并且该类位于另一个程序集中,因此编译器会在您的代码中使用该名称时引用它。尝试使用其完全标识符访问该类:
namespace.BOMreports.Report321();
另外,请确保Report321
是一个返回Telerik.Reporting.Report
对象的静态方法。
<强>加成强>
如果Report321
是BOMreports
中的一个类,那么你做错了。您需要做的是将其实例化如下:
var report = new BOMreports.Report321();