0

私はこの問題で頭を悩ませています.Crystal Reportを使用したレポートを持つWebアプリケーションがあり、開発用PCでは正常に動作しますが、同じプロジェクトを別のPCにコピーすると、プロジェクト(VS 2003)をロードすると次のメッセージが表示されます。

One or more projects in solution need to be updated to use Crystal Reports XI Release 2. If you choose "Yes", the update will be applied permanently...

「はい」を選択すると、CrystalDecisions.Web リファレンスのバージョンと開発マシンに応じた場所 (この場合は 11.5.3300.0) が正しいことがわかります。

しかし、webapp を実行すると、バージョンとパスが突然 11.0.3300.0 に変更されたことがわかります。

レポートを表示しようとすると、次のエラーが表示されます。

パーサー エラー メッセージ:基本クラスにはフィールド 'CrystalReportViewer1' が含まれていますが、そのタイプ (CrystalDecisions.Web.CrystalReportViewer) はコントロールのタイプ (CrystalDecisions.Web.CrystalReportViewer) と互換性がありません。

asp.netには次のものがあります:

<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=11.5.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>

これはどのように可能ですか?ここで何が起こっているのですか?

編集 これは私がしたことです:

間違ったバージョン (11.0.3300.0) が次の場所にありました: C:\Program Files\Common Files\Business Objects\3.0\managed

正しいバージョン (11.5.3300.0) は次の場所にあります。 C:\Program Files\Business Objects\Common\3.5\managed

そのため、間違ったソリューションのファイルを削除しただけで、新しいコンピューターで動作するようになり、webapp の実行時にエラーが発生しなくなりました。レポートは正常に表示されます。

しかし、本番サーバーで同じことをしようとすると、別のエラーが出て、例外になりました:

This report could not be loaded due to the following issue: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.

このエラーの原因は何ですか?

コードは次のとおりです。

Try
            Dim cr As New ReportDocument
            cr.Load(strpath)
            cr.SetDatabaseLogon("user", "pwd")
            Select Case rt
                Case 1
                    cr.SummaryInfo.ReportTitle = "RMA Ticket"
                Case 2
                    cr.SummaryInfo.ReportTitle = "Service Ticket"
            End Select
            'cr.SummaryInfo.ReportTitle = tt
            cr.SetParameterValue("TicketNo", tn)
            'cr.SummaryInfo.ReportComments = comment
            CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX
            CrystalReportViewer1.ReportSource = cr
            CrystalReportViewer1.ShowFirstPage()
            'cr.Close()
            'cr.Dispose()
        Catch ex As Exception
            MsgBox1.alert("This report could not be loaded due to the following issue: " & ex.Message)
        End Try
4

2 に答える 2

0

.dll に問題がある可能性があります。ソリューションから .dll を更新または削除して、もう一度リンクしてみてください。

于 2012-12-18T21:10:30.557 に答える
0

この件に関しては、誰もが独自の悪夢を抱いていると思います :\

私の場合、Business View Manager は完全にはインストールされていませんでした。正常にインストールされた後、レポートは完全に表示されるようになりました。

于 2012-12-31T16:52:16.173 に答える