【发布时间】:2011-02-17 18:35:20
【问题描述】:
我已将以下代码集成到我的应用程序中,以使用 MVC 项目中的水晶报表生成“pdf”文件。 但是,处理请求后,我只能在 pdf 文件中看到 2 页,而我的“数据”返回超过 2 条记录。 此外,处理页面后不会立即呈现 pdf,而是我必须至少刷新一次,然后在浏览器上呈现 pdf。
using CrystalDecisions.CrystalReports.Engine;
public FileStreamResult Report()
{
ReportClass rptH = new ReportClass();
List<sampledataset> data = objdb.getdataset();
rptH.FileName = Server.MapPath("[reportName].rpt");
rptH.Load();
rptH.SetDatabaseLogon("un", "pwd", "server", "db");
rptH.SetDataSource(data);
Stream stream = rptH.ExportToStream
(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, System.IO.SeekOrigin.Begin);
return new FileStreamResult(stream, "application/pdf");
}
我从 SO 中的here 获取了代码,但像上面一样对其进行了修改。
TIA。
编辑:这适用于 Firefox,不适用于 IE7。
【问题讨论】:
-
听起来
FileStreamResult几乎没有刷新。您是否尝试过返回FileResult而不是 FileStreamResult? -
@Robert Harvey - 你能举个例子吗?我正在使用 MVC 1.0 版
标签: asp.net asp.net-mvc pdf crystal-reports