【问题标题】:C# Report in PDF - Slowness to generate 1º reportPDF 中的 C# 报告 - 生成 1º 报告的速度很慢
【发布时间】:2012-05-09 20:08:28
【问题描述】:

我在 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);

在“Report.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();
}

谢谢!

【问题讨论】:

    标签: c# asp.net pdf-generation


    【解决方案1】:

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

    编辑:

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

    【讨论】:

    • 哼...即使只有一个页面和几个项目的报告,也需要很长时间来处理,在登录后的第一次...我如何为用户预加载运行时?
    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2013-06-11
    • 2012-06-09
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多