仅在 64 位可执行文件上出现“缺少参数值”异常
Posted
技术标签:
【中文标题】仅在 64 位可执行文件上出现“缺少参数值”异常【英文标题】:"Missing Parameter Values" exception only on 64bits executable 【发布时间】:2012-10-19 19:48:23 【问题描述】:我有一个使用 Crystal Reports (13.0.2000.0) 用 C# (Visual Studio 2010) 编写的应用程序
当我为 x86 平台编译代码时,一切正常。为 64 位编译的相同代码在 Export() to PDF 上失败。
我通过以下方式分配参数:
ListReport.AddParameter("p_UserObjectID", objectId.ToString());
ListReport.ApplyParameters();
我正在使用的库:
CrystalDecisions.CrystalReports.Engine (13.0.2000.0)
CrystalDecisions.ReportSource (13.0.2000.0)
CrystalDecisions.Shared (13.0.2000.0)
堆栈跟踪:
<CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException>
<Message>Missing parameter values.</Message>
<StackTrace>
<Frame>CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)</Frame>
<Frame>CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)</Frame>
<Frame>CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext)</Frame>
<Frame>CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext reqContext)</Frame>
<Frame>CrystalDecisions.CrystalReports.Engine.ReportDocument.Export(ExportOptions options)</Frame>
<Frame>Fsm.Business.BLReport.CRWFunctions.CRWExport(ReportDocument CRWRpt, CrwExportOptions crwExportOpt, String filename)</Frame>
</StackTrace>
<System.Runtime.InteropServices.COMException>
<Message>Missing parameter values.</Message>
<StackTrace>
<Frame>CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext)</Frame>
<Frame>CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)</Frame>
</StackTrace>
</System.Runtime.InteropServices.COMException>
</CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException>
任何想法/线索/提示我会错过什么?
【问题讨论】:
这听起来像是一个 CR 错误。联系 SAP 以获得支持。 【参考方案1】:报告包含应为其提供值的参数。
代码在导出时失败,因为报告无法填充参数值。
从这里拉出来:https://archive.sap.com/discussions/thread/3228829
【讨论】:
以上是关于仅在 64 位可执行文件上出现“缺少参数值”异常的主要内容,如果未能解决你的问题,请参考以下文章
为啥 cx_Freeze 在 64 位 Debian Linux 上运行时使 32 位可执行?
为啥我能够将 x64 程序集加载到 AnyCPU Prefer 32 位可执行文件中?