【问题标题】:.NET - Streaming PDF from RPT file painfully slow.NET - 从 RPT 文件流式传输 PDF 非常缓慢
【发布时间】:2013-07-24 22:04:18
【问题描述】:

我正在使用 C# (.NET 4) 从属于我的应用程序一部分的 Crystal RPT 文件生成并返回 PDF。它间歇性地工作,但生成 PDF 的速度非常慢(有时根本无法完成)。关于下面代码的任何建议可能会为我指明正确的方向?

// POST: /API/GetReport
[HttpPost]
public ActionResult GetReport()
{
    BoolResponse response = new BoolResponse { };
    string evalID = Request["evalID"] ?? "";
    if (evalID != "" && UserCanViewEval(evalID)) {
        ReportClass rptH = new ReportClass();
        try
        {

            ParameterField paramField = new ParameterField();
            ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
            ParameterValues paramValues = new ParameterValues();

            rptH.FileName = Server.MapPath("~/Content/Reports/Eval.rpt");
            rptH.Load();
            rptH.SetParameterValue("EvalID", evalID);

            Stream stream = rptH.ExportToStream(ExportFormatType.PortableDocFormat);
            stream.Seek(0, System.IO.SeekOrigin.Begin);

            return new FileStreamResult(stream, "application/pdf");
        }
        catch (Exception e)
        {
            response.errors = e.Message;
            return Json(response, JsonRequestBehavior.AllowGet);
        }
        finally {
            rptH.Close();
            rptH.Dispose();
        }
    }
    else {
        return View();
    }
}

【问题讨论】:

    标签: c# .net crystal-reports rpt


    【解决方案1】:

    看来我需要和我们的报告作者谈谈。我们将缓慢的原因隔离到 RPT 文件本身或其中的查询。我让他直接从他的开发环境(完全在我的 .NET 应用程序之外)运行 RPT 文件,它的执行方式相同。

    我猜测在 Crystal 中将查询与 GUI 放在一起(由报告编写者)效率不是很高,因为我的应用程序的其余部分都快如闪电。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多