点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我已经在整个论坛和Google上进行了全面搜索,但找不到任何有助于此目的的信息。 我们最近升级到了Crystal Reports 2008(CrystalDecisions.CrystalReports.Engine-当前为12.0.2000.0版),并且特定报表存在问题。 该报告最初是在V8中创建的。 它使用SQL Server 2005数据库中的存储过程来返回报告的信息。 所有这些都可以在独立设计器中很好地验证,但是当通过Web应用程序运行它时,它尝试将报告加载到rpt.Load行时失败,并出现以下错误:
无效的字段名称。 DeptUtilization {91D163E8-2AD0-4350-97AD-414D49DDFBEF} .rpt 说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关错误及其起源的更多信息。 在代码中。 异常详细信息:System.Runtime.InteropServices.COMException:无效的字段名称。 DeptUtilization {91D163E8-2AD0-4350-97AD-414D49DDFBEF} .rpt 堆栈跟踪: [COMException(0x800001fd): 无效的字段名称。 DeptUtilization {91D163E8-2AD0-4350-97AD-414D49DDFBEF} .rpt] CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object&DocumentPath, Int32选项)+0 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object&DocumentPath, Int32选项)+95 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()+356 [CrystalReportsException:加载报告失败。] CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()+419 CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod,Int16 parentJob)+895 CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(字符串文件名)+84
因此,我的问题是双重的:
1。 是否可以从Crystal引擎中获取更多调试信息,以帮助确定导致此问题的字段/公式?
2。 有谁对为什么会失败有任何初步想法?
非常感谢
唐纳德
1。 是否可以从Crystal引擎中获取更多调试信息,以帮助确定导致此问题的字段/公式?
不幸的是,就错误而言。
2。 是否有人对为什么会失败有任何初步想法?
a)应用最新的Service Pack:
https://smpdl.sap-ag.de/~sapidp/ 012002523100009038092009E/cr2008win_sp2.exe
b)在CR设计器中,启用"第一次刷新时验证"和"第一次刷新时验证存储过程"
c)如果上述方法无济于事,请创建一个新的Win应用程序作为测试。 您只需要一行代码,而无需数据库代码。 让报告提示输入数据库登录。 如果win应用程序正常运行,则可能是权限问题。
Ludek
不幸的是,十年后,我遇到了同样的问题。 在生成客户报告(使用TTX)时,.Net Web应用程序中包含25个子报告,在CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection()上将System.Runtime.InteropServices.COMException抛出为"无效的字段名称"。
在使用相同的运行时版本(CRRuntime_12_3_mlb)的情况下,在Windows应用程序中运行相同的报告可以正常工作。
在Crystal Report Editor中为有问题的子报表执行"打印预览"工作正常,没有任何抱怨。
手动查看了公式和参数字段的定义,无法找到任何潜在的错误。
25个子报表中有5个包含条形图。 正如StackTrace指出的是从ReplaceConnection()引发异常时,"无效字段名称"错误应来自参数" parameterFields"。
由于该报表正在使用Windows应用程序,因此我不知道如何从Web应用程序运行时如何识别包含25个子报表的报表的问题字段。 您可以修改CrystalDecisions.ReportAppServer程序集中的ReplaceConnection()以包括实际无效字段的名称吗? 如果可能的话,我想拥有以下测试DLL,这些DLL仅可用于在本地环境上调试(不适用于生产环境):
CrystalDecisions.ReportAppServer.ClientDoc.dll
CrystalDecisions.ReportAppServer.DataDefModel.dll
,并且在执行.SetDataSource()时也可能是CrystalDecisions.CrystalReports.Engine.dll
谢谢!
一周热门 更多>