从水晶报表导出到流功能打开文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从水晶报表导出到流功能打开文件相关的知识,希望对你有一定的参考价值。

如何直接从流中打开文件,通过水晶报表导出到流功能?我正在使用vs2010和sap水晶报告。

MemoryStream m = (MemoryStream)(PReport.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat));
FileStream f = new FileStream(purchaseCombo.SelectedItem.ToString(),FileMode.Create,System.IO.FileAccess.Write);
byte[] bytes = new byte[m.Length];
m.Read(bytes, 0, (int)m.Length);
f.Write(bytes, 0, bytes.Length);
f.Close();
m.Close();
答案

它取决于您要导出的文件。由于Crystal Reports可以导出许多不同的文件类型,并且每个文件类型都有一个可以处理它的特定程序,因此您需要搜索您感兴趣的确切文件类型。例如,在互联网上快速搜索,我发现可以使用NavigateToStream方法在WebBrowser组件(在WPF应用程序中)内直接预览html文件流。也许有一些第三方组件公开了直接从内存中打开文件的方法。

但是,最简单的方法是使用ExportToDisk方法将临时文件导出到磁盘而不是内存,并在使用后将其删除,因为许多组件从路径而不是内存中读取。在导出文件之前,您可以使用GetTempFileName方法创建并命名临时文件。

以上是关于从水晶报表导出到流功能打开文件的主要内容,如果未能解决你的问题,请参考以下文章

水晶报表导出需要永远

c#如何将数据导出pdf文件,我用的是vs2010,里边没有水晶报表。然后用itextsharp就报字体啥的错误。

如何用VB.NET做水晶报表?

通过代码文件使用 crostab 对象创建水晶报表

MVC 中的水晶报表

如何解决水晶报表10的部署问题