ExportToStream返回CrystalDecisions.ReportSource.EromReportSourceBase.FileStreamDeleteOnClose

2020-09-04 05:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)当尝试将运行V2010的Crys...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当尝试将运行V2010的Crystal的较旧.net 4.0项目升级到VS2019或VS2012时,我在使用Visual Studio最新版本的CR的ExportToStream函数时遇到问题。

代码:

将repStream转换为Stream = _report.ExportToStream(ExportFormatType.PortableDocFormat)

在两种情况下,该方法均返回以下类型:CrystalDecisions.ReportSource.EromReportSourceBase.FileStreamDeleteOnClose

在VS2019中,我收到一个错误:

System.IntPtr.Zero错误BC30657:'ToPointer'具有不支持的返回类型或不支持的参数类型。

这是一个使用较旧的13.0.2000.0版本在生产环境中运行了5年以上的项目。

有什么想法吗?

3条回答
haha101010
2020-09-04 05:29 .采纳回答

尝试一下,它是C#,所以google C#到VB转换器:

 System.IO.Stream oStream;

 oStream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

 MemoryStream ms =新的MemoryStream(); //今天说不支持。 电子邮件主题-RE:导出到流。
 FileStream文件=新FileStream(@" c:\ reports \ formulas.pdf",FileMode.Create,FileAccess.Write);
 ms.WriteTo(file);
 file.Close();
 ms.Close();

 byteArray =新的byte [oStream.Length];
 oStream.Read(byteArray,0,Convert.ToInt32(oStream.Length-1));

//这用于验证文件,因此我将其保存到磁盘
 System.IO.File.Create(diskOpts.DiskFileName,Convert.ToInt32(oByte.Length))。Close();

 System.IO.File.OpenWrite(diskOpts.DiskFileName).Write(oByte,0,Convert.ToInt32(oByte.Length));
 System.IO.File.SetAttributes(diskOpts.DiskFileName,System.IO.FileAttributes.Directory);
 oStream.Close();
 

只需检查一下,它就可以正常工作

Don

一周热门 更多>