PDF 格式的 C# 报告 - 生成 1º 报告的速度很慢

本文关键字:报告 速度 格式 PDF 生成 | 更新日期: 2023-09-27 18:33:44

我用C#编写代码,使用Crystal Reports生成报告,并在浏览器上以PDF格式打开。

当用户登录系统并第一次生成其中一个报告时,需要很长时间来处理...但是,在生成第一个报告后,其他报告是自动生成的!

有人知道我该怎么办?我的代码是:

单击按钮生成 PDF 时:

ReportDocument Rel = new ReportDocument();
Rel.Load(Server.MapPath("../Reports/Report1.rpt"));
Rel.SetParameterValue("@Id", Id);
Session.Add("Report", Rel);
string _open = "window.open('Report.aspx');";
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), _open, true);

在"报告.aspx"页面中:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["Report"] != null)
                OpenPDF((ReportDocument)Session["Report"]);
        }
    }
private void OpenPDF(ReportDocument Rel)
{
    MemoryStream stream = (MemoryStream)Rel.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(stream.ToArray());
    Response.End();
}

谢谢!

PDF 格式的 C# 报告 - 生成 1º 报告的速度很慢

不确定报表文件包含的内容以及它处理的页面是否比导出的页面多,但您可以为用户预加载运行时,以便后续报表呈现在执行时间中不那么明显。

编辑:

创建一个空白报告并将其加载到某个地方,例如,在生成报告之前他们转到的前一页Page_Load上;主页或小节。然后关闭并处理报告。此外,从项目引用中删除不使用的任何 Crystal Reports 程序集。