对于从VS2008升级到VS2012的升级项目,Crystal不会为UFL库生成升级报告的代码

时间:2013-11-06 11:28:26

标签: vb.net visual-studio-2012 crystal-reports

我在VS 2008中开发了一个解决方案,在VB中开发了3.5个解决方案,其中包含近38个项目(类库)。整个项目是一个大项目,其中有近140份报告(水晶报告)。

现在我用Crystal Report安装Visual Studio 2012 Ultimate(CRforVS_13_0_7) 并将我的解决方案升级到.net 4.5一切正常。

我的一些报告使用VB.net CRUFL编写的库,用于印度卢比格式的InWord支持

现在我面临将报告升级到新的水晶报告格式的问题。 当我打开任何报告文件并验证并保存它要求我保存为新的水晶报告格式如果我选择是升级我从水晶代码生成器得到错误

Custom tool error: "Code generator 'ReportCodeGenerator' failed.  Exception stack = CrystalDecisions.Shared.CrystalReportsException: Load report failed. ---> System.Runtime.InteropServices.COMException: UFL 'u212com.dll' that implements this function is missing.
Error in File repAbstract {B0F50159-6708-4E3E-A668-899D0616325C}.rpt:
Error in formula  drInWord: 
'UniSuiteReportingEXReportingEXToWords (ABS(Sum ({@drAmount})))'
UFL 'u212com.dll' that implements this function is missing.
   at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   --- End of inner exception stack trace ---
   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
   at CrystalDecisions.VSDesigner.CodeGen.ReportClassWriter..ctor(String filePath)
   at CrystalDecisions.VSDesigner.CodeGen.ReportClassWriter..ctor(String filePath, String resourceNamespace)
   at CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator.GenerateCode(String inputFileName, String inputFileContent)"  Z:\World Of Programming\Product\VS .Net\Products\Uni Suite\Uni Suite 2.0\Uni_Suite.Reports\repAbstract.rpt  1   1   Uni_Suite.Reports
  • 我发现问题出在CRUFL函数上,

  • 如果我在公式中注释函数并且只返回普通字符串 流程报告升级并正常工作。

  • 如果我添加新报告并使用此功能,公式也可以 细

  • 我创建了4.5中用于任何升级的全新库 向导错误但行为相同。

很明显,我无法在新版本中再次创建所有这些报告,数量巨大且其中一些非常复杂。

在升级项目之前,我是否遗漏了一些我必须先学习的东西

请建议

操作系统是Windows 8.1 Pro

3 个答案:

答案 0 :(得分:0)

找到了一个临时解决方案。这似乎是Windows 8.1视觉工作室中水晶设计师的一个错误

临时解决方案是:

  • 右键单击报告文件并选择属性

  • 从中删除“CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator” 自定义工具。

  • 现在,报表设计人员不会因任何更改而引发任何错误 测试,更新或更改并保存报告。

  • 关闭报告设计师

  • 现在打开属性和过去 自定义中的“CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator” 工具并按下输入。这将生成没有任何报告的代码 错误和报告也可以正常工作

这将为报告生成没有任何错误的代码,报告也可以正常工作 这绝对是视觉工作室的水晶报告中的一个错误我不知道如何将此错误提交给SAP,但我会搜索并将其提交给水晶报告以帮助他们改进这一点。同时这是一个适合我的解决方案。

您可以在http://scn.sap.com/thread/3452634

找到相关信息

修改

但现在使用上述方法报告后的新问题是不接受任何选择过滤器并使用select语句显示数据库中的所有数据。

正在努力......请帮助

修改

找到这个解决方案也很神奇,这只发生在同一个观众的UFL报告中

在此处找到解决方案http://scn.sap.com/message/8179989#8179989

您需要做的是从查看器控件所在的设计器中删除以下两行。

crystalReportViewer.SelectionFormula = ""
crystalReportViewer.ViewTimeSelectionFormula = ""

修改

现在我将我的水晶报告更新到Service Pack 8(v.13.0.8.1216)

链接http://scn.sap.com/docs/DOC-7824

但是没有运气仍然使用上面提到的方法

修改

我更新到水晶报告服务包10(v.13.0.10.1385)& VS 2013(64位Windows 8.1更新1)

但仍然没有运气,使用上述方法

答案 1 :(得分:0)

我在C#VS2010中收到类似的错误代码。我在将参数字段添加到SubReports时得到了它。它似乎发生在我将一个字段链接到主报告中的参数之前。只是在创建参数后设置链接似乎会使错误再次消失。

答案 2 :(得分:0)

我知道这是一个老帖子,但我收到了这个错误,我的修复方式不同......

基本上错误是响应过时的EF公式。我通过Viewpoint支持得到了以下答案.. 老功夫语法抛出错误:EFCityStateZip({APPB.City},{APPB.State},{APPB.Zip})

新功能。有效的语法:({APPB.City}&','& {APPB.State}&''& {APPB.Zip})