0

私は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です

4

3 に答える 3

0

それに対する一時的な解決策を見つけました。これは、Windows 8.1 の Visual Studio の Crystal Designer のバグのようです。

一時的な解決策は次のとおりです。

  • レポート ファイルを右クリックし、プロパティを選択します。

  • カスタム ツールから「CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator」を削除します。

  • レポート デザイナーは、変更やテストに対してエラーを発生させず、更新または変更を行い、レポートを保存します。

  • レポートのデザイナーを閉じる

  • プロパティを開き、カスタム ツールで「CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator」を過ぎて、Enter キーを押します。これにより、エラーなしでレポートのコードが生成され、レポートも正常に機能します

これにより、エラーなしでレポートのコードが生成され、レポートも正常に機能します。これは間違いなく Visual Studio の Crystal Report のバグです。このバグを SAP に送信する方法がわかりませんが、これを検索して Crystal Report に送信して支援しますこれを改善します。一方、これは私のために働いた解決策です。

これに関するコミュニケーションはこちらhttp://scn.sap.com/thread/3452634で見つけることができます

編集

しかし、上記のメソッドレポートを使用した後の新しい問題は、select フィルターを受け入れず、select ステートメントでデータベースからのすべてのデータを表示することです。

それに取り組んでいます...助けてください

編集

これも驚くべき解決策を見つけました。これは、同じビューアーで UFL を使用したレポートでのみ発生しています。

ここで解決策を見つけましたhttp://scn.sap.com/message/8179989#8179989

あなたがしなければならないことは、ビューアー コントロールがあるデザイナーから次の 2 行を削除することです。

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

編集

クリスタル レポートをサービス パック 8 (v. 13.0.8.1216) に更新しました。

リンクhttp://scn.sap.com/docs/DOC-7824

しかし、上記の方法を使用してもまだうまくいきません

編集

Crystal Report Service Pack 10 (v.13.0.10.1385) & VS 2013 (64Bit windows 8.1 update 1) に更新しました

しかし、上記の方法を使用してもまだうまくいきません

于 2013-11-12T10:28:44.257 に答える