私はVS 2008で開発されたソリューションとVBの3.5で開発されたソリューションを持っており、その中にほぼ38のプロジェクト(クラスライブラリ)があります。この全体は、ほぼ 140 のレポート (結晶レポート) を含む大きなプロジェクトです。
Visual Studio 2012 Ultimate with Crystal Report (CRforVS_13_0_7) をインストールし、ソリューションを .net 4.5 にアップグレードしました。すべて正常に動作します。
一部のレポートでは、VB.net CRUFL で記述されたライブラリを使用して、インワード形式の InWord をサポートしています。
現在、レポートを新しい Crystal レポート形式にアップグレードする際に問題に直面しています。レポート ファイルを開いて確認し、保存すると、新しい Crystal レポート形式で保存するように求められます。アップグレードするために [はい] を選択した場合、Crystal コード ジェネレーターからエラーが発生します。
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 で記述された完全に新しいライブラリを作成しましたが、動作は同じです。
これらすべてのレポートを新しいバージョンで再度作成することはできません。数が膨大で、一部のレポートは非常に複雑です。
プロジェクトをアップグレードする前に最初に調べなければならないことはありますか
提案してください
もう1つ、OSはWindows 8.1 Proです