首页 > 解决方案 > 如何将水晶转发直接导出给用户而不是保存在项目中?

问题描述

该问题可能与以下两个重复。

sql server - 如何在 C# 中将水晶报表直接导出为 pdf?

asp.net - 在 asp net 中以编程方式将水晶报告导出为没有临时文件的 pdf

我当前的代码如下:

...
ReportDocument rd = new ReportDocument();
try
{
    rd.Load(Server.MapPath(string.Format("CrystalReport\\Example.rpt")));
    rd.SetDataSource(dt);
    DiskFileDestinationOptions doskOption = new DiskFileDestinationOptions();
    rd.ExportOptions.ExportFormatType = ExportFormatType.ProtableDocFormat;
    rd.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
    string FileName = ...;
    disOption.DiskFileName = Server.MapPath("Report\\" + FileName + ".pdf");
    rd.ExportOptions.DestinationOptions = diskOption;
    rd.Export();
}

使用代码,每次用户点击下载为pdf,水晶报表也会在项目Report文件夹中保存一份副本。并弹出一个新框询问用户是否下载,当用户点击下载时,浏览器开始下载。

有什么方法可以避免将这些临时文件保存在我的项目中。它浪费了很多无用的空间。还是我必须手动清理文件夹?

标签: c#asp.netcrystal-reports

解决方案


临时文件似乎是强制性的。

最后我用js来勾选关闭框(用户下载与否)并执行删除无用文件。


推荐阅读