仅在 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 位可执行文件中?

有任何工具可用于将 32 位/64 位可执行文件打包在一起吗? [关闭]

cmake 创建解决方案时未链接 64 位可执行文件

C ++ 32位与64位可执行符号[关闭]

Emscripten Clang 生成 ELF 64 位可执行文件和 wasm 二进制交叉编译器目标