web-dev-qa-db-ja.com

CrystalReportを使用したWindowsフォームアプリケーションエラー

私はWindowsフォームアプリケーションの初心者です。これは私のオフィスでの最初のアプリケーションです。私のオフィスの管理者は私にソースコードを教えてくれます。しかし、彼らはそれについて何も知りません。

これらのコードは、Visual Studio 12(64ビット)で実行します。すべてが実行されていますが、CrystalReportが機能していません。エラーをスローします。

エラーは:

タイプ 'CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass'のCOMオブジェクトをインターフェイスタイプ 'CrystalDecisions.ReportAppServer.Controllers.ISCRReportSource'にキャストできません。 IID '{98CDE168-C1BF-4179-BE4C-F2CFA7CB8398}'のインターフェイスのCOMコンポーネントに対するQueryInterface呼び出しが、次のエラーのために失敗したため、この操作は失敗しました:そのようなインターフェイスはサポートされていません(HRESULTからの例外:0x80004002(E_NOINTERFACE)) 。

これがスクリーンショットです:

enter image description here

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

ReportDAL rDal = new ReportDAL();
            receipt r = new receipt();


            DataTable dt = rDal.GetInvoiceHeader(vId);

            //string ww = GetInvoiceHeader(vId);
            r.Database.Tables["ReceiptDetails"].SetDataSource(rDal.GetInvoiceDetails(vId));
            r.Database.Tables["ReceiptHeader"].SetDataSource(rDal.GetInvoiceHeader(vId));
            r.SetParameterValue("pReportDeliveryTime", GlobalData.reportDeliveryTime);
            crystalReportViewer1.ReportSource = r;

誰かが私に精巧に解決策を与えることができますか?

4
user3074921

私にも同じ問題が発生しました。

CR 13 Update 21をインストールしたとき、プロジェクトで実行時に同じ例外が発生しました。

ソリューションエクスプローラーからCrystalDecisionのすべての参照を削除しました(実際には以前のバージョンのCR、つまりCR 13 Update 20に属していました)。

次に、Solution Explorer => References => Add Referenceメニューから新しい参照を追加しました。ウィンドウから必要なCrystalDecisionパッケージを選択しました。再構築され、問題はなくなりました。 enter image description here

8
shahsani

ランタイムバージョンの低いCrystalレポートをクライアントコンピューターにインストールしてください。その後、正常に動作します。現在vs2012crランタイムを使用しているように、2008年のランタイムを使用すると正常に動作します。

私は同じ問題を抱えていますが、今はより低いバージョンに変更しました、そしてそれは私にとってうまくいきます。

2
parth